github-settings-as-code 2.1.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  GitHub の repository 設定を JSON ファイルで管理するための CLI。
4
4
 
5
+ 設定ファイルは repository root の `repo-settings/` から読む。
6
+
7
+ > **v3.0.0 での破壊的変更**: 読み込み元が `github/` から `repo-settings/` に
8
+ > 変わった。`git mv github repo-settings` で移行する。旧名は `.github/` の
9
+ > 別名に見えて、workflow もここにあると誤解させるものだった。
10
+
5
11
  ## Usage
6
12
 
7
13
  ```sh
@@ -13,14 +19,14 @@ repo-settings <command> [target] [options]
13
19
  | `apply` | ローカルの設定ファイルを GitHub に反映する |
14
20
  | `backup` | GitHub の現在値をローカルの `bk/` に保存する |
15
21
 
16
- | Target | 対応するファイル | `apply` | `backup` |
17
- | ------------- | ------------------------------------------ | ------- | -------- |
18
- | `all`(既定) | すべて | ✅ | ✅ |
19
- | `repository` | `github/repository-settings/settings.json` | ✅ | ✅ |
20
- | `rulesets` | `github/rulesets/*.json` | ✅ | ✅ |
21
- | `variables` | repository variables | ✅ | — |
22
- | `actions` | `github/actions-settings/settings.json` | ✅ | ✅ |
23
- | `pages` | `github/pages/settings.json` | ✅ | ✅ |
22
+ | Target | 対応するファイル | `apply` | `backup` |
23
+ | ------------- | ------------------------------------------------- | ------- | -------- |
24
+ | `all`(既定) | すべて | ✅ | ✅ |
25
+ | `repository` | `repo-settings/repository-settings/settings.json` | ✅ | ✅ |
26
+ | `rulesets` | `repo-settings/rulesets/*.json` | ✅ | ✅ |
27
+ | `variables` | repository variables | ✅ | — |
28
+ | `actions` | `repo-settings/actions-settings/settings.json` | ✅ | ✅ |
29
+ | `pages` | `repo-settings/pages/settings.json` | ✅ | ✅ |
24
30
 
25
31
  ```sh
26
32
  repo-settings apply
@@ -51,12 +57,12 @@ CI では GitHub App の installation token を `GH_TOKEN` に渡す。 reposito
51
57
 
52
58
  ## 管理できる設定
53
59
 
54
- | ファイル | GitHub 上の場所 |
55
- | ------------------------------------------ | --------------------------------------- |
56
- | `github/repository-settings/settings.json` | Settings > General |
57
- | `github/rulesets/*.json` | Settings > Rules > Rulesets |
58
- | `github/actions-settings/settings.json` | Settings > Actions > General |
59
- | `github/pages/settings.json` | Settings > Pages > Build and deployment |
60
+ | ファイル | GitHub 上の場所 |
61
+ | ------------------------------------------------- | --------------------------------------- |
62
+ | `repo-settings/repository-settings/settings.json` | Settings > General |
63
+ | `repo-settings/rulesets/*.json` | Settings > Rules > Rulesets |
64
+ | `repo-settings/actions-settings/settings.json` | Settings > Actions > General |
65
+ | `repo-settings/pages/settings.json` | Settings > Pages > Build and deployment |
60
66
 
61
- `github/pages/settings.json` を置いていない repository では Pages の操作を行わない
67
+ `repo-settings/pages/settings.json` を置いていない repository では Pages の操作を行わない
62
68
  ( Pages を使わない repository で誤って有効化しないため )。
@@ -13,11 +13,11 @@ Commands:
13
13
 
14
14
  Targets:
15
15
  all すべて(既定)
16
- repository github/repository-settings/settings.json
17
- rulesets github/rulesets/*.json
16
+ repository repo-settings/repository-settings/settings.json
17
+ rulesets repo-settings/rulesets/*.json
18
18
  variables repository variables ( apply のみ )
19
- actions github/actions-settings/settings.json
20
- pages github/pages/settings.json
19
+ actions repo-settings/actions-settings/settings.json
20
+ pages repo-settings/pages/settings.json
21
21
 
22
22
  Options:
23
23
  --owner <owner> 対象の owner
@@ -71,7 +71,8 @@ const { values, positionals } = util.parseArgs({
71
71
  });
72
72
  if (values.help === true || Arr.isEmpty(positionals)) {
73
73
  console.info(HELP);
74
- process.exit(Arr.isEmpty(positionals) ? 1 : 0);
74
+ // Asking for help is not an error, even though being given no command is.
75
+ process.exit(values.help === true ? 0 : 1);
75
76
  }
76
77
  const [commandArg, targetArg = 'all'] = positionals;
77
78
  if (commandArg === undefined || !isCommand(commandArg)) {
@@ -1 +1 @@
1
- {"version":3,"file":"repo-settings.mjs","sourceRoot":"","sources":["../../src/cmd/repo-settings.mts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGpC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCZ,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AAI9C,MAAM,OAAO,GAAG;IACd,KAAK;IACL,YAAY;IACZ,UAAU;IACV,WAAW;IACX,SAAS;IACT,OAAO;CACC,CAAC;AAIX,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE3D,MAAM,SAAS,GAAG,CAAC,KAAa,EAAoB,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAE9E,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AAEzD,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAmB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAE3E,0CAA0C;AAC1C,gDAAgD;AAChD,MAAM,IAAI,GAA+B,CAAC,OAAO,EAAE,EAAE;IACnD,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAE9B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;KACtD;IACD,MAAM,EAAE,KAAK;IACb,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC;AAEpD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;IACvD,IAAI,CAAC,qBAAqB,UAAU,IAAI,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACzB,IAAI,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,wDAAwD;AACxD,oCAAoC;AACpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEnD,MAAM,OAAO,GAGT;IACF,KAAK,EAAE;QACL,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;YAE9B,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAE7B,MAAM,MAAM,CAAC,uBAAuB,EAAE,CAAC;YAEvC,MAAM,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAEpC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACpC,CAAC;QACD,UAAU,EAAE,MAAM,CAAC,uBAAuB;QAC1C,QAAQ,EAAE,MAAM,CAAC,aAAa;QAC9B,SAAS,EAAE,MAAM,CAAC,cAAc;QAChC,OAAO,EAAE,MAAM,CAAC,oBAAoB;QACpC,KAAK,EAAE,MAAM,CAAC,kBAAkB;KACjC;IACD,MAAM,EAAE;QACN,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;YAE9B,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC;YAExC,MAAM,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAErC,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACrC,CAAC;QACD,UAAU,EAAE,MAAM,CAAC,wBAAwB;QAC3C,QAAQ,EAAE,MAAM,CAAC,cAAc;QAC/B,OAAO,EAAE,MAAM,CAAC,qBAAqB;QACrC,KAAK,EAAE,MAAM,CAAC,mBAAmB;KAClC;CACO,CAAC;AAEX,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;AAE9C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;IACzB,IAAI,CAAC,IAAI,UAAU,kCAAkC,SAAS,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"repo-settings.mjs","sourceRoot":"","sources":["../../src/cmd/repo-settings.mts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  import 'dotenv/config';
3
- /** `github/actions-settings/settings.json` を Settings > Actions > General に反映する。 */
3
+ /** `repo-settings/actions-settings/settings.json` を Settings > Actions > General に反映する。 */
4
4
  export declare const applyActionsSettings: () => Promise<void>;
