Type object
File match reposets.config.toml reposets.config.json
Schema URL https://catalog.lintel.tools/schemas/schemastore/reposets-configuration/latest.json
Source https://raw.githubusercontent.com/spencerbeggs/reposets/main/package/schemas/reposets.config.schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Configuration for syncing GitHub repository settings, secrets, variables, rulesets, and deployment environments

Properties

groups Record<group_name, object> required

Named groups of repositories with their settings, secrets, variables, rulesets, and environment assignments

owner string

Default GitHub user or organization for all groups. Can be overridden per group.

Examples: "spencerbeggs", "savvy-web"
log_level

Default output verbosity. Can be overridden with --log-level CLI flag.

All of: Log level string
settings Record<setting_group, object>

Named groups of GitHub repository settings to apply

secrets Record<secret_group, object | object | object>

Named groups of secrets. Each group is one kind: file, value, or resolved.

variables Record<variable_group, object | object | object>

Named groups of variables. Each group is one kind: file, value, or resolved.

rulesets Record<ruleset_name, BranchRuleset | TagRuleset>

Named rulesets defining branch and tag protection rules

environments Record<environment_name, object>

Named deployment environment configurations

Definitions

LogLevel string

Controls output verbosity: silent (none), info (summaries), verbose (per-operation), debug (with sources)

SettingsGroup Record<string, any>

GitHub repository settings to apply. Known fields are typed; additional fields are passed through to the API.

is_template boolean

Whether the repository is a template that can be used to generate new repositories

has_wiki boolean

Enable the wiki feature for the repository

has_issues boolean

Enable the issues feature for the repository

has_projects boolean

Enable the projects feature for the repository

has_discussions boolean

Enable the discussions feature for the repository

has_sponsorships boolean

Display a Sponsor button for the repository (synced via GraphQL)

has_pull_requests boolean

Enable the pull requests feature for the repository (synced via GraphQL)

allow_forking boolean

Allow forking of the repository

allow_merge_commit boolean

Allow merge commits when merging pull requests

allow_squash_merge boolean

Allow squash merging when merging pull requests

allow_rebase_merge boolean

Allow rebase merging when merging pull requests

allow_auto_merge boolean

Allow pull requests to be automatically merged once all requirements are met

allow_update_branch boolean

Show the update branch button on pull requests

squash_merge_commit_title string

Default title for squash merge commits: PR_TITLE uses the pull request title, COMMIT_OR_PR_TITLE uses the commit message if only one commit, otherwise the PR title

Values: "PR_TITLE" "COMMIT_OR_PR_TITLE"
squash_merge_commit_message string

Default message body for squash merge commits: PR_BODY uses the pull request body, COMMIT_MESSAGES concatenates all commit messages, BLANK leaves it empty

Values: "PR_BODY" "COMMIT_MESSAGES" "BLANK"
merge_commit_title string

Default title for merge commits: PR_TITLE uses the pull request title, MERGE_MESSAGE uses the classic merge message

Values: "PR_TITLE" "MERGE_MESSAGE"
merge_commit_message string

Default message body for merge commits: PR_BODY uses the pull request body, PR_TITLE uses the PR title, BLANK leaves it empty

Values: "PR_BODY" "PR_TITLE" "BLANK"
delete_branch_on_merge boolean

Automatically delete head branches after pull requests are merged

web_commit_signoff_required boolean

Require contributors to sign off on web-based commits

SecretGroup object | object | object

A group of secrets. Must be exactly one kind: file, value, or resolved.

VariableGroup object | object | object

A group of variables. Must be exactly one kind: file, value, or resolved.

Ruleset BranchRuleset | TagRuleset

A set of rules to apply when specified conditions are met

BranchRuleset object

A ruleset that applies to branches

name string required

The name of the ruleset (used for matching when creating or updating)

enforcement string required

disabled = off, active = enforced, evaluate = test mode (GitHub Enterprise only)

Values: "disabled" "active" "evaluate"
type string required

This ruleset applies to branches

Values: "branch"
conditions object

Conditions that determine when the ruleset applies

1 nested properties
ref_name object

Conditions for matching ref names (branches or tags)

2 nested properties
include string[]

Ref name patterns to include. Accepts ~DEFAULT_BRANCH, ~ALL, or glob patterns.

Examples: ["~DEFAULT_BRANCH"]
exclude string[]

