Repo Settings as Code
Version updated for https://github.com/Vivswan/repo-settings-as-code to version v1.0.0.
- This action is used across all versions by 1 repositories.
Action Type
This is a Node action using Node version 24.
Go to the GitHub Marketplace to find the latest changes.
Action Summary
The Repo Settings as Code GitHub Action automates the application of declarative repository settings from a .github/settings.yml file to GitHub repositories. It provides a loud, stateless replacement for the Probot Settings app, which also handles rulesets (branch, tag, and push). The action ensures that every apply is visible and fails with API error messages, ensuring no silent failures occur. It supports setting up fine-grained Personal Access Tokens (PATs) as repository secrets, using them to manage permissions and settings declaratively in YAML format.
What’s Changed
Repo Settings as Code: First release.
Apply declarative repository settings from .github/settings.yml: a stateless replacement for the Probot Settings app.
- Sections: repository fields, labels, rulesets, branch protection, environments, autolinks, Actions permissions, workflow state, Pages, code scanning default setup, collaborators, teams, and milestones.
- Every apply is a visible workflow run; failures are loud.
mode: checkreports drift and writes nothing.- Apply reads first and writes only what differs: a converged repository gets zero writes, and a second apply is a no-op.
- Multi-repo mode manages a whole fleet from one admin repository.
Setup and the full section reference: README.
1.0.0 (2026-07-22)
Features
- actionable errors, per-call debug tracing, and coverage docs (fe9c9c5)
- add discovery filters for multi-repo “*” mode (1d6531f)
- adopt octokit, actions/core, and zod for transport, IO, and validation (ff89bb6)
- api-version input, self-updating pre-commit, bundle-freshness test (a836718)
- apply own settings with the action at HEAD (4dac8fc)
- declarative section permissions and endpoint dictionaries (de24164)
- five new settings surfaces, audit fixes, and structural refactors (30e2dd2)
- forward-compatible key routing in the actions section (1818569)
- full passthrough in every section plus coverage inventory (34f108a)
- initial settings-as-code action (6e4857f)
- multi-repo mode with central files, remote settings, and a defaults layer (04b379e)
- node24 runtime and husky pre-commit hook (ba04830)
- preflight barrier makes strict applies all-or-nothing (a92173f)
- publish generated settings.yml JSON Schema (b706fa9)
Bug Fixes
- enforce read-only preflight probes and guard check-mode purity (009def9)
- environments PUT status and write-throttle scaling, found by the new e2e fuzz harness (b032024)
- escape backslashes before pipes in the summary table (6684569)
- format the e2e mock files that landed mid-refinement (8911068)
- make the unrecognized actions-key note mode-aware and name the enabled value (1d3bc0a)
- pin bun via .bun-version so CI rebuilds the bundle byte-identically (4e7f2bc)
- print the final result on stdout (76b258d)
- rate-limit discovery advice, shared constants, docs pinned to code (cf8f291)
- reject duplicate ruleset and branch declarations before any API call (441ed49)
- shape-check the fields section handlers dereference (c9a8585)
- teams org grading, nightly issue auto-assignment, and fuzz artifact hygiene (f0378f0)
- unique marketplace name and shorter description (9508134)
Full Changelog: https://github.com/Vivswan/repo-settings-as-code/commits/v1.0.0