Root Config
The root config lives at the workspace root, outside the managed repos, in .gitrepoforge-config.
Example
config_repo: config-repo
excludes:
- archived-*
create_branch: true
branch_name: "gitrepoforge/{{name}}"
commit: true
commit_message: "gitrepoforge: apply desired state for {{name}}"
push: true
remote: origin
pull_request: GITHUB_CLI
return_to_original_branch: true
delete_branch: true
Fields
| Field | Required | Description |
|---|---|---|
config_repo | yes | Relative or absolute path to the config repo. |
excludes | no | Repo folder globs to skip during discovery. |
Git Fields
The Git-related fields in .gitrepoforge-config control how apply and bootstrap interact with Git across the workspace. Their shape intentionally mirrors the repver Git config, but they are defined once in the root config and applied to each managed repository.
| Attribute | Type | Required | Description |
|---|---|---|---|
create_branch | boolean | No | Create a new branch before making changes. |
branch_name | string | Yes* | Name for the new branch. Supports {{param}} placeholders. *Required if create_branch is true. |
commit | boolean | No | Commit the changes after modification. |
commit_message | string | Yes* | Commit message. Supports {{param}} placeholders. *Required if commit is true. |
push | boolean | No | Push the branch to the remote repository. |
remote | string | Yes* | Git remote name (for example origin). *Required if push is true. |
pull_request | string | No | Create a pull request. Values: NO (default), GITHUB_CLI. |
return_to_original_branch | boolean | No | Switch back to the original branch after operations. Requires create_branch to be true. |
delete_branch | boolean | No | Delete the new branch locally after operations. Requires return_to_original_branch to be true. |
Placeholder Values
branch_name and commit_message may use {{param}} placeholders. In gitrepoforge those placeholders are resolved from the target repo’s .gitrepoforge values:
namedefault_branch- Any key under
config:
Validation Rules
pull_requestmust beNOorGITHUB_CLI(case-insensitive).branch_nameis required whencreate_branchistrue.commit_messageis required whencommitistrue.remoteis required whenpushistrue.pull_requestrequirespushto betrue.return_to_original_branchrequirescreate_branchto betrue.delete_branchrequiresreturn_to_original_branchto betrue.- Unknown placeholders in
branch_nameorcommit_messageare rejected for the affected repo.
Removed Fields
The old Git fields and compatibility aliases are no longer supported. In particular, nested git: config, branch_prefix, create_pr, bootstrap_commit_message, pr_title, pr_body, bootstrap_pr_title, and bootstrap_pr_body are invalid.