github-settings-as-code 3.1.0 → 4.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 (170) hide show
  1. package/README.md +61 -39
  2. package/dist/cmd/repo-settings.mjs +17 -2
  3. package/dist/cmd/repo-settings.mjs.map +1 -1
  4. package/dist/github/actions-settings/apply.d.mts.map +1 -1
  5. package/dist/github/actions-settings/apply.mjs +0 -4
  6. package/dist/github/actions-settings/apply.mjs.map +1 -1
  7. package/dist/github/actions-settings/backup.d.mts +1 -1
  8. package/dist/github/actions-settings/backup.d.mts.map +1 -1
  9. package/dist/github/actions-settings/backup.mjs +4 -4
  10. package/dist/github/actions-settings/backup.mjs.map +1 -1
  11. package/dist/github/actions-settings/constants.d.mts +1 -1
  12. package/dist/github/clear-json-files.d.mts +17 -0
  13. package/dist/github/clear-json-files.d.mts.map +1 -0
  14. package/dist/github/clear-json-files.mjs +29 -0
  15. package/dist/github/clear-json-files.mjs.map +1 -0
  16. package/dist/github/constants.d.mts +3 -0
  17. package/dist/github/constants.d.mts.map +1 -1
  18. package/dist/github/constants.mjs +3 -0
  19. package/dist/github/constants.mjs.map +1 -1
  20. package/dist/github/environments/api/get-environments.d.mts +16 -0
  21. package/dist/github/environments/api/get-environments.d.mts.map +1 -0
  22. package/dist/github/environments/api/get-environments.mjs +98 -0
  23. package/dist/github/environments/api/get-environments.mjs.map +1 -0
  24. package/dist/github/environments/api/index.d.mts +3 -0
  25. package/dist/github/environments/api/index.d.mts.map +1 -0
  26. package/dist/github/environments/api/index.mjs +3 -0
  27. package/dist/github/environments/api/index.mjs.map +1 -0
  28. package/dist/github/environments/api/set-environment.d.mts +10 -0
  29. package/dist/github/environments/api/set-environment.d.mts.map +1 -0
  30. package/dist/github/environments/api/set-environment.mjs +73 -0
  31. package/dist/github/environments/api/set-environment.mjs.map +1 -0
  32. package/dist/github/environments/apply.d.mts +11 -0
  33. package/dist/github/environments/apply.d.mts.map +1 -0
  34. package/dist/github/environments/apply.mjs +63 -0
  35. package/dist/github/environments/apply.mjs.map +1 -0
  36. package/dist/github/environments/backup.d.mts +10 -0
  37. package/dist/github/environments/backup.d.mts.map +1 -0
  38. package/dist/github/environments/backup.mjs +30 -0
  39. package/dist/github/environments/backup.mjs.map +1 -0
  40. package/dist/github/environments/constants.d.mts +354 -0
  41. package/dist/github/environments/constants.d.mts.map +1 -0
  42. package/dist/github/environments/constants.mjs +62 -0
  43. package/dist/github/environments/constants.mjs.map +1 -0
  44. package/dist/github/environments/index.d.mts +6 -0
  45. package/dist/github/environments/index.d.mts.map +1 -0
  46. package/dist/github/environments/index.mjs +6 -0
  47. package/dist/github/environments/index.mjs.map +1 -0
  48. package/dist/github/environments/read-environment-contents.d.mts +3 -0
  49. package/dist/github/environments/read-environment-contents.d.mts.map +1 -0
  50. package/dist/github/environments/read-environment-contents.mjs +31 -0
  51. package/dist/github/environments/read-environment-contents.mjs.map +1 -0
  52. package/dist/github/index.d.mts +4 -0
  53. package/dist/github/index.d.mts.map +1 -1
  54. package/dist/github/index.mjs +4 -0
  55. package/dist/github/index.mjs.map +1 -1
  56. package/dist/github/pages/apply.d.mts.map +1 -1
  57. package/dist/github/pages/apply.mjs +0 -2
  58. package/dist/github/pages/apply.mjs.map +1 -1
  59. package/dist/github/pages/backup.d.mts +11 -1
  60. package/dist/github/pages/backup.d.mts.map +1 -1
  61. package/dist/github/pages/backup.mjs +18 -5
  62. package/dist/github/pages/backup.mjs.map +1 -1
  63. package/dist/github/repository/apply.d.mts.map +1 -1
  64. package/dist/github/repository/apply.mjs +0 -4
  65. package/dist/github/repository/apply.mjs.map +1 -1
  66. package/dist/github/repository/backup.d.mts.map +1 -1
  67. package/dist/github/repository/backup.mjs +4 -4
  68. package/dist/github/repository/backup.mjs.map +1 -1
  69. package/dist/github/ruleset/apply.d.mts.map +1 -1
  70. package/dist/github/ruleset/apply.mjs +9 -9
  71. package/dist/github/ruleset/apply.mjs.map +1 -1
  72. package/dist/github/ruleset/backup.d.mts +7 -0
  73. package/dist/github/ruleset/backup.d.mts.map +1 -1
  74. package/dist/github/ruleset/backup.mjs +20 -7
  75. package/dist/github/ruleset/backup.mjs.map +1 -1
  76. package/dist/github/ruleset/read-rule-set-contents.d.mts +0 -1
  77. package/dist/github/ruleset/read-rule-set-contents.d.mts.map +1 -1
  78. package/dist/github/ruleset/read-rule-set-contents.mjs +0 -1
  79. package/dist/github/ruleset/read-rule-set-contents.mjs.map +1 -1
  80. package/dist/github/settings-file-path.d.mts +14 -0
  81. package/dist/github/settings-file-path.d.mts.map +1 -0
  82. package/dist/github/settings-file-path.mjs +41 -0
  83. package/dist/github/settings-file-path.mjs.map +1 -0
  84. package/dist/github/variables/api/list-repo-variables.d.mts.map +1 -1
  85. package/dist/github/variables/api/list-repo-variables.mjs +3 -1
  86. package/dist/github/variables/api/list-repo-variables.mjs.map +1 -1
  87. package/dist/github/variables/apply.d.mts +9 -0
  88. package/dist/github/variables/apply.d.mts.map +1 -1
  89. package/dist/github/variables/apply.mjs +31 -17
  90. package/dist/github/variables/apply.mjs.map +1 -1
  91. package/dist/github/variables/backup.d.mts +20 -0
  92. package/dist/github/variables/backup.d.mts.map +1 -0
  93. package/dist/github/variables/backup.mjs +35 -0
  94. package/dist/github/variables/backup.mjs.map +1 -0
  95. package/dist/github/variables/constants.d.mts +65 -0
  96. package/dist/github/variables/constants.d.mts.map +1 -0
  97. package/dist/github/variables/constants.mjs +48 -0
  98. package/dist/github/variables/constants.mjs.map +1 -0
  99. package/dist/github/variables/index.d.mts +2 -0
  100. package/dist/github/variables/index.d.mts.map +1 -1
  101. package/dist/github/variables/index.mjs +2 -0
  102. package/dist/github/variables/index.mjs.map +1 -1
  103. package/dist/github/vulnerability-alerts/api/get-vulnerability-alerts.d.mts +10 -0
  104. package/dist/github/vulnerability-alerts/api/get-vulnerability-alerts.d.mts.map +1 -0
  105. package/dist/github/vulnerability-alerts/api/get-vulnerability-alerts.mjs +25 -0
  106. package/dist/github/vulnerability-alerts/api/get-vulnerability-alerts.mjs.map +1 -0
  107. package/dist/github/vulnerability-alerts/api/index.d.mts +3 -0
  108. package/dist/github/vulnerability-alerts/api/index.d.mts.map +1 -0
  109. package/dist/github/vulnerability-alerts/api/index.mjs +3 -0
  110. package/dist/github/vulnerability-alerts/api/index.mjs.map +1 -0
  111. package/dist/github/vulnerability-alerts/api/set-vulnerability-alerts.d.mts +10 -0
  112. package/dist/github/vulnerability-alerts/api/set-vulnerability-alerts.d.mts.map +1 -0
  113. package/dist/github/vulnerability-alerts/api/set-vulnerability-alerts.mjs +19 -0
  114. package/dist/github/vulnerability-alerts/api/set-vulnerability-alerts.mjs.map +1 -0
  115. package/dist/github/vulnerability-alerts/apply.d.mts +11 -0
  116. package/dist/github/vulnerability-alerts/apply.d.mts.map +1 -0
  117. package/dist/github/vulnerability-alerts/apply.mjs +45 -0
  118. package/dist/github/vulnerability-alerts/apply.mjs.map +1 -0
  119. package/dist/github/vulnerability-alerts/backup.d.mts +5 -0
  120. package/dist/github/vulnerability-alerts/backup.d.mts.map +1 -0
  121. package/dist/github/vulnerability-alerts/backup.mjs +22 -0
  122. package/dist/github/vulnerability-alerts/backup.mjs.map +1 -0
  123. package/dist/github/vulnerability-alerts/constants.d.mts +72 -0
  124. package/dist/github/vulnerability-alerts/constants.d.mts.map +1 -0
  125. package/dist/github/vulnerability-alerts/constants.mjs +21 -0
  126. package/dist/github/vulnerability-alerts/constants.mjs.map +1 -0
  127. package/dist/github/vulnerability-alerts/index.d.mts +5 -0
  128. package/dist/github/vulnerability-alerts/index.d.mts.map +1 -0
  129. package/dist/github/vulnerability-alerts/index.mjs +5 -0
  130. package/dist/github/vulnerability-alerts/index.mjs.map +1 -0
  131. package/package.json +29 -28
  132. package/src/cmd/repo-settings.mts +22 -2
  133. package/src/github/actions-settings/apply.mts +0 -9
  134. package/src/github/actions-settings/backup.mts +6 -11
  135. package/src/github/actions-settings/constants.mts +1 -1
  136. package/src/github/clear-json-files.mts +31 -0
  137. package/src/github/clear-json-files.test.mts +78 -0
  138. package/src/github/constants.mts +9 -0
  139. package/src/github/environments/api/get-environments.mts +155 -0
  140. package/src/github/environments/api/index.mts +2 -0
  141. package/src/github/environments/api/set-environment.mts +106 -0
  142. package/src/github/environments/apply.mts +82 -0
  143. package/src/github/environments/backup.mts +39 -0
  144. package/src/github/environments/constants.mts +78 -0
  145. package/src/github/environments/index.mts +5 -0
  146. package/src/github/environments/read-environment-contents.mts +49 -0
  147. package/src/github/index.mts +4 -0
  148. package/src/github/pages/apply.mts +0 -6
  149. package/src/github/pages/backup.mts +21 -12
  150. package/src/github/repository/apply.mts +0 -9
  151. package/src/github/repository/backup.mts +5 -10
  152. package/src/github/ruleset/apply.mts +10 -18
  153. package/src/github/ruleset/backup.mts +23 -13
  154. package/src/github/ruleset/read-rule-set-contents.mts +0 -4
  155. package/src/github/ruleset/schema.test.mts +0 -13
  156. package/src/github/settings-file-path.mts +51 -0
  157. package/src/github/settings-file-path.test.mts +70 -0
  158. package/src/github/variables/api/list-repo-variables.mts +3 -1
  159. package/src/github/variables/apply.mts +54 -27
  160. package/src/github/variables/backup.mts +47 -0
  161. package/src/github/variables/constants.mts +61 -0
  162. package/src/github/variables/constants.test.mts +110 -0
  163. package/src/github/variables/index.mts +2 -0
  164. package/src/github/vulnerability-alerts/api/get-vulnerability-alerts.mts +31 -0
  165. package/src/github/vulnerability-alerts/api/index.mts +2 -0
  166. package/src/github/vulnerability-alerts/api/set-vulnerability-alerts.mts +31 -0
  167. package/src/github/vulnerability-alerts/apply.mts +71 -0
  168. package/src/github/vulnerability-alerts/backup.mts +31 -0
  169. package/src/github/vulnerability-alerts/constants.mts +25 -0
  170. package/src/github/vulnerability-alerts/index.mts +4 -0
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ import 'dotenv/config';
3
+ import { listRepoVariables } from './api/index.mjs';
4
+ import { type RepositoryVariables } from './constants.mjs';
5
+ /**
6
+ * repository variable の現在値を宣言ファイルへ撮り直す。
7
+ *
8
+ * 宣言していないものも含めて live にあるものを全部書く。 backup は「いま何が
9
+ * あるか」を写す操作なので、 GUI で足された変数もここで宣言に入る。要らない
10
+ * ものは撮り直したあとに宣言から外し、 GitHub 側でも消す。
11
+ */
12
+ export declare const backupVariables: (fmt?: boolean) => Promise<void>;
13
+ /**
14
+ * API の配列を `settings.json` と同じ record に畳む。
15
+ *
16
+ * `created_at` / `updated_at` はここで落ちる。値が変わっていなくても動くので、
17
+ * 残すと宣言ファイルが毎日変わり、ドリフト検査が本当の変更を報せなくなる。
18
+ */
19
+ export declare const toDeclaration: (variables: Awaited<ReturnType<typeof listRepoVariables>>) => RepositoryVariables;
20
+ //# sourceMappingURL=backup.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.mts","sourceRoot":"","sources":["../../../src/github/variables/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAMvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,SAAe,OAAO,KAAU,OAAO,CAAC,IAAI,CAcvE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,cACb,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,KACvD,mBACoE,CAAC"}
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+ import 'dotenv/config';
3
+ import * as fs from 'node:fs/promises';
4
+ import * as path from 'node:path';
5
+ import { formatUncommittedFiles, isDirectlyExecuted } from 'ts-repo-utils';
6
+ import { clearJsonFilesIn } from '../clear-json-files.mjs';
7
+ import { settingsJsonName, variablesDir } from '../constants.mjs';
8
+ import { listRepoVariables } from './api/index.mjs';
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ export const backupVariables = async (fmt = true) => {
17
+ const variables = await listRepoVariables();
18
+ await clearJsonFilesIn(variablesDir);
19
+
20
+ await fs.writeFile(path.resolve(variablesDir, settingsJsonName), JSON.stringify(toDeclaration(variables), undefined, 2));
21
+ if (fmt) {
22
+ await formatUncommittedFiles();
23
+ }
24
+ };
25
+
26
+
27
+
28
+
29
+
30
+
31
+ export const toDeclaration = (variables) => Object.fromEntries(variables.map(({ name, value }) => [name, value]));
32
+ if (isDirectlyExecuted(import.meta.url)) {
33
+ await backupVariables();
34
+ }
35
+ //# sourceMappingURL=backup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.mjs","sourceRoot":"","sources":["../../../src/github/variables/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAG,GAAY,IAAI,EAAiB,EAAE;IAC1E,MAAM,SAAS,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAE5C,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAErC,mEAAmE;IACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CACvD,CAAC;IAEF,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,SAAwD,EACnC,EAAE,CACvB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAExE,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,MAAM,eAAe,EAAE,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,65 @@
1
+ import * as t from 'ts-fortress';
2
+ /**
3
+ * `repo-settings/variables/settings.json` の型。
4
+ *
5
+ * Settings > Secrets and variables > Actions > Variables に対応する
6
+ * (`GET|POST /repos/{owner}/{repo}/actions/variables`,
7
+ * `PATCH /repos/{owner}/{repo}/actions/variables/{name}`)。
8
+ *
9
+ * 変数名をキー、値を値にした素の record にしてある。 API が返す配列
10
+ * (`{ name, value, created_at, updated_at }[]`) をそのまま写さないのは、
11
+ * `created_at` / `updated_at` が値の変化なしに動くためで、宣言に入れると
12
+ * 毎日ドリフトとして出てしまう。ここで持つのは宣言できるものだけ。
13
+ *
14
+ * **ここに秘密を書かないこと。** repository variable は API でも Actions の
15
+ * ログでも平文で読める。秘密は secret 側で、そちらはこのツールの管理外にある。
16
+ */
17
+ export declare const RepositoryVariables: Readonly<{
18
+ typeName: string;
19
+ defaultValue: {
20
+ readonly [x: string]: string;
21
+ };
22
+ is: (a: unknown) => a is {
23
+ readonly [x: string]: string;
24
+ };
25
+ assertIs: (a: unknown) => asserts a is {
26
+ readonly [x: string]: string;
27
+ };
28
+ cast: (a: unknown) => {
29
+ readonly [x: string]: string;
30
+ };
31
+ fill: (a: unknown) => {
32
+ readonly [x: string]: string;
33
+ };
34
+ prune: <B extends {
35
+ readonly [x: string]: string;
36
+ }>(a: B) => {
37
+ readonly [x: string]: string;
38
+ };
39
+ validate: (a: unknown) => t.Result<{
40
+ readonly [x: string]: string;
41
+ }, readonly Readonly<{
42
+ path: readonly string[];
43
+ actualValue: unknown;
44
+ expectedType: string;
45
+ typeName: string;
46
+ details?: t.ValidationErrorDetails | undefined;
47
+ }>[]>;
48
+ optional?: true;
49
+ }>;
50
+ export type RepositoryVariables = t.TypeOf<typeof RepositoryVariables>;
51
+ /**
52
+ * GitHub が受け付けない変数名を、送る前にすべて挙げて落とす。
53
+ *
54
+ * 名前は `PATCH .../actions/variables/{name}` のパスに入る。 octokit が URL
55
+ * エンコードするので注入にはならないが、弾かれる名前は 422 になり、それが
56
+ * 起きるのは**何本か書き込んだ後**である。 environments の `assertConsistent`
57
+ * と同じ理由でここに置いてある — 1 本目を送る前に全部の名前を見ておけば、
58
+ * この種の間違いで中途半端に適用された状態にはならない。
59
+ *
60
+ * 規則は GitHub の documentation のとおり: 英数字と `_` のみ、先頭に数字は
61
+ * 不可、`GITHUB_` 始まりは予約。名前の大文字小文字は区別されないので、
62
+ * 予約接頭辞の判定も区別しない。
63
+ */
64
+ export declare const assertVariableNamesAreValid: (variables: RepositoryVariables) => void;
65
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../../src/github/variables/constants.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,cAC3B,mBAAmB,KAC7B,IAeF,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { Arr } from 'ts-data-forge';
2
+ import * as t from 'ts-fortress';
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+ export const RepositoryVariables = t.keyValueRecord(t.string(), t.string(), {
19
+ typeName: 'RepositoryVariables',
20
+ });
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+ export const assertVariableNamesAreValid = (variables) => {
35
+ const offenders = Object.keys(variables).filter((name) => !isValidVariableName(name));
36
+ if (Arr.isNonEmpty(offenders)) {
37
+ throw new Error([
38
+ `repository variable の名前として使えないものがあります: ${offenders
39
+ .map((name) => JSON.stringify(name))
40
+ .join(', ')}。`,
41
+ '英数字と "_" のみが使え、先頭に数字は置けず、"GITHUB_" 始まりは予約されています。',
42
+ ].join('\n'));
43
+ }
44
+ };
45
+
46
+ const variableNamePattern = /^[A-Za-z_][A-Za-z0-9_]*$/u;
47
+ const isValidVariableName = (name) => variableNamePattern.test(name) && !name.toUpperCase().startsWith('GITHUB_');
48
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../../src/github/variables/constants.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;IAC1E,QAAQ,EAAE,qBAAqB;CAChC,CAAC,CAAC;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAA8B,EACxB,EAAE;IACR,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAC7C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CACrC,CAAC;IAEF,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb;YACE,0CAA0C,SAAS;iBAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;iBACnC,IAAI,CAAC,IAAI,CAAC,GAAG;YAChB,kDAAkD;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAExD,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAW,EAAE,CACpD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export * from './api/index.mjs';
2
2
  export * from './apply.mjs';