Ref name patterns to exclude

bypass_actors BypassActor[]
creation boolean

When true, adds a creation rule

update boolean

When true, adds an update rule with update_allows_fetch_and_merge: true

deletion boolean

When true, adds a deletion rule

required_linear_history boolean

When true, adds a required_linear_history rule

required_signatures boolean

When true, adds a required_signatures rule

non_fast_forward boolean

When true, adds a non_fast_forward rule

deployments string[]

Deployment environments that must succeed; converts to required_deployments rule

targets string | TargetPattern[]

Shorthand for specifying ref_name conditions: 'default', 'all', or custom patterns

status_checks object

Simplified status checks configuration

4 nested properties
required object[] required

Status checks that must pass

update_branch boolean

PRs must be tested with the latest code

on_creation boolean

When false, allows branch creation even if checks would prohibit it

default_integration_id Int | ResolvedRef

Default integration ID applied to all checks that do not specify one

commit_message PatternEntry[]

Commit message pattern rules

commit_author_email PatternEntry[]

Commit author email pattern rules

committer_email PatternEntry[]

Committer email pattern rules

pull_requests object

Simplified pull request configuration (branch rulesets only)

7 nested properties
approvals

Number of approving reviews required (0-10)

All of: int integer
dismiss_stale_reviews boolean

Dismiss previous approvals when new commits are pushed

code_owner_review boolean

Require review from code owners for files they own

last_push_approval boolean

Most recent push must be approved by someone other than the pusher

resolve_threads boolean

All review conversations must be resolved before merging

merge_methods string[]

Allowed merge methods. At least one must be enabled.

reviewers object[]

Teams that must approve specific file patterns

merge_queue object

Merge queue configuration

7 nested properties
check_timeout integer required

an integer

grouping string required

Whether all commits or only the head commit must pass checks

Values: "ALLGREEN" "HEADGREEN"
max_build integer required

an integer

max_merge integer required

an integer

merge_method string required

Merge method for queued PRs

Values: "MERGE" "SQUASH" "REBASE"
min_merge integer required

an integer

min_wait integer required

an integer

copilot_review object

Copilot code review configuration

2 nested properties
draft_prs boolean

Review draft PRs before they are marked ready

on_push boolean

Review each new push to the PR

code_scanning CodeScanningEntry[]

Code scanning tool requirements

workflows object

Required workflow configuration

2 nested properties
required object[] required

Workflows that must pass for this rule

on_creation boolean

Enforce workflows when a branch is created (false = skip on creation)

branch_name PatternEntry[]

Branch name pattern rules

RulesetConditions object

Conditions that determine when the ruleset applies

ref_name object

Conditions for matching ref names (branches or tags)

2 nested properties
include string[]

Ref name patterns to include. Accepts ~DEFAULT_BRANCH, ~ALL, or glob patterns.

Examples: ["~DEFAULT_BRANCH"]
exclude string[]

Ref name patterns to exclude

RefNameCondition object

Conditions for matching ref names (branches or tags)

include string[]

Ref name patterns to include. Accepts ~DEFAULT_BRANCH, ~ALL, or glob patterns.

Examples: ["~DEFAULT_BRANCH"]
exclude string[]

Ref name patterns to exclude

BypassActor object

An actor that can bypass rules in a ruleset

actor_type string required

The type of actor that can bypass a ruleset

Values: "Integration" "OrganizationAdmin" "RepositoryRole" "Team" "DeployKey"
actor_id Int | ResolvedRef

The ID of the actor, or a { resolved } reference to a credential label.

bypass_mode string

When the specified actor can bypass the ruleset

Values: "always" "pull_request" "exempt"
Int integer

an integer

ResolvedRef object

A reference to a credential-resolved value

resolved string required

Reference to a named value in the active credential profile's resolve section

Targets string | TargetPattern[]

Shorthand for specifying ref_name conditions: 'default', 'all', or custom patterns

TargetPattern object | object

An include or exclude pattern for ref matching

StatusChecksShorthand object

Simplified status checks configuration

required object[] required

Status checks that must pass

update_branch boolean

PRs must be tested with the latest code

on_creation boolean

When false, allows branch creation even if checks would prohibit it

default_integration_id Int | ResolvedRef

Default integration ID applied to all checks that do not specify one

