github-settings-as-code 1.2.9 → 2.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.
Files changed (145) hide show
  1. package/README.md +60 -9
  2. package/dist/cmd/{gh-apply-all.d.mts → repo-settings.d.mts} +1 -1
  3. package/dist/cmd/repo-settings.d.mts.map +1 -0
  4. package/dist/cmd/repo-settings.mjs +118 -0
  5. package/dist/cmd/repo-settings.mjs.map +1 -0
  6. package/dist/github/actions-settings/api/get-actions-settings.d.mts +8 -0
  7. package/dist/github/actions-settings/api/get-actions-settings.d.mts.map +1 -0
  8. package/dist/github/actions-settings/api/get-actions-settings.mjs +25 -0
  9. package/dist/github/actions-settings/api/get-actions-settings.mjs.map +1 -0
  10. package/dist/github/actions-settings/api/index.d.mts +3 -0
  11. package/dist/github/actions-settings/api/index.d.mts.map +1 -0
  12. package/dist/github/actions-settings/api/index.mjs +3 -0
  13. package/dist/github/actions-settings/api/index.mjs.map +1 -0
  14. package/dist/github/actions-settings/api/set-actions-settings.d.mts +4 -0
  15. package/dist/github/actions-settings/api/set-actions-settings.d.mts.map +1 -0
  16. package/dist/github/actions-settings/api/set-actions-settings.mjs +27 -0
  17. package/dist/github/actions-settings/api/set-actions-settings.mjs.map +1 -0
  18. package/dist/github/actions-settings/apply.d.mts +5 -0
  19. package/dist/github/actions-settings/apply.d.mts.map +1 -0
  20. package/dist/github/actions-settings/apply.mjs +39 -0
  21. package/dist/github/actions-settings/apply.mjs.map +1 -0
  22. package/dist/github/actions-settings/backup.d.mts +5 -0
  23. package/dist/github/actions-settings/backup.d.mts.map +1 -0
  24. package/dist/github/actions-settings/backup.mjs +22 -0
  25. package/dist/github/actions-settings/backup.mjs.map +1 -0
  26. package/dist/github/actions-settings/constants.d.mts +69 -0
  27. package/dist/github/actions-settings/constants.d.mts.map +1 -0
  28. package/dist/github/actions-settings/constants.mjs +42 -0
  29. package/dist/github/actions-settings/constants.mjs.map +1 -0
  30. package/dist/github/actions-settings/index.d.mts +5 -0
  31. package/dist/github/actions-settings/index.d.mts.map +1 -0
  32. package/dist/github/actions-settings/index.mjs +5 -0
  33. package/dist/github/actions-settings/index.mjs.map +1 -0
  34. package/dist/github/constants.d.mts +4 -2
  35. package/dist/github/constants.d.mts.map +1 -1
  36. package/dist/github/constants.mjs +7 -31
  37. package/dist/github/constants.mjs.map +1 -1
  38. package/dist/github/index.d.mts +4 -0
  39. package/dist/github/index.d.mts.map +1 -1
  40. package/dist/github/index.mjs +4 -0
  41. package/dist/github/index.mjs.map +1 -1
  42. package/dist/github/octokit.d.mts.map +1 -1
  43. package/dist/github/octokit.mjs +39 -3
  44. package/dist/github/octokit.mjs.map +1 -1
  45. package/dist/github/pages/api/get-pages-settings.d.mts +8 -0
  46. package/dist/github/pages/api/get-pages-settings.d.mts.map +1 -0
  47. package/dist/github/pages/api/get-pages-settings.mjs +26 -0
  48. package/dist/github/pages/api/get-pages-settings.mjs.map +1 -0
  49. package/dist/github/pages/api/index.d.mts +3 -0
  50. package/dist/github/pages/api/index.d.mts.map +1 -0
  51. package/dist/github/pages/api/index.mjs +3 -0
  52. package/dist/github/pages/api/index.mjs.map +1 -0
  53. package/dist/github/pages/api/set-pages-settings.d.mts +9 -0
  54. package/dist/github/pages/api/set-pages-settings.d.mts.map +1 -0
  55. package/dist/github/pages/api/set-pages-settings.mjs +33 -0
  56. package/dist/github/pages/api/set-pages-settings.mjs.map +1 -0
  57. package/dist/github/pages/apply.d.mts +10 -0
  58. package/dist/github/pages/apply.d.mts.map +1 -0
  59. package/dist/github/pages/apply.mjs +49 -0
  60. package/dist/github/pages/apply.mjs.map +1 -0
  61. package/dist/github/pages/backup.d.mts +5 -0
  62. package/dist/github/pages/backup.d.mts.map +1 -0
  63. package/dist/github/pages/backup.mjs +26 -0
  64. package/dist/github/pages/backup.mjs.map +1 -0
  65. package/dist/github/pages/constants.d.mts +42 -0
  66. package/dist/github/pages/constants.d.mts.map +1 -0
  67. package/dist/github/pages/constants.mjs +14 -0
  68. package/dist/github/pages/constants.mjs.map +1 -0
  69. package/dist/github/pages/index.d.mts +5 -0
  70. package/dist/github/pages/index.d.mts.map +1 -0
  71. package/dist/github/pages/index.mjs +5 -0
  72. package/dist/github/pages/index.mjs.map +1 -0
  73. package/dist/github/repository/api/update-repository.d.mts.map +1 -1
  74. package/dist/github/repository/apply.d.mts.map +1 -1
  75. package/dist/github/repository/apply.mjs +4 -4
  76. package/dist/github/repository/apply.mjs.map +1 -1
  77. package/dist/github/repository/backup.d.mts.map +1 -1
  78. package/dist/github/repository/backup.mjs +2 -2
  79. package/dist/github/repository/backup.mjs.map +1 -1
  80. package/dist/github/repository/constants.d.mts +3267 -2032
  81. package/dist/github/repository/constants.d.mts.map +1 -1
  82. package/dist/github/repository/constants.mjs +2 -1
  83. package/dist/github/repository/constants.mjs.map +1 -1
  84. package/dist/github/resolve-target-repo.d.mts +16 -0
  85. package/dist/github/resolve-target-repo.d.mts.map +1 -0
  86. package/dist/github/resolve-target-repo.mjs +113 -0
  87. package/dist/github/resolve-target-repo.mjs.map +1 -0
  88. package/dist/github/ruleset/api/create-ruleset.d.mts.map +1 -1
  89. package/dist/github/ruleset/api/get-all-rulesets.d.mts.map +1 -1
  90. package/dist/github/ruleset/api/get-all-rulesets.mjs.map +1 -1
  91. package/dist/github/ruleset/api/get-ruleset.d.mts.map +1 -1
  92. package/dist/github/ruleset/api/update-ruleset.d.mts.map +1 -1
  93. package/dist/github/ruleset/apply.mjs.map +1 -1
  94. package/dist/github/ruleset/backup.d.mts.map +1 -1
  95. package/dist/github/ruleset/backup.mjs.map +1 -1
  96. package/dist/github/ruleset/constants.d.mts +752 -269
  97. package/dist/github/ruleset/constants.d.mts.map +1 -1
  98. package/dist/github/ruleset/constants.mjs +2 -1
  99. package/dist/github/ruleset/constants.mjs.map +1 -1
  100. package/dist/github/ruleset/read-rule-set-contents.mjs.map +1 -1
  101. package/dist/github/upgrade-stale-codec.d.mts +19 -0
  102. package/dist/github/upgrade-stale-codec.d.mts.map +1 -0
  103. package/dist/github/upgrade-stale-codec.mjs +20 -0
  104. package/dist/github/upgrade-stale-codec.mjs.map +1 -0
  105. package/dist/github/variables/api/create-repo-variable.d.mts.map +1 -1
  106. package/dist/github/variables/api/update-repo-variable.d.mts.map +1 -1
  107. package/dist/github/variables/apply.d.mts.map +1 -1
  108. package/dist/github/variables/apply.mjs +9 -6
  109. package/dist/github/variables/apply.mjs.map +1 -1
  110. package/package.json +53 -58
  111. package/src/cmd/repo-settings.mts +153 -0
  112. package/src/github/actions-settings/api/get-actions-settings.mts +38 -0
  113. package/src/github/actions-settings/api/index.mts +2 -0
  114. package/src/github/actions-settings/api/set-actions-settings.mts +39 -0
  115. package/src/github/actions-settings/apply.mts +63 -0
  116. package/src/github/actions-settings/backup.mts +36 -0
  117. package/src/github/actions-settings/constants.mts +50 -0
  118. package/src/github/actions-settings/index.mts +4 -0
  119. package/src/github/constants.mts +9 -42
  120. package/src/github/index.mts +4 -0
  121. package/src/github/octokit.mts +47 -3
  122. package/src/github/pages/api/get-pages-settings.mts +35 -0
  123. package/src/github/pages/api/index.mts +2 -0
  124. package/src/github/pages/api/set-pages-settings.mts +47 -0
  125. package/src/github/pages/apply.mts +73 -0
  126. package/src/github/pages/backup.mts +44 -0
  127. package/src/github/pages/constants.mts +16 -0
  128. package/src/github/pages/index.mts +4 -0
  129. package/src/github/repository/apply.mts +4 -7
  130. package/src/github/repository/backup.mts +2 -5
  131. package/src/github/repository/constants.mts +5 -1
  132. package/src/github/resolve-target-repo.mts +144 -0
  133. package/src/github/ruleset/api/get-all-rulesets.mts +3 -6
  134. package/src/github/ruleset/constants.mts +5 -1
  135. package/src/github/upgrade-stale-codec.mts +29 -0
  136. package/src/github/variables/apply.mts +9 -6
  137. package/dist/cmd/gh-apply-all.d.mts.map +0 -1
  138. package/dist/cmd/gh-apply-all.mjs +0 -10
  139. package/dist/cmd/gh-apply-all.mjs.map +0 -1
  140. package/dist/cmd/gh-backup-all.d.mts +0 -3
  141. package/dist/cmd/gh-backup-all.d.mts.map +0 -1
  142. package/dist/cmd/gh-backup-all.mjs +0 -9
  143. package/dist/cmd/gh-backup-all.mjs.map +0 -1
  144. package/src/cmd/gh-apply-all.mts +0 -18
  145. package/src/cmd/gh-backup-all.mts +0 -12
