| GH_TOKEN | Token used to access target repositories. Accepts a Personal Access Token
(classic or fine-grained) or a GitHub App installation token; the type is
detected automatically from the token prefix.
When an installation token (prefix `ghs_`) is supplied, commits are created
through the GitHub API (verified) and GIT_EMAIL/GIT_USERNAME are required.
Note: the default `GITHUB_TOKEN` will not work for cross-repo sync.
| yes | — |
| CONFIG_PATH | Path to the sync configuration file.
Defaults to `.github/sync.yml`.
| no | — |
| INLINE_CONFIG | Inline YAML configuration (alternative to CONFIG_PATH).
When set, this is used instead of reading CONFIG_PATH.
| no | — |
| REPOS | Limit the sync to specific target repositories.
Comma-separated list of `owner/name` (optionally `@branch`) that must
match repositories already defined in the sync config. This only filters
which repositories are processed (keeping their order from the config);
the file configuration still comes from the existing config.
Names that do not match any configured repository are ignored (no error).
Leave empty to sync every repository from the config.
| no | — |
| PR_LABELS | Labels to add to the pull request.
Defaults to `sync`. Set to `false` to disable.
| no | — |
| PR_TITLE | Custom title for the pull request.
When set, it overrides the auto-generated title and COMMIT_AS_PR_TITLE.
Defaults to an empty string (auto-generated title).
| no | — |
| PR_BODY | Additional content to add in the PR description.
Defaults to an empty string.
| no | — |
| ASSIGNEES | Users to assign to the pull request.
Defaults to none.
| no | — |
| REVIEWERS | Users to request a review from.
Defaults to none.
| no | — |
| TEAM_REVIEWERS | Teams to request a review from.
Defaults to none.
| no | — |
| COMMIT_PREFIX | Prefix for commit message and pull request title.
Defaults to 🔄.
| no | — |
| COMMIT_BODY | Commit message body.
Appended to the commit message, separated by two line returns.
Defaults to an empty string.
| no | — |
| COMMIT_EACH_FILE | Commit each configured file/directory separately.
Defaults to true.
| no | — |
| GIT_EMAIL | Email used for commits.
Required when using a GitHub App installation token.
| no | — |
| GIT_USERNAME | Username used for commits.
Required when using a GitHub App installation token.
| no | — |
| TMP_DIR | Working directory where all sync operations are performed.
Defaults to `tmp-${Date.now().toString()}`.
| no | — |
| DRY_RUN | Runs the sync logic but does not push any changes.
Defaults to false.
| no | — |
| SKIP_CLEANUP | Skip removing the temporary directory (useful for debugging).
Defaults to false.
| no | — |
| OVERWRITE_EXISTING_PR | Reuse the same sync branch/PR between runs.
If false, create a new branch per run.
Defaults to true.
| no | — |
| REBASE | Keep an existing sync pull request up to date with the target (base)
branch, similar to Dependabot's rebase. When the PR branch falls behind
the base branch it is rebuilt on the latest base and force-updated, which
discards any commits pushed manually to the sync branch.
Requires OVERWRITE_EXISTING_PR (default) and has no effect with SKIP_PR.
Defaults to false.
| no | — |
| ORIGINAL_MESSAGE | Re-use the original commit message for commits.
Works only if the workflow is triggered by a push
containing a single commit.
Defaults to false.
| no | — |
| COMMIT_AS_PR_TITLE | Use the commit message as PR title.
Works only if ORIGINAL_MESSAGE is true and exactly one commit is created.
Defaults to false.
| no | — |
| SKIP_PR | Skips creating a Pull Request and pushes directly to the default branch.
Defaults to false
| no | — |
| BRANCH_PREFIX | Specify a different prefix for the new branch in the target repo.
Defaults to repo-sync/SOURCE_REPO_NAME
| no | — |
| DELETE_ORPHANED | Global default for deleting orphaned files in target repositories.
Used when file-level `deleteOrphaned` is not set.
Defaults to false.
| no | — |
| FORK | Specify the user account for a fork and pull-request workflow.
Defaults to false.
| no | — |