PatternEntry object

A pattern matching rule with operator, pattern, and optional name/negate

operator string required

The operator to use for matching

Values: "starts_with" "ends_with" "contains" "regex"
pattern string required

The pattern to match

name string

Display name for this pattern rule

negate boolean

If true, the rule fails when the pattern matches

PullRequestsShorthand object

Simplified pull request configuration (branch rulesets only)

approvals

Number of approving reviews required (0-10)

All of: int integer
dismiss_stale_reviews boolean

Dismiss previous approvals when new commits are pushed

code_owner_review boolean

Require review from code owners for files they own

last_push_approval boolean

Most recent push must be approved by someone other than the pusher

resolve_threads boolean

All review conversations must be resolved before merging

merge_methods string[]

Allowed merge methods. At least one must be enabled.

reviewers object[]

Teams that must approve specific file patterns

MergeQueueShorthand object

Merge queue configuration

check_timeout integer required

an integer

grouping string required

Whether all commits or only the head commit must pass checks

Values: "ALLGREEN" "HEADGREEN"
max_build integer required

an integer

max_merge integer required

an integer

merge_method string required

Merge method for queued PRs

Values: "MERGE" "SQUASH" "REBASE"
min_merge integer required

an integer

min_wait integer required

an integer

CopilotReviewShorthand object

Copilot code review configuration

draft_prs boolean

Review draft PRs before they are marked ready

on_push boolean

Review each new push to the PR

CodeScanningEntry object

A code scanning tool with alert thresholds

tool string required

Name of the code scanning tool

alerts string required

Severity level at which alerts block updates

Values: "none" "errors" "errors_and_warnings" "all"
security_alerts string required

Severity level at which security alerts block updates

Values: "none" "critical" "high_or_higher" "medium_or_higher" "all"
WorkflowsShorthand object

Required workflow configuration

required object[] required

Workflows that must pass for this rule

on_creation boolean

Enforce workflows when a branch is created (false = skip on creation)

TagRuleset object

A ruleset that applies to tags

name string required

The name of the ruleset (used for matching when creating or updating)

enforcement string required

disabled = off, active = enforced, evaluate = test mode (GitHub Enterprise only)

Values: "disabled" "active" "evaluate"
type string required

This ruleset applies to tags

Values: "tag"
conditions object

Conditions that determine when the ruleset applies

1 nested properties
ref_name object

Conditions for matching ref names (branches or tags)

2 nested properties
include string[]

Ref name patterns to include. Accepts ~DEFAULT_BRANCH, ~ALL, or glob patterns.

Examples: ["~DEFAULT_BRANCH"]
exclude string[]

Ref name patterns to exclude

bypass_actors BypassActor[]
creation boolean

When true, adds a creation rule

update boolean

When true, adds an update rule with update_allows_fetch_and_merge: true

deletion boolean

When true, adds a deletion rule

required_linear_history boolean

When true, adds a required_linear_history rule

required_signatures boolean

When true, adds a required_signatures rule

non_fast_forward boolean

When true, adds a non_fast_forward rule

deployments string[]

Deployment environments that must succeed; converts to required_deployments rule

targets string | TargetPattern[]

Shorthand for specifying ref_name conditions: 'default', 'all', or custom patterns

status_checks object

Simplified status checks configuration

4 nested properties
required object[] required

Status checks that must pass

update_branch boolean

PRs must be tested with the latest code

on_creation boolean

When false, allows branch creation even if checks would prohibit it

default_integration_id Int | ResolvedRef

Default integration ID applied to all checks that do not specify one

commit_message PatternEntry[]

Commit message pattern rules

commit_author_email PatternEntry[]

Commit author email pattern rules

committer_email PatternEntry[]

Committer email pattern rules

tag_name PatternEntry[]

Tag name pattern rules

Environment object

Configuration for a GitHub deployment environment

wait_timer integer

an integer

prevent_self_review boolean

Prevent the user who triggered the deployment from approving it

reviewers Reviewer[]

Users or teams required to approve deployments to this environment

deployment_branches string | DeploymentBranchPolicy[]

Controls which branches can deploy. Use "all", "protected", or a list of custom policies.

Reviewer object

A user or team required to review deployments

type string required

Whether the reviewer is an individual user or a team

Values: "User" "Team"
id integer required

The numeric GitHub ID of the user or team

