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:

  • name
  • default_branch
  • Any key under config:

Validation Rules

  • pull_request must be NO or GITHUB_CLI (case-insensitive).
  • branch_name is required when create_branch is true.
  • commit_message is required when commit is true.
  • remote is required when push is true.
  • pull_request requires push to be true.
  • return_to_original_branch requires create_branch to be true.
  • delete_branch requires return_to_original_branch to be true.
  • Unknown placeholders in branch_name or commit_message are 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.