github-settings-as-code 1.1.8 → 1.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AAQvB,eAAO,MAAM,KAAK,QAAgB,CAAC;AAoBnC,eAAO,MAAM,IAAI,EAAE,MAA+B,CAAC;AAInD,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAE1D,eAAO,MAAM,WAAW,QAAwC,CAAC;AAEjE,eAAO,MAAM,cAAc;;CAEjB,CAAC"}
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AAQvB,eAAO,MAAM,KAAK,QAAgB,CAAC;AAgCnC,eAAO,MAAM,IAAI,EAAE,MAA4B,CAAC;AAIhD,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAE1D,eAAO,MAAM,WAAW,QAAwC,CAAC;AAEjE,eAAO,MAAM,cAAc;;CAEjB,CAAC"}
@@ -5,18 +5,27 @@ if (ownerNullable === undefined) {
5
5
  throw new Error('OWNER env var is not set');
6
6
  }
7
7
  export const OWNER = ownerNullable;
8
- const packageJsonPath = path.resolve(process.cwd(), './package.json');
9
- const packageJsonStr = await fs.readFile(packageJsonPath, { encoding: 'utf8' });
10
- const packageJson = Json.parse(packageJsonStr);
11
- if (Result.isErr(packageJson)) {
12
- throw new Error(packageJson.value);
13
- }
14
- if (!isRecord(packageJson.value) ||
15
- !hasKey(packageJson.value, 'name') ||
16
- !isString(packageJson.value.name)) {
17
- throw new Error('package.json not parsed correctly');
18
- }
19
- export const REPO = packageJson.value.name;
8
+ const getRepoName = async () => {
9
+ const repoNameEnv = process.env['REPO_NAME'];
10
+ if (repoNameEnv !== undefined) {
11
+ return repoNameEnv;
12
+ }
13
+ const packageJsonPath = path.resolve(process.cwd(), './package.json');
14
+ const packageJsonStr = await fs.readFile(packageJsonPath, {
15
+ encoding: 'utf8',
16
+ });
17
+ const packageJson = Json.parse(packageJsonStr);
18
+ if (Result.isErr(packageJson)) {
19
+ throw new Error(packageJson.value);
20
+ }
21
+ if (!isRecord(packageJson.value) ||
22
+ !hasKey(packageJson.value, 'name') ||
23
+ !isString(packageJson.value.name)) {
24
+ throw new Error('package.json not parsed correctly');
25
+ }
26
+ return packageJson.value.name;
27
+ };
28
+ export const REPO = await getRepoName();
20
29
  const githubDir = path.resolve(process.cwd(), './github');
21
30
  export const repositorySettingsDir = path.resolve(githubDir, './repository-settings');
22
31
  export const repositorySettingsJsonName = 'settings.json';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,eAAe,CAAC;AAEvB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAE3C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;IAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,aAAa,CAAC;AAEnC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAEtE,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AAEhF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAE/C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;IAC9B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,IACE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;IAC5B,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;IAClC,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EACjC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAW,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;AAEnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAC/C,SAAS,EACT,uBAAuB,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,eAAe,CAAC;AAE1D,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,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,eAAe,CAAC;AAEvB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAE3C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;IAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,aAAa,CAAC;AAEnC,MAAM,WAAW,GAAG,KAAK,IAAqB,EAAE;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEtE,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE;QACxD,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE/C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IACE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAC5B,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;QAClC,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAW,MAAM,WAAW,EAAE,CAAC;AAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAC/C,SAAS,EACT,uBAAuB,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,eAAe,CAAC;AAE1D,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 +1 @@