DeploymentBranches string | DeploymentBranchPolicy[]

Controls which branches can deploy. Use "all", "protected", or a list of custom policies.

DeploymentBranchPolicy object

A custom branch or tag pattern that deployments are allowed from

name string required

The name pattern (branch name, tag name, or glob) to allow deployments from

type string

Whether this policy matches branches or tags. Defaults to "branch".

Values: "branch" "tag"
Group object

A named group of repositories with their resource assignments

repos string[] required

List of repository names (without owner prefix) to sync in this group

Examples: ["repo-one","repo-two","repo-three"]
owner string

GitHub user or organization that owns these repos. Overrides the top-level owner.

Examples: "savvy-web"
credentials string

Name of the credential profile to use. If only one profile exists, it is used automatically.

Examples: "personal", "work"
settings string[]

Names of settings groups to apply to these repos

Examples: ["oss-defaults"]
environments string[]

Names of environment definitions to create/update for these repos

Examples: ["staging","production"]
secrets object

Assign secret groups to GitHub secret scopes (actions, dependabot, codespaces, environments)

4 nested properties
actions string[]

Secret groups to sync as GitHub Actions repository secrets

Examples: ["deploy","app"]
dependabot string[]

Secret groups to sync as Dependabot secrets

Examples: ["deploy"]
codespaces string[]

Secret groups to sync as Codespaces secrets

Examples: ["deploy"]
environments Record<environment_name, string[]>

Map of environment names to secret group references

variables object

Assign variable groups to GitHub variable scopes (actions, environments)

2 nested properties
actions string[]

Variable groups to sync as GitHub Actions repository variables

Examples: ["common"]
environments Record<environment_name, string[]>

Map of environment names to variable group references

rulesets string[]

Names of rulesets to apply to these repos

Examples: ["workflow","release"]
cleanup object

Controls deletion of resources not declared in config. All disabled by default.

4 nested properties
secrets

Controls cleanup of secrets by scope

variables

Controls cleanup of variables by scope

rulesets

Delete repository rulesets not declared in any referenced ruleset group

Default: false
All of: Cleanup scope boolean | object
environments

Delete repository environments not declared in config

Default: false
All of: Cleanup scope boolean | object
SecretScopes object

Assign secret groups to GitHub secret scopes (actions, dependabot, codespaces, environments)

actions string[]

Secret groups to sync as GitHub Actions repository secrets

Examples: ["deploy","app"]
dependabot string[]

Secret groups to sync as Dependabot secrets

Examples: ["deploy"]
codespaces string[]

Secret groups to sync as Codespaces secrets

Examples: ["deploy"]
environments Record<environment_name, string[]>

Map of environment names to secret group references

VariableScopes object

Assign variable groups to GitHub variable scopes (actions, environments)

actions string[]

Variable groups to sync as GitHub Actions repository variables

Examples: ["common"]
environments Record<environment_name, string[]>

Map of environment names to variable group references

Cleanup object

Controls deletion of resources not declared in config. All disabled by default.

secrets

Controls cleanup of secrets by scope

variables

Controls cleanup of variables by scope

rulesets

Delete repository rulesets not declared in any referenced ruleset group

Default: false
All of: Cleanup scope boolean | object
environments

Delete repository environments not declared in config

Default: false
All of: Cleanup scope boolean | object
CleanupSecrets object

Controls deletion of secrets by scope (Actions, Dependabot, Codespaces, environments).

actions

Delete Actions secrets not declared in any referenced secret group

Default: false
All of: Cleanup scope boolean | object
dependabot

Delete Dependabot secrets not declared in any referenced secret group

Default: false
All of: Cleanup scope boolean | object
codespaces

Delete Codespaces secrets not declared in any referenced secret group

Default: false
All of: Cleanup scope boolean | object
environments

Delete environment secrets not declared in any referenced secret group

Default: false
All of: Cleanup scope boolean | object
CleanupScope boolean | object

Controls cleanup for a single resource scope. false disables cleanup, true enables full cleanup, or specify names to preserve.

CleanupVariables object

Controls deletion of variables by scope (Actions, environments).

actions

Delete Actions variables not declared in any referenced variable group

Default: false
All of: Cleanup scope boolean | object
environments

Delete environment variables not declared in any referenced variable group

Default: false
All of: Cleanup scope boolean | object