Adding a repository

The Repositories page, every field of a repository, and declaring one in the config seed

  1. The Repositories page
  2. Adding a repository
  3. Declaring repositories in the config seed

The Repositories page

Repositories are managed under Settings > Connections > Repositories, which needs the showSettings role option.

Repositories

The list shows the Name, Branch, Head (the short commit hash checked out), Status and Description. The status is running while git works, then success or failed. The menu of each row holds these actions:

Action What it does
Edit Repository Change the fields below; the password has its own action
Delete Repository Remove the record and its working tree under REPO_PATH
Change Password Set a new password or token
Trigger Clone the repository, or pull it when the working tree already exists
Show output Show git’s output of the last clone, pull or push, with the password masked
Reset Repository Delete the working tree and clone it again, which discards local changes
Push to repo Commit and push the working tree; only on repositories used for forms or config

Only one git operation runs on a repository at a time. A second one is refused with Repository '<name>' not found or already running, try again later.


Adding a repository

Click New Repository and fill in the fields; AnsibleForms starts the clone in the background as soon as you save.

Edit Repository

Field Required Meaning
Name yes The folder name under REPO_PATH; letters, digits, dash, underscore and dot
Branch no The branch to clone, for example main; empty clones the remote’s default branch
Username no The user for an HTTPS remote that needs authentication
Password no The password or token for that user; only asked when creating, or with Change Password
Uri yes The remote, https://... or SSH (git@git.example.com:team/forms.git, ssh://...)
Cron Schedule no When to pull, as a cron expression; empty means no scheduled pull
Description yes A free text description
Use for config ? … Use for vars files ? no What the repository holds, see above
Clone on app start ? no Clone the repository, or pull it, every time AnsibleForms starts

Renaming a repository moves its working tree to the new folder and moves its pull schedule with it. The password is stored encrypted, and the API returns it masked.


Declaring repositories in the config seed

Repositories can also be declared in the config seed, so a new instance clones them at its first start.

repositories:
  items:
    - name: forms
      description: Forms and configuration
      uri: https://git.example.com/team/forms.git
      branch: main
      user: af-bot
      password: ${SEED_GIT_TOKEN}
      use_for_forms: true
      use_for_config: true
      rebase_on_start: true
      cron: "*/15 * * * *"

The fields are those of the page: user, password, rebase_on_start (Clone on app start ?) and cron included. A seeded repository is read-only in the interface, and is cloned again at start when its working tree is missing; see Managed objects.