github-settings-as-code
v2.0.1
Published
GitHub の repository 設定を JSON ファイルで管理するための CLI。
Readme
Github Settings as Code
GitHub の repository 設定を JSON ファイルで管理するための CLI。
Usage
repo-settings <command> [target] [options]| Command | 説明 |
| -------- | -------------------------------------------- |
| apply | ローカルの設定ファイルを GitHub に反映する |
| backup | GitHub の現在値をローカルの bk/ に保存する |
| Target | 対応するファイル | apply | backup |
| ------------- | ------------------------------------------ | ------- | -------- |
| all(既定) | すべて | ✅ | ✅ |
| repository | github/repository-settings/settings.json | ✅ | ✅ |
| rulesets | github/rulesets/*.json | ✅ | ✅ |
| variables | repository variables | ✅ | — |
| actions | github/actions-settings/settings.json | ✅ | ✅ |
| pages | github/pages/settings.json | ✅ | ✅ |
repo-settings apply
repo-settings apply rulesets
repo-settings backup
repo-settings apply --owner noshiro-pf --repo ts-repo-utils対象 repository の解決
以下の順で決まる。通常は git remote から決まるため、どちらの指定も不要。
- コマンドライン引数
--owner/--repo - 環境変数
OWNER/REPO_NAME git remote get-url originpackage.jsonのname( repository 名のみ )
認証
以下の順で解決される。ローカルでは gh auth login 済みであれば設定不要。
- 環境変数
GITHUB_APP_TOKEN/GH_TOKEN/PERSONAL_ACCESS_TOKEN gh auth token( gh CLI のログイン情報 )
CI では GitHub App の installation token を GH_TOKEN に渡す。 repository
設定・ruleset の操作には Administration 権限が必要で、既定の GITHUB_TOKEN
では権限が足りない(permissions: に administration は存在しない)。
管理できる設定
| ファイル | GitHub 上の場所 |
| ------------------------------------------ | --------------------------------------- |
| github/repository-settings/settings.json | Settings > General |
| github/rulesets/*.json | Settings > Rules > Rulesets |
| github/actions-settings/settings.json | Settings > Actions > General |
| github/pages/settings.json | Settings > Pages > Build and deployment |
github/pages/settings.json を置いていない repository では Pages の操作を行わない
( Pages を使わない repository で誤って有効化しないため )。