3
+ export * from './backup.mjs';
4
+ export * from './constants.mjs';
3
5
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/github/variables/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/github/variables/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export * from './api/index.mjs';
2
2
  export * from './apply.mjs';
3
+ export * from './backup.mjs';
4
+ export * from './constants.mjs';
3
5
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/github/variables/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/github/variables/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { VulnerabilityAlertsSettings } from '../constants.mjs';
2
+ /**
3
+ * Dependabot alerts が有効かどうかを取得する。
4
+ *
5
+ * このエンドポイントは body を返さない: 有効なら 204、無効なら 404。
6
+ * octokit は 404 を例外にするので、それを `enabled: false` として扱う。
7
+ * 「無効」と「読めなかった」は区別する必要があるため、 404 以外は投げ直す。
8
+ */
9
+ export declare const getVulnerabilityAlerts: () => Promise<VulnerabilityAlertsSettings>;
10
+ //# sourceMappingURL=get-vulnerability-alerts.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-vulnerability-alerts.d.mts","sourceRoot":"","sources":["../../../../src/github/vulnerability-alerts/api/get-vulnerability-alerts.mts"],"names":[],"mappings":"AAIA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QACvB,OAAO,CAAC,2BAA2B,CAgB5C,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { hasKey, isRecord } from 'ts-data-forge';
2
+ import { octokitHeaders, OWNER, REPO } from '../../constants.mjs';
3
+ import { octokit } from '../../octokit.mjs';
4
+ import { VulnerabilityAlertsSettings } from '../constants.mjs';
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+ export const getVulnerabilityAlerts = async () => {
13
+ try {
14
+
15
+ await octokit.request('GET /repos/{owner}/{repo}/vulnerability-alerts', { owner: OWNER, repo: REPO, headers: octokitHeaders });
16
+ return VulnerabilityAlertsSettings.fill({ enabled: true });
17
+ }
18
+ catch (error) {
19
+ if (isRecord(error) && hasKey(error, 'status') && error.status === 404) {
20
+ return VulnerabilityAlertsSettings.fill({ enabled: false });
21
+ }
22
+ throw error;
23
+ }
24
+ };
25
+ //# sourceMappingURL=get-vulnerability-alerts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-vulnerability-alerts.mjs","sourceRoot":"","sources":["../../../../src/github/vulnerability-alerts/api/get-vulnerability-alerts.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,KAAK,IAA0C,EAAE;IAC/C,IAAI,CAAC;QACH,sGAAsG;QACtG,MAAM,OAAO,CAAC,OAAO,CACnB,gDAAuE,EACvE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CACtD,CAAC;QAEF,OAAO,2BAA2B,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvE,OAAO,2BAA2B,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './get-vulnerability-alerts.mjs';
2
+ export * from './set-vulnerability-alerts.mjs';
3
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/github/vulnerability-alerts/api/index.mts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './get-vulnerability-alerts.mjs';
2
+ export * from './set-vulnerability-alerts.mjs';
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../src/github/vulnerability-alerts/api/index.mts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type VulnerabilityAlertsSettings } from '../constants.mjs';
2
+ /**
3
+ * Dependabot alerts を JSON の内容に合わせる。
4
+ *
5
+ * 有効化と無効化で別メソッドなので、書き込みは 1 回で済むように分岐する。
6
+ * `enabled: false` はきちんと無効化する — 宣言が現状に合わせて黙るなら、
7
+ * ファイルを読んでも何が有効なのか分からなくなる。
8
+ */
9
+ export declare const setVulnerabilityAlerts: (settings: VulnerabilityAlertsSettings) => Promise<void>;
10
+ //# sourceMappingURL=set-vulnerability-alerts.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-vulnerability-alerts.d.mts","sourceRoot":"","sources":["../../../../src/github/vulnerability-alerts/api/set-vulnerability-alerts.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,aACvB,2BAA2B,KACpC,OAAO,CAAC,IAAI,CAgBd,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { octokitHeaders, OWNER, REPO } from '../../constants.mjs';
2
+ import { octokit } from '../../octokit.mjs';
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+ export const setVulnerabilityAlerts = async (settings) => {
11
+ if (settings.enabled) {
12
+
13
+ await octokit.request('PUT /repos/{owner}/{repo}/vulnerability-alerts', { owner: OWNER, repo: REPO, headers: octokitHeaders });
14
+ return;
15
+ }
16
+
17
+ await octokit.request('DELETE /repos/{owner}/{repo}/vulnerability-alerts', { owner: OWNER, repo: REPO, headers: octokitHeaders });
18
+ };
19
+ //# sourceMappingURL=set-vulnerability-alerts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-vulnerability-alerts.mjs","sourceRoot":"","sources":["../../../../src/github/vulnerability-alerts/api/set-vulnerability-alerts.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,QAAqC,EACtB,EAAE;IACjB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,uEAAuE;QACvE,MAAM,OAAO,CAAC,OAAO,CACnB,gDAAuE,EACvE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CACtD,CAAC;QAEF,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,MAAM,OAAO,CAAC,OAAO,CACnB,mDAA0E,EAC1E,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CACtD,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import 'dotenv/config';
3
+ /**
4
+ * `repo-settings/vulnerability-alerts/settings.json` を Dependabot alerts に反映する。
5
+ *
6
+ * 設定ファイルを置いていない repository では何もしない。 pages と同じ理由 —
7
+ * この package は他の repository からも使われるので、ファイルの不在を
8
+ * 「無効にせよ」と読むと、宣言していない設定を勝手に落としてしまう。
9
+ */
10
+ export declare const applyVulnerabilityAlerts: () => Promise<void>;
11
+ //# sourceMappingURL=apply.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.mts","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAiBvB;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,IAAI,CAsB7D,CAAC"}
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env node
2
+ import 'dotenv/config';
3
+ import * as fs from 'node:fs/promises';
4
+ import * as path from 'node:path';
5
+ import * as t from 'ts-fortress';
6
+ import { formatUncommittedFiles, isDirectlyExecuted, pathExists, Result, } from 'ts-repo-utils';
7
+ import { settingsJsonName, vulnerabilityAlertsDir } from '../constants.mjs';
8
+ import { getVulnerabilityAlerts, setVulnerabilityAlerts, } from './api/index.mjs';
9
+ import { VulnerabilityAlertsSettings } from './constants.mjs';
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ export const applyVulnerabilityAlerts = async () => {
18
+ const settingsPath = path.resolve(vulnerabilityAlertsDir, settingsJsonName);
19
+ if (!(await pathExists(settingsPath))) {
20
+ return;
21
+ }
22
+ const settings = await readSettings(settingsPath);
23
+ await setVulnerabilityAlerts(settings);
24
+
25
+ {
26
+ const applied = await getVulnerabilityAlerts();
27
+ const str = JSON.stringify(applied, undefined, 2);
28
+
29
+ await fs.writeFile(settingsPath, str);
30
+ await formatUncommittedFiles();
31
+ }
32
+ };
33
+ const readSettings = async (settingsPath) => {
34
+
35
+ const settingsText = await fs.readFile(settingsPath, { encoding: 'utf8' });
36
+ const validationResult = VulnerabilityAlertsSettings.validate(JSON.parse(settingsText));
37
+ if (Result.isErr(validationResult)) {
38
+ throw new Error(t.validationErrorsToMessages(validationResult.value).join('\n'));
39
+ }
40
+ return validationResult.value;
41
+ };
42
+ if (isDirectlyExecuted(import.meta.url)) {
43
+ await applyVulnerabilityAlerts();
44
+ }
45
+ //# sourceMappingURL=apply.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,EACV,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,IAAmB,EAAE;IAChE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAE5E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;IAElD,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEvC,0BAA0B;IAC1B,CAAC;QACC,MAAM,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAE/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAElD,mEAAmE;QACnE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAEtC,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EACxB,YAAoB,EACkB,EAAE;IACxC,mEAAmE;IACnE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3E,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,QAAQ,CAC3D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CACzB,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,CAAC,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,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,wBAAwB,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import 'dotenv/config';
3
+ /** Dependabot alerts の現在値を宣言ファイルへ撮り直す。 */
4
+ export declare const backupVulnerabilityAlerts: (fmt?: boolean) => Promise<void>;
5
+ //# sourceMappingURL=backup.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.mts","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAQvB,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,SAC/B,OAAO,KACX,OAAO,CAAC,IAAI,CAcd,CAAC"}
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ import 'dotenv/config';
3
+ import * as fs from 'node:fs/promises';
4
+ import * as path from 'node:path';
5
+ import { formatUncommittedFiles, isDirectlyExecuted } from 'ts-repo-utils';
6
+ import { clearJsonFilesIn } from '../clear-json-files.mjs';
7
+ import { settingsJsonName, vulnerabilityAlertsDir } from '../constants.mjs';
8
+ import { getVulnerabilityAlerts } from './api/index.mjs';
9
+
10
+ export const backupVulnerabilityAlerts = async (fmt = true) => {
11
+ const settings = await getVulnerabilityAlerts();
12
+ await clearJsonFilesIn(vulnerabilityAlertsDir);
13
+
14
+ await fs.writeFile(path.resolve(vulnerabilityAlertsDir, settingsJsonName), JSON.stringify(settings, undefined, 2));
15
+ if (fmt) {
16
+ await formatUncommittedFiles();
17
+ }
18
+ };
19
+ if (isDirectlyExecuted(import.meta.url)) {
20
+ await backupVulnerabilityAlerts();
21
+ }
22
+ //# sourceMappingURL=backup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.mjs","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,GAAG,GAAY,IAAI,EACJ,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAEhD,MAAM,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAE/C,mEAAmE;IACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,EACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CACvC,CAAC;IAEF,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,MAAM,yBAAyB,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,72 @@
1
+ import * as t from 'ts-fortress';
2
+ /**
3
+ * `repo-settings/vulnerability-alerts/settings.json` の型。
4
+ *
5
+ * Settings > Advanced Security > Dependabot alerts に対応する。
6
+ *
7
+ * `security_and_analysis` とは別の API
8
+ * (`GET|PUT|DELETE /repos/{owner}/{repo}/vulnerability-alerts`) で、
9
+ * 値も JSON body ではなく 204 / 404 で返ってくる。そのため
10
+ * `repository-settings/settings.json` には載せられず、 pages と同じく
11
+ * 独立した設定ファイルにしている。
12
+ *
13
+ * `repository-settings/settings.json` の `dependabot_security_updates` は
14
+ * これとは別物 — あちらは「脆弱な依存を直す PR を自動で作るか」で、
15
+ * この repository では `pnpm-update` が lockfile を持っているため無効のまま。
16
+ * ここで管理するのは「既知の脆弱性を知らせるか」だけ。
17
+ */
18
+ export declare const VulnerabilityAlertsSettings: Readonly<{
19
+ typeName: string;
20
+ defaultValue: Readonly<{
21
+ enabled: boolean;
22
+ }>;
23
+ is: (a: unknown) => a is Readonly<{
24
+ enabled: boolean;
25
+ }>;
26
+ assertIs: (a: unknown) => asserts a is Readonly<{
27
+ enabled: boolean;
28
+ }>;
29
+ cast: (a: unknown) => Readonly<{
30
+ enabled: boolean;
31
+ }>;
32
+ fill: (a: unknown) => Readonly<{
33
+ enabled: boolean;
34
+ }>;
35
+ prune: <B extends Readonly<{
36
+ enabled: boolean;
37
+ }>>(a: B) => Readonly<{
38
+ enabled: boolean;
39
+ }>;
40
+ validate: (a: unknown) => t.Result<Readonly<{
41
+ enabled: boolean;
42
+ }>, readonly Readonly<{
43
+ path: readonly string[];
44
+ actualValue: unknown;
45
+ expectedType: string;
46
+ typeName: string;
47
+ details?: t.ValidationErrorDetails | undefined;
48
+ }>[]>;
49
+ optional?: true;
50
+ }> & Readonly<{
51
+ shape: {
52
+ readonly enabled: Readonly<{
53
+ typeName: string;
54
+ defaultValue: boolean;
55
+ is: (a: unknown) => a is boolean;
56
+ assertIs: (a: unknown) => asserts a is boolean;
57
+ cast: (a: unknown) => boolean;
58
+ fill: (a: unknown) => boolean;
59
+ prune: <B extends boolean>(a: B) => boolean;
60
+ validate: (a: unknown) => t.Result<boolean, readonly Readonly<{
61
+ path: readonly string[];
62
+ actualValue: unknown;
63
+ expectedType: string;
64
+ typeName: string;
65
+ details?: t.ValidationErrorDetails | undefined;
66
+ }>[]>;
67
+ optional?: true;
68
+ }>;
69
+ };
70
+ }>;
71
+ export type VulnerabilityAlertsSettings = t.TypeOf<typeof VulnerabilityAlertsSettings>;
72
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/constants.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEtC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAChD,OAAO,2BAA2B,CACnC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as t from 'ts-fortress';
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+ export const VulnerabilityAlertsSettings = t.record({
19
+ enabled: t.boolean(false),
20
+ });
21
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/constants.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;CAC1B,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './api/index.mjs';
2
+ export * from './apply.mjs';
3
+ export * from './backup.mjs';
4
+ export * from './constants.mjs';
5
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './api/index.mjs';
2
+ export * from './apply.mjs';
3
+ export * from './backup.mjs';
4
+ export * from './constants.mjs';
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/github/vulnerability-alerts/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}