添加仓库
仓库页面、仓库的每个字段,以及在配置种子中声明仓库
仓库页面
仓库在设置 > 连接 > 仓库下管理,需要 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 代替凭据。 通过种子创建的仓库在界面中是只读的,如果启动时其工作树缺失,会被重新克隆;参见 托管对象。