添加仓库

仓库页面、仓库的每个字段,以及在配置种子中声明仓库

  1. 仓库页面
  2. 添加仓库
  3. 谁可以修改仓库
  4. 在配置种子中声明仓库

仓库页面

仓库在设置 > 连接 > 仓库下管理,需要 showSettings ,或者从 7.3.0 起需要 showConnectionsSettings 角色选项。有些修改只有管理员才能进行,参见下文。

仓库

列表显示名称、描述、分支、Head(检出的提交的短哈希)、拉取和 推送。仓库的详情选项卡在其 head 上方显示同样的拉取和推送标记:

列 含义
拉取 最近一次克隆、拉取或重置:git 工作期间显示运行中,然后显示成功或失败;第一次之前显示短横线
推送 最近一次推送失败时显示失败;在这里(由设计器)保存的更改尚未推送到远程仓库时显示待推送的更改;没有待推送内容时显示成功;第一次推送之前显示短横线

推送列中的成功只表示没有等待推送的内容:远程仓库中可能仍有更新的提交, 需要通过拉取获取。每一行的菜单包含以下操作:

操作 作用
编辑 修改下面的字段
拉取 克隆仓库;如果工作树已经存在,则拉取它
推送 提交并推送工作树;仅适用于用于表单、配置、playbook、工作流或清单的仓库,并且只在有尚未推送的更改时才可用
重置 删除工作树并重新克隆,这会丢弃本地更改
更改凭据 打开仓库的凭据选项卡,以选择 git 使用的凭据
显示上次拉取的输出 显示最近一次克隆、拉取或重置的 git 输出,密码会被掩码
显示上次推送的输出 显示最近一次推送的 git 输出,密码会被掩码
删除 移除该记录及其在 REPO_PATH 下的工作树;仅限管理员

列表上方的全部拉取会一次拉取所有仓库。

同一时间,一个仓库上只能运行一个 git 操作。第二个操作会被拒绝,并提示 Repository '<name>' not found or already running, try again later 。


添加仓库

点击添加仓库:向导会分四步询问各个字段(仓库、凭据、用途、拉取 计划),保存后 AnsibleForms 会立即在后台开始克隆。

编辑仓库

字段 必填 含义
名称 是 REPO_PATH 下的文件夹名称;字母、数字、短横线、下划线和点
分支 是 要克隆、拉取和推送的分支,例如 main ;从 7.3.0 起为必填。只有配置种子中的仓库可以省略它,以克隆远程仓库的默认分支
凭据 否 连接 > 凭据中的某个凭据,包含 git 使用的用户名以及密码或令牌;添加凭据可创建一个
URI 是 远程仓库, https://... 或 SSH( git@git.example.com:team/forms.git 、 ssh://... )
启用定时拉取 否 按计划拉取仓库
拉取计划 否 何时拉取,以 cron 表达式表示;启用定时拉取后才会显示
描述 是 自由文本描述
用于配置? …… 用于清单? 否 仓库包含的内容,参见上文
应用启动时拉取 否 每次 AnsibleForms 启动时克隆或拉取该仓库

重命名仓库会把其工作树移动到新的文件夹,并把其拉取计划一并移过去。7 之前的仓库如果仍然 有自己的用户,会在其凭据选项卡上注明:请选择一个凭据来替换它。


谁可以修改仓库

仓库的内容会成为 AnsibleForms 加载和运行的内容,因此从 7.3.0 起,没有 admin 角色的用户不再能够:

  • 添加或删除仓库;
  • 修改其 URI 或分支;
  • 打开或关闭其任何用于标志。

他们仍然可以修改其描述、拉取计划和凭据,并对其进行拉取、推送或重置。被运行器、 连接或登录方式使用的凭据,他们无法选择;拒绝信息会指出该凭据,但不会透露其中的内容。


在配置种子中声明仓库

仓库也可以在配置种子中声明,这样新实例会在首次启动时克隆它们。

repositories:
  items:
    - name: forms
      description: Forms and configuration
      uri: https://git.example.com/team/forms.git
      branch: main
      credential: git-bot
      use_for_forms: true
      use_for_config: true
      rebase_on_start: true
      cron: "*/15 * * * *"

字段与页面上的相同,包括 credential (种子或应用中的凭据)、 rebase_on_start (应用启动时 拉取)和 cron (拉取计划);仍然可以用 user 和 password 代替凭据。 通过种子创建的仓库在界面中是只读的,如果启动时其工作树缺失,会被重新克隆;参见 托管对象。