1
- {"version":3,"file":"create-ruleset.d.mts","sourceRoot":"","sources":["../../../../src/github/ruleset/api/create-ruleset.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,aAAa,GAAU,+EAEjC,QAAQ,CAAC;IACV,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC,KAAG,OAAO,CAAC,IAAI,CAoBhB,CAAC"}
1
+ {"version":3,"file":"create-ruleset.d.mts","sourceRoot":"","sources":["../../../../src/github/ruleset/api/create-ruleset.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,aAAa,GAAU,+EAEjC,QAAQ,CAAC;IACV,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC,KAAG,OAAO,CAAC,IAAI,CAqBhB,CAAC"}
@@ -3,7 +3,9 @@ import { octokitHeaders, OWNER, REPO } from '../../constants.mjs';
3
3
  import { octokit } from '../../octokit.mjs';
4
4
  export const createRuleset = async ({ payload: { name, target, enforcement, bypass_actors, conditions, rules }, }) => {
5
5
  // https://docs.github.com/ja/rest/repos/rules?apiVersion=2022-11-28#create-a-repository-ruleset
6
- await octokit.request('POST /repos/{owner}/{repo}/rulesets', {
6
+ await octokit.request('POST /repos/{owner}/{repo}/rulesets',
7
+ // transformer-ignore-next-line convert-to-readonly
8
+ {
7
9
  owner: OWNER,
8
10
  repo: REPO,
9
11
  headers: octokitHeaders,
@@ -1 +1 @@
1
- {"version":3,"file":"create-ruleset.mjs","sourceRoot":"","sources":["../../../../src/github/ruleset/api/create-ruleset.mts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,GAGxE,EAAiB,EAAE;IACnB,gGAAgG;IAChG,MAAM,OAAO,CAAC,OAAO,CACnB,qCAA4D,EAC5D;QACE,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,cAAc;QAEvB,IAAI;QACJ,MAAM;QACN,WAAW;QACX,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC;QAC7C,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;QACvC,oEAAoE;QACpE,KAAK,EAAE,eAAe,CACpB,KAAK,CACwC;KAChD,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"create-ruleset.mjs","sourceRoot":"","sources":["../../../../src/github/ruleset/api/create-ruleset.mts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,GAGxE,EAAiB,EAAE;IACnB,gGAAgG;IAChG,MAAM,OAAO,CAAC,OAAO,CACnB,qCAA4D;IAC5D,mDAAmD;IACnD;QACE,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,cAAc;QAEvB,IAAI;QACJ,MAAM;QACN,WAAW;QACX,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC;QAC7C,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;QACvC,oEAAoE;QACpE,KAAK,EAAE,eAAe,CACpB,KAAK,CACwC;KAChD,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-ruleset.d.mts","sourceRoot":"","sources":["../../../../src/github/ruleset/api/update-ruleset.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,aAAa,GAAU,0FAGjC,QAAQ,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC,KAAG,OAAO,CAAC,IAAI,CAqBhB,CAAC"}
1
+ {"version":3,"file":"update-ruleset.d.mts","sourceRoot":"","sources":["../../../../src/github/ruleset/api/update-ruleset.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,aAAa,GAAU,0FAGjC,QAAQ,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC,KAAG,OAAO,CAAC,IAAI,CAsBhB,CAAC"}
@@ -3,7 +3,9 @@ import { octokitHeaders, OWNER, REPO } from '../../constants.mjs';
3
3
  import { octokit } from '../../octokit.mjs';
4
4
  export const updateRuleset = async ({ rulesetId, payload: { name, target, enforcement, bypass_actors, conditions, rules }, }) => {
5
5
  // https://docs.github.com/ja/rest/repos/rules?apiVersion=2022-11-28#update-a-repository-ruleset
6
- await octokit.request('PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}', {
6
+ await octokit.request('PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}',
7
+ // transformer-ignore-next-line convert-to-readonly
8
+ {
7
9
  owner: OWNER,
8
10
  repo: REPO,
9
11
  ruleset_id: rulesetId,
@@ -1 +1 @@
1
- {"version":3,"file":"update-ruleset.mjs","sourceRoot":"","sources":["../../../../src/github/ruleset/api/update-ruleset.mts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,SAAS,EACT,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,GAIxE,EAAiB,EAAE;IACnB,gGAAgG;IAChG,MAAM,OAAO,CAAC,OAAO,CACnB,iDAAwE,EACxE;QACE,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,cAAc;QAEvB,IAAI;QACJ,MAAM;QACN,WAAW;QACX,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC;QAC7C,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;QACvC,oEAAoE;QACpE,KAAK,EAAE,eAAe,CACpB,KAAK,CACwC;KAChD,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"update-ruleset.mjs","sourceRoot":"","sources":["../../../../src/github/ruleset/api/update-ruleset.mts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,SAAS,EACT,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,GAIxE,EAAiB,EAAE;IACnB,gGAAgG;IAChG,MAAM,OAAO,CAAC,OAAO,CACnB,iDAAwE;IACxE,mDAAmD;IACnD;QACE,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,cAAc;QAEvB,IAAI;QACJ,MAAM;QACN,WAAW;QACX,aAAa,EAAE,eAAe,CAAC,aAAa,CAAC;QAC7C,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;QACvC,oEAAoE;QACpE,KAAK,EAAE,eAAe,CACpB,KAAK,CACwC;KAChD,CACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-settings-as-code",
3
- "version": "1.1.8",
3
+ "version": "1.2.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "github",
@@ -34,6 +34,12 @@
34
34
  "build:min": "tsx ./scripts/cmd/build.mts --skip-check",
35
35
  "check:ext": "tsx ./scripts/cmd/check-ext.mts",
36
36
  "check-all": "tsx ./scripts/cmd/check-all.mts",
37
+ "codemod": "run-s codemod:uncommitted:as-const fmt codemod:uncommitted:readonly fmt",
38
+ "codemod:full": "run-s codemod:full:as-const fmt codemod:full:readonly fmt",
39
+ "codemod:full:as-const": "append-as-const '{src,scripts,samples}/**/*.{mts,tsx}'",
40
+ "codemod:full:readonly": "convert-to-readonly '{src,scripts,samples}/**/*.{mts,tsx}'",
41
+ "codemod:uncommitted:as-const": "append-as-const --uncommitted '{src,scripts,samples}/**/*.{mts,tsx}'",
42
+ "codemod:uncommitted:readonly": "convert-to-readonly --uncommitted '{src,scripts,samples}/**/*.{mts,tsx}'",
37
43
  "cspell": "cspell \"**\" --gitignore --gitignore-root ./ --no-progress",
38
44
  "doc": "tsx ./scripts/cmd/gen-docs.mts",
39
45
  "fmt": "format-uncommitted",
@@ -65,9 +71,9 @@
65
71
  },
66
72
  "dependencies": {
67
73
  "@octokit/core": "7.0.6",
68
- "dotenv": "^17.2.3",
74
+ "dotenv": "^17.3.1",
69
75
  "octokit-safe-types": "^1.2.10",
70
- "ts-data-forge": "^6.4.0",
76
+ "ts-data-forge": "^6.5.0",
71
77
  "ts-fortress": "^6.4.0"
72
78
  },
73
79
  "devDependencies": {
@@ -75,33 +81,36 @@
75
81
  "@semantic-release/commit-analyzer": "13.0.1",
76
82
  "@semantic-release/exec": "7.1.0",
77
83
  "@semantic-release/git": "10.0.1",
78
- "@semantic-release/github": "12.0.3",
79
- "@semantic-release/npm": "13.1.3",
84
+ "@semantic-release/github": "12.0.6",
85
+ "@semantic-release/npm": "13.1.4",
80
86
  "@semantic-release/release-notes-generator": "14.1.0",
81
- "@types/node": "25.2.3",
82
- "@vitest/coverage-v8": "4.0.17",
83
- "@vitest/ui": "4.0.17",
87
+ "@types/node": "25.3.2",
88
+ "@vitest/coverage-v8": "4.0.18",
89
+ "@vitest/ui": "4.0.18",
90
+ "cmd-ts": "^0.15.0",
84
91
  "conventional-changelog-conventionalcommits": "9.1.0",
85
92
  "cspell": "9.6.4",
93
+ "dedent": "^1.7.1",
86
94
  "eslint": "9.39.2",
87
- "eslint-config-typed": "4.6.1",
95
+ "eslint-config-typed": "4.6.4",
88
96
  "jiti": "2.6.1",
89
97
  "markdownlint": "0.40.0",
90
- "markdownlint-cli2": "0.20.0",
98
+ "markdownlint-cli2": "0.21.0",
91
99
  "npm-run-all2": "8.0.4",
92
100
  "playwright": "1.58.2",
93
101
  "prettier": "3.8.1",
94
102
  "prettier-plugin-organize-imports": "4.3.0",
95
103
  "prettier-plugin-packagejson": "3.0.0",
96
104
  "semantic-release": "25.0.3",
105
+ "ts-codemod-lib": "^2.0.5",
97
106
  "ts-repo-utils": "^8.2.0",
98
107
  "ts-type-forge": "2.3.1",
99
108
  "tslib": "2.8.1",
100
109
  "tsx": "4.21.0",
101
- "typedoc": "0.28.16",
102
- "typedoc-github-theme": "0.3.1",
110
+ "typedoc": "0.28.17",
111
+ "typedoc-github-theme": "0.4.0",
103
112
  "typescript": "5.9.3",
104
- "vitest": "4.0.17"
113
+ "vitest": "4.0.18"
105
114
  },
106
115
  "packageManager": "pnpm@10.24.0",
107
116
  "engines": {
@@ -9,25 +9,37 @@ if (ownerNullable === undefined) {
9
9
 
10
10
  export const OWNER = ownerNullable;
11
11
 
12
- const packageJsonPath = path.resolve(process.cwd(), './package.json');
12
+ const getRepoName = async (): Promise<string> => {
13
+ const repoNameEnv = process.env['REPO_NAME'];
13
14
 
14
- const packageJsonStr = await fs.readFile(packageJsonPath, { encoding: 'utf8' });
15
+ if (repoNameEnv !== undefined) {
16
+ return repoNameEnv;
17
+ }
15
18
 
16
- const packageJson = Json.parse(packageJsonStr);
19
+ const packageJsonPath = path.resolve(process.cwd(), './package.json');
17
20
 
18
- if (Result.isErr(packageJson)) {
19
- throw new Error(packageJson.value);
20
- }
21
+ const packageJsonStr = await fs.readFile(packageJsonPath, {
22
+ encoding: 'utf8',
23
+ });
21
24
 
22
- if (
23
- !isRecord(packageJson.value) ||
24
- !hasKey(packageJson.value, 'name') ||
25
- !isString(packageJson.value.name)
26
- ) {
27
- throw new Error('package.json not parsed correctly');
28
- }
25
+ const packageJson = Json.parse(packageJsonStr);
26
+
27
+ if (Result.isErr(packageJson)) {
28
+ throw new Error(packageJson.value);
29
+ }
30
+
31
+ if (
32
+ !isRecord(packageJson.value) ||
33
+ !hasKey(packageJson.value, 'name') ||
34
+ !isString(packageJson.value.name)
35
+ ) {
36
+ throw new Error('package.json not parsed correctly');
37
+ }
38
+
39
+ return packageJson.value.name;
40
+ };
29
41
 
30
- export const REPO: string = packageJson.value.name;
42
+ export const REPO: string = await getRepoName();
31
43
 
32
44
  const githubDir = path.resolve(process.cwd(), './github');
33
45
 
@@ -15,6 +15,7 @@ export const createRuleset = async ({
15
15
  // https://docs.github.com/ja/rest/repos/rules?apiVersion=2022-11-28#create-a-repository-ruleset
16
16
  await octokit.request(
17
17
  'POST /repos/{owner}/{repo}/rulesets' satisfies EndpointKeys,
18
+ // transformer-ignore-next-line convert-to-readonly
18
19
  {
19
20
  owner: OWNER,
20
21
  repo: REPO,
@@ -17,6 +17,7 @@ export const updateRuleset = async ({
17
17
  // https://docs.github.com/ja/rest/repos/rules?apiVersion=2022-11-28#update-a-repository-ruleset
18
18
  await octokit.request(
19
19
  'PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}' satisfies EndpointKeys,
20
+ // transformer-ignore-next-line convert-to-readonly
20
21
  {
21
22
  owner: OWNER,
22
23
  repo: REPO,