@@ -35,18 +35,15 @@ export const getAllRulesets = async (): Promise<GetAllRulesetsResponse> => {
35
35
  enforcement: components['schemas']['repository-rule-enforcement'];
36
36
  bypass_actors?: components['schemas']['repository-ruleset-bypass-actor'][];
37
37
  current_user_can_bypass?:
38
- | 'always'
39
- | 'pull_requests_only'
40
- | 'never'
41
- | 'exempt';
38
+ 'always' | 'pull_requests_only' | 'never' | 'exempt';
42
39
  node_id?: string;
43
40
  _links?: {
44
41
  self?: {
45
42
  href?: string;
46
43
  };
47
- html?: {
44
+ html?: null | {
48
45
  href?: string;
49
- } | null;
46
+ };
50
47
  };
51
48
  conditions?:
52
49
  | (
@@ -5,6 +5,7 @@ import {
5
5
  } from 'octokit-safe-types';
6
6
  import { expectType } from 'ts-data-forge';
7
7
  import * as t from 'ts-fortress';
8
+ import { upgradeStaleCodec } from '../upgrade-stale-codec.mjs';
8
9
 
9
10
  export const rulesetKeysToPick = [
10
11
  'id',
@@ -22,6 +23,9 @@ expectType<keyof UpdateRulesetRequest | 'id', KeysToPick>('=');
22
23
 
23
24
  expectType<keyof CreateRulesetRequest, keyof UpdateRulesetRequest>('=');
24
25
 
25
- export const RulesetPicked = t.pick(RepositoryRuleset, rulesetKeysToPick);
26
+ export const RulesetPicked = t.pick(
27
+ upgradeStaleCodec(RepositoryRuleset),
28
+ rulesetKeysToPick,
29
+ );
26
30
 
27
31
  export type RulesetPicked = t.TypeOf<typeof RulesetPicked>;
@@ -0,0 +1,29 @@
1
+ import { type Type } from 'ts-fortress';
2
+ import { type StrictOmit } from 'ts-type-forge';
3
+
4
+ /**
5
+ * Restores the full ts-fortress `Type` interface for codecs imported from
6
+ * octokit-safe-types@1.2.19, whose declaration files were generated against
7
+ * ts-fortress 7 (whose `Type` lacked the `prune` member). The pnpm override in
8
+ * `pnpm-workspace.yaml` resolves ts-fortress >= 11 at runtime, so the codec
9
+ * object itself does have `prune`; only its declared type is stale. This
10
+ * verifies `prune` exists at runtime and rebuilds the codec with the correct
11
+ * type, without unsafe type assertions.
12
+ *
13
+ * TODO: Remove this helper once octokit-safe-types is rebuilt against
14
+ * ts-fortress >= 11.
15
+ */
16
+ export const upgradeStaleCodec = <A,>(
17
+ codec: Readonly<{ defaultValue: A; prune?: Type<A>['prune'] }> &
18
+ StrictOmit<Type<A>, 'defaultValue' | 'prune'>,
19
+ ): Type<A> => {
20
+ const { prune } = codec;
21
+
22
+ if (prune === undefined) {
23
+ throw new Error(
24
+ `The codec "${codec.typeName}" has no prune function at runtime. octokit-safe-types is probably resolving an old ts-fortress version; check the pnpm overrides.`,
25
+ );
26
+ }
27
+
28
+ return { ...codec, prune };
29
+ };
@@ -10,16 +10,19 @@ import {
10
10
  export const applyVariables = async (): Promise<void> => {
11
11
  const variables = [
12
12
  {
13
- name: 'DEPENDABOT_AUTO_MERGE_BOT_APP_ID',
14
- value: '1442916',
13
+ // noshiro-semantic-release-bot (App ID: 1442563)
14
+ name: 'SEMANTIC_RELEASE_BOT_CLIENT_ID',
15
+ value: 'Iv23liAmv2bgTYTkv2pt',
15
16
  },
16
17
  {
17
- name: 'SEMANTIC_RELEASE_GIT_PERMISSION_BOT_APP_ID',
18
- value: '1442563',
18
+ // noshiro-changesets-release-bot (App ID: 1576218)
19
+ name: 'CHANGESETS_RELEASE_BOT_CLIENT_ID',
20
+ value: 'Iv23limuZKrTEcXmN0lp',
19
21
  },
20
22
  {
21
- name: 'CHANGESETS_BOT_APP_ID',
22
- value: '1576218',
23
+ // noshiro-repo-settings-bot (App ID: 4476573)
24
+ name: 'REPO_SETTINGS_BOT_CLIENT_ID',
25
+ value: 'Iv23ctr4Lq9H3wOYRQrD',
23
26
  },
24
27
  ] as const;
25
28
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"gh-apply-all.d.mts","sourceRoot":"","sources":["../../src/cmd/gh-apply-all.mts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC"}
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'dotenv/config';
3
- import { applyRepositorySettings, applyRulesets, applyVariables, } from '../github/index.mjs';
4
- const runApplyAll = async () => {
5
- await applyVariables();
6
- await applyRulesets();
7
- await applyRepositorySettings();
8
- };
9
- await runApplyAll();
10
- //# sourceMappingURL=gh-apply-all.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gh-apply-all.mjs","sourceRoot":"","sources":["../../src/cmd/gh-apply-all.mts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IAC5C,MAAM,cAAc,EAAE,CAAC;IAEvB,MAAM,aAAa,EAAE,CAAC;IAEtB,MAAM,uBAAuB,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,WAAW,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'dotenv/config';
3
- //# sourceMappingURL=gh-backup-all.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gh-backup-all.d.mts","sourceRoot":"","sources":["../../src/cmd/gh-backup-all.mts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC"}
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'dotenv/config';
3
- import { backupRepositorySettings, backupRulesets } from '../github/index.mjs';
4
- const runBackupAll = async () => {
5
- await backupRulesets();
6
- await backupRepositorySettings();
7
- };
8
- await runBackupAll();
9
- //# sourceMappingURL=gh-backup-all.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gh-backup-all.mjs","sourceRoot":"","sources":["../../src/cmd/gh-backup-all.mts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IAC7C,MAAM,cAAc,EAAE,CAAC;IAEvB,MAAM,wBAAwB,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,YAAY,EAAE,CAAC"}
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import 'dotenv/config';
4
- import {
5
- applyRepositorySettings,
6
- applyRulesets,
7
- applyVariables,
8
- } from '../github/index.mjs';
9
-
10
- const runApplyAll = async (): Promise<void> => {
11
- await applyVariables();
12
-
13
- await applyRulesets();
14
-
15
- await applyRepositorySettings();
16
- };
17
-
18
- await runApplyAll();
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import 'dotenv/config';
4
- import { backupRepositorySettings, backupRulesets } from '../github/index.mjs';
5
-
6
- const runBackupAll = async (): Promise<void> => {
7
- await backupRulesets();
8
-
9
- await backupRepositorySettings();
10
- };
11
-
12
- await runBackupAll();