5
5
  //# sourceMappingURL=apply.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.mts","sourceRoot":"","sources":["../../../src/github/actions-settings/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAcvB,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,QAAa,OAAO,CAAC,IAAI,CAwBzD,CAAC"}
1
+ {"version":3,"file":"apply.d.mts","sourceRoot":"","sources":["../../../src/github/actions-settings/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAcvB,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,QAAa,OAAO,CAAC,IAAI,CAwBzD,CAAC"}
@@ -8,7 +8,7 @@ import { actionsSettingsDir, settingsJsonName } from '../constants.mjs';
8
8
  import { getActionsSettings, setActionsSettings } from './api/index.mjs';
9
9
  import { backupActionsSettings } from './backup.mjs';
10
10
  import { ActionsSettings } from './constants.mjs';
11
- /** `github/actions-settings/settings.json` を Settings > Actions > General に反映する。 */
11
+ /** `repo-settings/actions-settings/settings.json` を Settings > Actions > General に反映する。 */
12
12
  export const applyActionsSettings = async () => {
13
13
  await backupActionsSettings(false);
14
14
  const settings = await readSettings();
@@ -1 +1 @@
1
- {"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/actions-settings/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,oFAAoF;AACpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,IAAmB,EAAE;IAC5D,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IAEtC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEnC,0BAA0B;IAC1B,CAAC;QACC,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAElD,mEAAmE;QACnE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;QAE5E,mEAAmE;QACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,CAAC,EACxD,GAAG,CACJ,CAAC;QAEF,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,IAA8B,EAAE;IACxD,mEAAmE;IACnE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAClD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IAEF,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,0BAA0B,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAChC,CAAC,CAAC;AAEF,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,MAAM,oBAAoB,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/actions-settings/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,IAAmB,EAAE;IAC5D,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IAEtC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEnC,0BAA0B;IAC1B,CAAC;QACC,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAElD,mEAAmE;QACnE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;QAE5E,mEAAmE;QACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,CAAC,EACxD,GAAG,CACJ,CAAC;QAEF,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,IAA8B,EAAE;IACxD,mEAAmE;IACnE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAClD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IAEF,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,0BAA0B,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAChC,CAAC,CAAC;AAEF,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,MAAM,oBAAoB,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as t from 'ts-fortress';
2
2
  /**
3
- * `github/actions-settings/settings.json` の型。
3
+ * `repo-settings/actions-settings/settings.json` の型。
4
4
  *
5
5
  * Settings > Actions > General に対応する。 2 つの API をまとめて 1 ファイルで
6
6
  * 管理する:
@@ -1,6 +1,6 @@
1
1
  import * as t from 'ts-fortress';
2
2
  /**
3
- * `github/actions-settings/settings.json` の型。
3
+ * `repo-settings/actions-settings/settings.json` の型。
4
4
  *
5
5
  * Settings > Actions > General に対応する。 2 つの API をまとめて 1 ファイルで
6
6
  * 管理する:
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,EAAE,MAAyB,CAAC;AAE9C,eAAO,MAAM,IAAI,EAAE,MAAwB,CAAC;AAI5C,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAEhD,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAgD,CAAC;AAEhF,eAAO,MAAM,gBAAgB,QAAqC,CAAC;AAEnE,eAAO,MAAM,WAAW,QAAwC,CAAC;AAEjE,eAAO,MAAM,cAAc;aACzB,sBAAsB,EAAE,YAAY;CAC5B,CAAC"}
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,EAAE,MAAyB,CAAC;AAE9C,eAAO,MAAM,IAAI,EAAE,MAAwB,CAAC;AAM5C,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAEhD,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAG9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE,eAAO,MAAM,WAAW,QAA0C,CAAC;AAEnE,eAAO,MAAM,cAAc;aACzB,sBAAsB,EAAE,YAAY;CAC5B,CAAC"}
@@ -3,12 +3,14 @@ import { resolveTargetRepo } from './resolve-target-repo.mjs';
3
3
  const targetRepo = await resolveTargetRepo();
4
4
  export const OWNER = targetRepo.owner;
5
5
  export const REPO = targetRepo.repo;
6
- const githubDir = path.resolve(process.cwd(), './github');
6
+ // Named `repo-settings` rather than `github`, which read as a sibling of
7
+ // `.github` and invited the guess that workflows lived here too.
8
+ const settingsDir = path.resolve(process.cwd(), './repo-settings');
7
9
  export const settingsJsonName = 'settings.json';
8
- export const repositorySettingsDir = path.resolve(githubDir, './repository-settings');
9
- export const actionsSettingsDir = path.resolve(githubDir, './actions-settings');
10
- export const pagesSettingsDir = path.resolve(githubDir, './pages');
11
- export const rulesetsDir = path.resolve(githubDir, './rulesets');
10
+ export const repositorySettingsDir = path.resolve(settingsDir, './repository-settings');
11
+ export const actionsSettingsDir = path.resolve(settingsDir, './actions-settings');
12
+ export const pagesSettingsDir = path.resolve(settingsDir, './pages');
13
+ export const rulesetsDir = path.resolve(settingsDir, './rulesets');
12
14
  export const octokitHeaders = {
13
15
  'X-GitHub-Api-Version': '2022-11-28',
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,KAAK,GAAW,UAAU,CAAC,KAAK,CAAC;AAE9C,MAAM,CAAC,MAAM,IAAI,GAAW,UAAU,CAAC,IAAI,CAAC;AAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAC/C,SAAS,EACT,uBAAuB,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,sBAAsB,EAAE,YAAY;CAC5B,CAAC"}
1
+ {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,KAAK,GAAW,UAAU,CAAC,KAAK,CAAC;AAE9C,MAAM,CAAC,MAAM,IAAI,GAAW,UAAU,CAAC,IAAI,CAAC;AAE5C,yEAAyE;AACzE,iEAAiE;AACjE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAC/C,WAAW,EACX,uBAAuB,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAC5C,WAAW,EACX,oBAAoB,CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,sBAAsB,EAAE,YAAY;CAC5B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import 'dotenv/config';
3
3
  /**
4
- * `github/pages/settings.json` を Settings > Pages に反映する。
4
+ * `repo-settings/pages/settings.json` を Settings > Pages に反映する。
5
5
  *
6
6
  * 設定ファイルを置いていない repository では何もしない( Pages を使わない
7
7
  * repository で誤って Pages を有効化しないため)。
@@ -8,7 +8,7 @@ import { pagesSettingsDir, settingsJsonName } from '../constants.mjs';
8
8
  import { getPagesSettings, setPagesSettings } from './api/index.mjs';
9
9
  import { PagesSettings } from './constants.mjs';
10
10
  /**
11
- * `github/pages/settings.json` を Settings > Pages に反映する。
11
+ * `repo-settings/pages/settings.json` を Settings > Pages に反映する。
12
12
  *
13
13
  * 設定ファイルを置いていない repository では何もしない( Pages を使わない
14
14
  * repository で誤って Pages を有効化しないため)。
@@ -1,6 +1,6 @@
1
1
  import * as t from 'ts-fortress';
2
2
  /**
3
- * `github/pages/settings.json` の型。
3
+ * `repo-settings/pages/settings.json` の型。
4
4
  *
5
5
  * Settings > Pages > Build and deployment > Source に対応する。
6
6
  * `workflow` が GUI 上の「 GitHub Actions 」、 `legacy` が「 Deploy from a branch 」。
@@ -1,6 +1,6 @@
1
1
  import * as t from 'ts-fortress';
2
2
  /**
3
- * `github/pages/settings.json` の型。
3
+ * `repo-settings/pages/settings.json` の型。
4
4
  *
5
5
  * Settings > Pages > Build and deployment > Source に対応する。
6
6
  * `workflow` が GUI 上の「 GitHub Actions 」、 `legacy` が「 Deploy from a branch 」。
@@ -12,9 +12,9 @@ export const applyVariables = async () => {
12
12
  },
13
13
  {
14
14
  // noshiro-repo-automation-bot (App ID: 4478721)
15
- // Contents / Pull requests / Issues 権限。PR を作る自動化( pnpm-update /
16
- // sync-agent-config )と release で共用する。実際に使う権限は各
17
- // ワークフローの permission-* 入力で絞る。
15
+ // Contents / Pull requests / Issues 権限。PR を作る自動化( pnpm-update )と
16
+ // release で共用する。実際に使う権限は各ワークフローの permission-* 入力で
17
+ // 絞る。
18
18
  name: 'REPO_AUTOMATION_BOT_CLIENT_ID',
19
19
  value: 'Iv23lilpiDh0twq2PErv',
20
20
  },
@@ -1 +1 @@
1
- {"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/variables/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAmB,EAAE;IACtD,MAAM,SAAS,GAAG;QAChB;YACE,8CAA8C;YAC9C,mDAAmD;YACnD,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,sBAAsB;SAC9B;QACD;YACE,gDAAgD;YAChD,gEAAgE;YAChE,+CAA+C;YAC/C,8BAA8B;YAC9B,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,sBAAsB;SAC9B;KACO,CAAC;IAEX,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEpD,MAAM,cAAc,GAAwB,IAAI,GAAG,CACjD,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACrC,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/variables/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAmB,EAAE;IACtD,MAAM,SAAS,GAAG;QAChB;YACE,8CAA8C;YAC9C,mDAAmD;YACnD,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,sBAAsB;SAC9B;QACD;YACE,gDAAgD;YAChD,iEAAiE;YACjE,kDAAkD;YAClD,MAAM;YACN,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,sBAAsB;SAC9B;KACO,CAAC;IAEX,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEpD,MAAM,cAAc,GAAwB,IAAI,GAAG,CACjD,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACrC,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-settings-as-code",
3
- "version": "2.1.1",
3
+ "version": "3.0.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "github",
@@ -29,9 +29,9 @@
29
29
  "dotenv": "^17.4.2",
30
30
  "octokit-safe-types": "^1.2.25",
31
31
  "ts-data-forge": "^14.2.1",
32
- "ts-fortress": "^12.0.1",
33
32
  "ts-repo-utils": "^10.2.0",
34
- "ts-type-forge": "^9.2.1"
33
+ "ts-type-forge": "^9.2.1",
34
+ "ts-fortress": "^12.0.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "26.2.0",
@@ -48,8 +48,8 @@
48
48
  "typescript": "6.0.3",
49
49
  "typescript-native": "npm:typescript@7.0.2",
50
50
  "vitest": "4.1.10",
51
- "eslint-config-typed": "5.8.5",
52
- "eslint-plugin-ts-data-forge": "0.4.4",
51
+ "eslint-plugin-ts-data-forge": "0.4.5",
52
+ "eslint-config-typed": "5.8.6",
53
53
  "eslint-plugin-ts-fortress": "1.0.1",
54
54
  "eslint-plugin-ts-type-forge": "0.6.3"
55
55
  },
@@ -16,11 +16,11 @@ Commands:
16
16
 
17
17
  Targets:
18
18
  all すべて(既定)
19
- repository github/repository-settings/settings.json
20
- rulesets github/rulesets/*.json
19
+ repository repo-settings/repository-settings/settings.json
20
+ rulesets repo-settings/rulesets/*.json
21
21
  variables repository variables ( apply のみ )
22
- actions github/actions-settings/settings.json
23
- pages github/pages/settings.json
22
+ actions repo-settings/actions-settings/settings.json
23
+ pages repo-settings/pages/settings.json
24
24
 
25
25
  Options:
26
26
  --owner <owner> 対象の owner
@@ -91,7 +91,8 @@ const { values, positionals } = util.parseArgs({
91
91
  if (values.help === true || Arr.isEmpty(positionals)) {
92
92
  console.info(HELP);
93
93
 
94
- process.exit(Arr.isEmpty(positionals) ? 1 : 0);
94
+ // Asking for help is not an error, even though being given no command is.
95
+ process.exit(values.help === true ? 0 : 1);
95
96
  }
96
97
 
97
98
  const [commandArg, targetArg = 'all'] = positionals;
@@ -13,7 +13,7 @@ import { getActionsSettings, setActionsSettings } from './api/index.mjs';
13
13
  import { backupActionsSettings } from './backup.mjs';
14
14
  import { ActionsSettings } from './constants.mjs';
15
15
 
16
- /** `github/actions-settings/settings.json` を Settings > Actions > General に反映する。 */
16
+ /** `repo-settings/actions-settings/settings.json` を Settings > Actions > General に反映する。 */
17
17
  export const applyActionsSettings = async (): Promise<void> => {
18
18
  await backupActionsSettings(false);
19
19
 
@@ -1,7 +1,7 @@
1
1
  import * as t from 'ts-fortress';
2
2
 
3
3
  /**
4
- * `github/actions-settings/settings.json` の型。
4
+ * `repo-settings/actions-settings/settings.json` の型。
5
5
  *
6
6
  * Settings > Actions > General に対応する。 2 つの API をまとめて 1 ファイルで
7
7
  * 管理する:
@@ -7,20 +7,25 @@ export const OWNER: string = targetRepo.owner;
7
7
 
8
8
  export const REPO: string = targetRepo.repo;
9
9
 
10
- const githubDir = path.resolve(process.cwd(), './github');
10
+ // Named `repo-settings` rather than `github`, which read as a sibling of
11
+ // `.github` and invited the guess that workflows lived here too.
12
+ const settingsDir = path.resolve(process.cwd(), './repo-settings');
11
13
 
12
14
  export const settingsJsonName = 'settings.json';
13
15
 
14
16
  export const repositorySettingsDir = path.resolve(
15
- githubDir,
17
+ settingsDir,
16
18
  './repository-settings',
17
19
  );
18
20
 
19
- export const actionsSettingsDir = path.resolve(githubDir, './actions-settings');
21
+ export const actionsSettingsDir = path.resolve(
22
+ settingsDir,
23
+ './actions-settings',
24
+ );
20
25
 
21
- export const pagesSettingsDir = path.resolve(githubDir, './pages');
26
+ export const pagesSettingsDir = path.resolve(settingsDir, './pages');
22
27
 
23
- export const rulesetsDir = path.resolve(githubDir, './rulesets');
28
+ export const rulesetsDir = path.resolve(settingsDir, './rulesets');
24
29
 
25
30
  export const octokitHeaders = {
26
31
  'X-GitHub-Api-Version': '2022-11-28',
@@ -14,7 +14,7 @@ import { getPagesSettings, setPagesSettings } from './api/index.mjs';
14
14
  import { PagesSettings } from './constants.mjs';
15
15
 
16
16
  /**
17
- * `github/pages/settings.json` を Settings > Pages に反映する。
17
+ * `repo-settings/pages/settings.json` を Settings > Pages に反映する。
18
18
  *
19
19
  * 設定ファイルを置いていない repository では何もしない( Pages を使わない
20
20
  * repository で誤って Pages を有効化しないため)。
@@ -1,7 +1,7 @@
1
1
  import * as t from 'ts-fortress';
2
2
 
3
3
  /**
4
- * `github/pages/settings.json` の型。
4
+ * `repo-settings/pages/settings.json` の型。
5
5
  *
6
6
  * Settings > Pages > Build and deployment > Source に対応する。
7
7
  * `workflow` が GUI 上の「 GitHub Actions 」、 `legacy` が「 Deploy from a branch 」。
@@ -17,9 +17,9 @@ export const applyVariables = async (): Promise<void> => {
17
17
  },
18
18
  {
19
19
  // noshiro-repo-automation-bot (App ID: 4478721)
20
- // Contents / Pull requests / Issues 権限。PR を作る自動化( pnpm-update /
21
- // sync-agent-config )と release で共用する。実際に使う権限は各
22
- // ワークフローの permission-* 入力で絞る。
20
+ // Contents / Pull requests / Issues 権限。PR を作る自動化( pnpm-update )と
21
+ // release で共用する。実際に使う権限は各ワークフローの permission-* 入力で
22
+ // 絞る。
23
23
  name: 'REPO_AUTOMATION_BOT_CLIENT_ID',
24
24
  value: 'Iv23lilpiDh0twq2PErv',
25
25
  },