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.
- package/README.md +60 -9
- package/dist/cmd/{gh-apply-all.d.mts → repo-settings.d.mts} +1 -1
- package/dist/cmd/repo-settings.d.mts.map +1 -0
- package/dist/cmd/repo-settings.mjs +118 -0
- package/dist/cmd/repo-settings.mjs.map +1 -0
- package/dist/github/actions-settings/api/get-actions-settings.d.mts +8 -0
- package/dist/github/actions-settings/api/get-actions-settings.d.mts.map +1 -0
- package/dist/github/actions-settings/api/get-actions-settings.mjs +25 -0
- package/dist/github/actions-settings/api/get-actions-settings.mjs.map +1 -0
- package/dist/github/actions-settings/api/index.d.mts +3 -0
- package/dist/github/actions-settings/api/index.d.mts.map +1 -0
- package/dist/github/actions-settings/api/index.mjs +3 -0
- package/dist/github/actions-settings/api/index.mjs.map +1 -0
- package/dist/github/actions-settings/api/set-actions-settings.d.mts +4 -0
- package/dist/github/actions-settings/api/set-actions-settings.d.mts.map +1 -0
- package/dist/github/actions-settings/api/set-actions-settings.mjs +27 -0
- package/dist/github/actions-settings/api/set-actions-settings.mjs.map +1 -0
- package/dist/github/actions-settings/apply.d.mts +5 -0
- package/dist/github/actions-settings/apply.d.mts.map +1 -0
- package/dist/github/actions-settings/apply.mjs +39 -0
- package/dist/github/actions-settings/apply.mjs.map +1 -0
- package/dist/github/actions-settings/backup.d.mts +5 -0
- package/dist/github/actions-settings/backup.d.mts.map +1 -0
- package/dist/github/actions-settings/backup.mjs +22 -0
- package/dist/github/actions-settings/backup.mjs.map +1 -0
- package/dist/github/actions-settings/constants.d.mts +69 -0
- package/dist/github/actions-settings/constants.d.mts.map +1 -0
- package/dist/github/actions-settings/constants.mjs +42 -0
- package/dist/github/actions-settings/constants.mjs.map +1 -0
- package/dist/github/actions-settings/index.d.mts +5 -0
- package/dist/github/actions-settings/index.d.mts.map +1 -0
- package/dist/github/actions-settings/index.mjs +5 -0
- package/dist/github/actions-settings/index.mjs.map +1 -0
- package/dist/github/constants.d.mts +4 -2
- package/dist/github/constants.d.mts.map +1 -1
- package/dist/github/constants.mjs +7 -31
- package/dist/github/constants.mjs.map +1 -1
- package/dist/github/index.d.mts +4 -0
- package/dist/github/index.d.mts.map +1 -1
- package/dist/github/index.mjs +4 -0
- package/dist/github/index.mjs.map +1 -1
- package/dist/github/octokit.d.mts.map +1 -1
- package/dist/github/octokit.mjs +39 -3
- package/dist/github/octokit.mjs.map +1 -1
- package/dist/github/pages/api/get-pages-settings.d.mts +8 -0
- package/dist/github/pages/api/get-pages-settings.d.mts.map +1 -0
- package/dist/github/pages/api/get-pages-settings.mjs +26 -0
- package/dist/github/pages/api/get-pages-settings.mjs.map +1 -0
- package/dist/github/pages/api/index.d.mts +3 -0
- package/dist/github/pages/api/index.d.mts.map +1 -0
- package/dist/github/pages/api/index.mjs +3 -0
- package/dist/github/pages/api/index.mjs.map +1 -0
- package/dist/github/pages/api/set-pages-settings.d.mts +9 -0
- package/dist/github/pages/api/set-pages-settings.d.mts.map +1 -0
- package/dist/github/pages/api/set-pages-settings.mjs +33 -0
- package/dist/github/pages/api/set-pages-settings.mjs.map +1 -0
- package/dist/github/pages/apply.d.mts +10 -0
- package/dist/github/pages/apply.d.mts.map +1 -0
- package/dist/github/pages/apply.mjs +49 -0
- package/dist/github/pages/apply.mjs.map +1 -0
- package/dist/github/pages/backup.d.mts +5 -0
- package/dist/github/pages/backup.d.mts.map +1 -0
- package/dist/github/pages/backup.mjs +26 -0
- package/dist/github/pages/backup.mjs.map +1 -0
- package/dist/github/pages/constants.d.mts +42 -0
- package/dist/github/pages/constants.d.mts.map +1 -0
- package/dist/github/pages/constants.mjs +14 -0
- package/dist/github/pages/constants.mjs.map +1 -0
- package/dist/github/pages/index.d.mts +5 -0
- package/dist/github/pages/index.d.mts.map +1 -0
- package/dist/github/pages/index.mjs +5 -0
- package/dist/github/pages/index.mjs.map +1 -0
- package/dist/github/repository/api/update-repository.d.mts.map +1 -1
- package/dist/github/repository/apply.d.mts.map +1 -1
- package/dist/github/repository/apply.mjs +4 -4
- package/dist/github/repository/apply.mjs.map +1 -1
- package/dist/github/repository/backup.d.mts.map +1 -1
- package/dist/github/repository/backup.mjs +2 -2
- package/dist/github/repository/backup.mjs.map +1 -1
- package/dist/github/repository/constants.d.mts +3267 -2032
- package/dist/github/repository/constants.d.mts.map +1 -1
- package/dist/github/repository/constants.mjs +2 -1
- package/dist/github/repository/constants.mjs.map +1 -1
- package/dist/github/resolve-target-repo.d.mts +16 -0
- package/dist/github/resolve-target-repo.d.mts.map +1 -0
- package/dist/github/resolve-target-repo.mjs +113 -0
- package/dist/github/resolve-target-repo.mjs.map +1 -0
- package/dist/github/ruleset/api/create-ruleset.d.mts.map +1 -1
- package/dist/github/ruleset/api/get-all-rulesets.d.mts.map +1 -1
- package/dist/github/ruleset/api/get-all-rulesets.mjs.map +1 -1
- package/dist/github/ruleset/api/get-ruleset.d.mts.map +1 -1
- package/dist/github/ruleset/api/update-ruleset.d.mts.map +1 -1
- package/dist/github/ruleset/apply.mjs.map +1 -1
- package/dist/github/ruleset/backup.d.mts.map +1 -1
- package/dist/github/ruleset/backup.mjs.map +1 -1
- package/dist/github/ruleset/constants.d.mts +752 -269
- package/dist/github/ruleset/constants.d.mts.map +1 -1
- package/dist/github/ruleset/constants.mjs +2 -1
- package/dist/github/ruleset/constants.mjs.map +1 -1
- package/dist/github/ruleset/read-rule-set-contents.mjs.map +1 -1
- package/dist/github/upgrade-stale-codec.d.mts +19 -0
- package/dist/github/upgrade-stale-codec.d.mts.map +1 -0
- package/dist/github/upgrade-stale-codec.mjs +20 -0
- package/dist/github/upgrade-stale-codec.mjs.map +1 -0
- package/dist/github/variables/api/create-repo-variable.d.mts.map +1 -1
- package/dist/github/variables/api/update-repo-variable.d.mts.map +1 -1
- package/dist/github/variables/apply.d.mts.map +1 -1
- package/dist/github/variables/apply.mjs +9 -6
- package/dist/github/variables/apply.mjs.map +1 -1
- package/package.json +53 -58
- package/src/cmd/repo-settings.mts +153 -0
- package/src/github/actions-settings/api/get-actions-settings.mts +38 -0
- package/src/github/actions-settings/api/index.mts +2 -0
- package/src/github/actions-settings/api/set-actions-settings.mts +39 -0
- package/src/github/actions-settings/apply.mts +63 -0
- package/src/github/actions-settings/backup.mts +36 -0
- package/src/github/actions-settings/constants.mts +50 -0
- package/src/github/actions-settings/index.mts +4 -0
- package/src/github/constants.mts +9 -42
- package/src/github/index.mts +4 -0
- package/src/github/octokit.mts +47 -3
- package/src/github/pages/api/get-pages-settings.mts +35 -0
- package/src/github/pages/api/index.mts +2 -0
- package/src/github/pages/api/set-pages-settings.mts +47 -0
- package/src/github/pages/apply.mts +73 -0
- package/src/github/pages/backup.mts +44 -0
- package/src/github/pages/constants.mts +16 -0
- package/src/github/pages/index.mts +4 -0
- package/src/github/repository/apply.mts +4 -7
- package/src/github/repository/backup.mts +2 -5
- package/src/github/repository/constants.mts +5 -1
- package/src/github/resolve-target-repo.mts +144 -0
- package/src/github/ruleset/api/get-all-rulesets.mts +3 -6
- package/src/github/ruleset/constants.mts +5 -1
- package/src/github/upgrade-stale-codec.mts +29 -0
- package/src/github/variables/apply.mts +9 -6
- package/dist/cmd/gh-apply-all.d.mts.map +0 -1
- package/dist/cmd/gh-apply-all.mjs +0 -10
- package/dist/cmd/gh-apply-all.mjs.map +0 -1
- package/dist/cmd/gh-backup-all.d.mts +0 -3
- package/dist/cmd/gh-backup-all.d.mts.map +0 -1
- package/dist/cmd/gh-backup-all.mjs +0 -9
- package/dist/cmd/gh-backup-all.mjs.map +0 -1
- package/src/cmd/gh-apply-all.mts +0 -18
- package/src/cmd/gh-backup-all.mts +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../src/github/constants.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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"}
|
package/dist/github/index.d.mts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
export * from './actions-settings/index.mjs';
|
|
1
2
|
export * from './constants.mjs';
|
|
3
|
+
export * from './pages/index.mjs';
|
|
2
4
|
export * from './repository/index.mjs';
|
|
5
|
+
export * from './resolve-target-repo.mjs';
|
|
3
6
|
export * from './ruleset/index.mjs';
|
|
7
|
+
export * from './upgrade-stale-codec.mjs';
|
|
4
8
|
export * from './variables/index.mjs';
|
|
5
9
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/github/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/github/index.mts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC"}
|
package/dist/github/index.mjs
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
export * from './actions-settings/index.mjs';
|
|
1
2
|
export * from './constants.mjs';
|
|
3
|
+
export * from './pages/index.mjs';
|
|
2
4
|
export * from './repository/index.mjs';
|
|
5
|
+
export * from './resolve-target-repo.mjs';
|
|
3
6
|
export * from './ruleset/index.mjs';
|
|
7
|
+
export * from './upgrade-stale-codec.mjs';
|
|
4
8
|
export * from './variables/index.mjs';
|
|
5
9
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/github/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/github/index.mts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"octokit.d.mts","sourceRoot":"","sources":["../../src/github/octokit.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"octokit.d.mts","sourceRoot":"","sources":["../../src/github/octokit.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAgDxC,eAAO,MAAM,OAAO,SAA4C,CAAC"}
|
package/dist/github/octokit.mjs
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
import { Octokit } from '@octokit/core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { execFileSync } from 'node:child_process';
|
|
3
|
+
/**
|
|
4
|
+
* GitHub API の認証トークンを解決する。
|
|
5
|
+
*
|
|
6
|
+
* 1. 明示的な環境変数 … CI では GitHub App の installation token を渡す。
|
|
7
|
+
* 2. `gh auth token` … ローカルでは gh CLI のログイン情報をそのまま使うため、 PAT
|
|
8
|
+
* を .env などに平文で置く必要がない。
|
|
9
|
+
*
|
|
10
|
+
* `GITHUB_TOKEN` は候補に含めない。 Actions では既定の( administration 権限を
|
|
11
|
+
* 持たない)トークンが同名で入っていることがあり、黙って弱い方を掴むため。
|
|
12
|
+
*/
|
|
13
|
+
const resolveAuthToken = () => {
|
|
14
|
+
const fromEnv = process.env['GITHUB_APP_TOKEN'] ??
|
|
15
|
+
process.env['GH_TOKEN'] ??
|
|
16
|
+
process.env['PERSONAL_ACCESS_TOKEN'];
|
|
17
|
+
if (fromEnv !== undefined && fromEnv !== '') {
|
|
18
|
+
return fromEnv;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
// シェルを経由させない。 stderr も捨てて、失敗時にトークンが混ざらないようにする。
|
|
22
|
+
const stdout = execFileSync('gh', ['auth', 'token'], {
|
|
23
|
+
encoding: 'utf8',
|
|
24
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
25
|
+
});
|
|
26
|
+
const token = stdout.trim();
|
|
27
|
+
if (token.length > 0) {
|
|
28
|
+
return token;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// gh が未インストール、または未ログイン。下のエラーにまとめる。
|
|
33
|
+
}
|
|
34
|
+
throw new Error([
|
|
35
|
+
'GitHub のトークンが見つかりませんでした。',
|
|
36
|
+
'CI では GH_TOKEN( GitHub App の installation token )を設定してください。',
|
|
37
|
+
'ローカルでは `gh auth login` を実行すれば、その認証がそのまま使われます。',
|
|
38
|
+
].join('\n'));
|
|
39
|
+
};
|
|
40
|
+
export const octokit = new Octokit({ auth: resolveAuthToken() });
|
|
5
41
|
//# sourceMappingURL=octokit.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"octokit.mjs","sourceRoot":"","sources":["../../src/github/octokit.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"octokit.mjs","sourceRoot":"","sources":["../../src/github/octokit.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,gBAAgB,GAAG,GAAW,EAAE;IACpC,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAEvC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YACnD,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IAED,MAAM,IAAI,KAAK,CACb;QACE,0BAA0B;QAC1B,6DAA6D;QAC7D,+CAA+C;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PagesSettings } from '../constants.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* GitHub Pages の現在の設定を取得する。
|
|
4
|
+
*
|
|
5
|
+
* Pages が未設定の repository では 404 が返るため、その場合は `undefined` を返す。
|
|
6
|
+
*/
|
|
7
|
+
export declare const getPagesSettings: () => Promise<PagesSettings | undefined>;
|
|
8
|
+
//# sourceMappingURL=get-pages-settings.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-settings.d.mts","sourceRoot":"","sources":["../../../../src/github/pages/api/get-pages-settings.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAC/C,aAAa,GAAG,SAAS,CAuB1B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { octokitHeaders, OWNER, REPO } from '../../constants.mjs';
|
|
2
|
+
import { octokit } from '../../octokit.mjs';
|
|
3
|
+
import { PagesSettings } from '../constants.mjs';
|
|
4
|
+
/**
|
|
5
|
+
* GitHub Pages の現在の設定を取得する。
|
|
6
|
+
*
|
|
7
|
+
* Pages が未設定の repository では 404 が返るため、その場合は `undefined` を返す。
|
|
8
|
+
*/
|
|
9
|
+
export const getPagesSettings = async () => {
|
|
10
|
+
try {
|
|
11
|
+
// https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site
|
|
12
|
+
const response = await octokit.request('GET /repos/{owner}/{repo}/pages', { owner: OWNER, repo: REPO, headers: octokitHeaders });
|
|
13
|
+
// eslint-disable-next-line unicorn/no-array-fill-with-reference-type
|
|
14
|
+
return PagesSettings.fill({ build_type: response.data.build_type });
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
if (typeof error === 'object' &&
|
|
18
|
+
error !== null &&
|
|
19
|
+
Object.hasOwn(error, 'status') &&
|
|
20
|
+
error.status === 404) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=get-pages-settings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-settings.mjs","sourceRoot":"","sources":["../../../../src/github/pages/api/get-pages-settings.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAEnC,EAAE;IACF,IAAI,CAAC;QACH,oEAAoE;QACpE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CACpC,iCAAwD,EACxD,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CACtD,CAAC;QAEF,qEAAqE;QACrE,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC7B,KAAwC,CAAC,MAAM,KAAK,GAAG,EACxD,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/github/pages/api/index.mts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../src/github/pages/api/index.mts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type PagesSettings } from '../constants.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* GitHub Pages の Source を JSON の内容に合わせる。
|
|
4
|
+
*
|
|
5
|
+
* Pages 未設定なら POST で作成し、設定済みなら PUT で更新する。 これにより
|
|
6
|
+
* 「 Settings > Pages で Source を GitHub Actions に変更する 」という手作業が不要になる。
|
|
7
|
+
*/
|
|
8
|
+
export declare const setPagesSettings: (settings: PagesSettings) => Promise<void>;
|
|
9
|
+
//# sourceMappingURL=set-pages-settings.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-pages-settings.d.mts","sourceRoot":"","sources":["../../../../src/github/pages/api/set-pages-settings.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,aACjB,aAAa,KACtB,OAAO,CAAC,IAAI,CAgCd,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { octokitHeaders, OWNER, REPO } from '../../constants.mjs';
|
|
2
|
+
import { octokit } from '../../octokit.mjs';
|
|
3
|
+
import { getPagesSettings } from './get-pages-settings.mjs';
|
|
4
|
+
/**
|
|
5
|
+
* GitHub Pages の Source を JSON の内容に合わせる。
|
|
6
|
+
*
|
|
7
|
+
* Pages 未設定なら POST で作成し、設定済みなら PUT で更新する。 これにより
|
|
8
|
+
* 「 Settings > Pages で Source を GitHub Actions に変更する 」という手作業が不要になる。
|
|
9
|
+
*/
|
|
10
|
+
export const setPagesSettings = async (settings) => {
|
|
11
|
+
const current = await getPagesSettings();
|
|
12
|
+
if (current === undefined) {
|
|
13
|
+
// https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site
|
|
14
|
+
await octokit.request('POST /repos/{owner}/{repo}/pages', {
|
|
15
|
+
owner: OWNER,
|
|
16
|
+
repo: REPO,
|
|
17
|
+
headers: octokitHeaders,
|
|
18
|
+
build_type: settings.build_type,
|
|
19
|
+
});
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (current.build_type === settings.build_type) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site
|
|
26
|
+
await octokit.request('PUT /repos/{owner}/{repo}/pages', {
|
|
27
|
+
owner: OWNER,
|
|
28
|
+
repo: REPO,
|
|
29
|
+
headers: octokitHeaders,
|
|
30
|
+
build_type: settings.build_type,
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=set-pages-settings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-pages-settings.mjs","sourceRoot":"","sources":["../../../../src/github/pages/api/set-pages-settings.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,QAAuB,EACR,EAAE;IACjB,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAEzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,uEAAuE;QACvE,MAAM,OAAO,CAAC,OAAO,CACnB,kCAAyD,EACzD;YACE,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CACF,CAAC;QAEF,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,yFAAyF;IACzF,MAAM,OAAO,CAAC,OAAO,CACnB,iCAAwD,EACxD;QACE,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import 'dotenv/config';
|
|
3
|
+
/**
|
|
4
|
+
* `github/pages/settings.json` を Settings > Pages に反映する。
|
|
5
|
+
*
|
|
6
|
+
* 設定ファイルを置いていない repository では何もしない( Pages を使わない
|
|
7
|
+
* repository で誤って Pages を有効化しないため)。
|
|
8
|
+
*/
|
|
9
|
+
export declare const applyPagesSettings: () => Promise<void>;
|
|
10
|
+
//# sourceMappingURL=apply.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.d.mts","sourceRoot":"","sources":["../../../src/github/pages/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAcvB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CAgCvD,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 { validationErrorsToMessages } from 'ts-fortress';
|
|
6
|
+
import { formatUncommittedFiles, isDirectlyExecuted, pathExists, Result, } from 'ts-repo-utils';
|
|
7
|
+
import { pagesSettingsDir, settingsJsonName } from '../constants.mjs';
|
|
8
|
+
import { getPagesSettings, setPagesSettings } from './api/index.mjs';
|
|
9
|
+
import { PagesSettings } from './constants.mjs';
|
|
10
|
+
/**
|
|
11
|
+
* `github/pages/settings.json` を Settings > Pages に反映する。
|
|
12
|
+
*
|
|
13
|
+
* 設定ファイルを置いていない repository では何もしない( Pages を使わない
|
|
14
|
+
* repository で誤って Pages を有効化しないため)。
|
|
15
|
+
*/
|
|
16
|
+
export const applyPagesSettings = async () => {
|
|
17
|
+
const settingsPath = path.resolve(pagesSettingsDir, settingsJsonName);
|
|
18
|
+
if (!(await pathExists(settingsPath))) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const settings = await readSettings(settingsPath);
|
|
22
|
+
await setPagesSettings(settings);
|
|
23
|
+
// 反映後の実際の値でローカルのファイルを更新する
|
|
24
|
+
{
|
|
25
|
+
const applied = await getPagesSettings();
|
|
26
|
+
if (applied === undefined) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const str = JSON.stringify(applied, undefined, 2);
|
|
30
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
31
|
+
await fs.writeFile(settingsPath, str);
|
|
32
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
33
|
+
await fs.writeFile(path.resolve(pagesSettingsDir, 'bk', settingsJsonName), str);
|
|
34
|
+
await formatUncommittedFiles();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const readSettings = async (settingsPath) => {
|
|
38
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
39
|
+
const settingsText = await fs.readFile(settingsPath, { encoding: 'utf8' });
|
|
40
|
+
const validationResult = PagesSettings.validate(JSON.parse(settingsText));
|
|
41
|
+
if (Result.isErr(validationResult)) {
|
|
42
|
+
throw new Error(validationErrorsToMessages(validationResult.value).join('\n'));
|
|
43
|
+
}
|
|
44
|
+
return validationResult.value;
|
|
45
|
+
};
|
|
46
|
+
if (isDirectlyExecuted(import.meta.url)) {
|
|
47
|
+
await applyPagesSettings();
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=apply.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/pages/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,UAAU,EACV,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAEtE,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,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEjC,0BAA0B;IAC1B,CAAC;QACC,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAEzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,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,mEAAmE;QACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,CAAC,EACtD,GAAG,CACJ,CAAC;QAEF,MAAM,sBAAsB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,YAAoB,EAA0B,EAAE;IAC1E,mEAAmE;IACnE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3E,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1E,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,kBAAkB,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.mts","sourceRoot":"","sources":["../../../src/github/pages/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAavB,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,SACzB,OAAO,KACX,OAAO,CAAC,IAAI,CAsBd,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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, makeEmptyDir, } from 'ts-repo-utils';
|
|
6
|
+
import { pagesSettingsDir, settingsJsonName } from '../constants.mjs';
|
|
7
|
+
import { getPagesSettings } from './api/index.mjs';
|
|
8
|
+
const backupDir = path.resolve(pagesSettingsDir, './bk');
|
|
9
|
+
/** Settings > Pages の現在値を `bk/` に保存する。 */
|
|
10
|
+
export const backupPagesSettings = async (fmt = true) => {
|
|
11
|
+
await makeEmptyDir(backupDir);
|
|
12
|
+
const settings = await getPagesSettings();
|
|
13
|
+
if (settings === undefined) {
|
|
14
|
+
console.warn('GitHub Pages is not enabled for this repository; skipping backup.');
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
18
|
+
await fs.writeFile(path.resolve(backupDir, settingsJsonName), JSON.stringify(settings, undefined, 2));
|
|
19
|
+
if (fmt) {
|
|
20
|
+
await formatUncommittedFiles();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
if (isDirectlyExecuted(import.meta.url)) {
|
|
24
|
+
await backupPagesSettings();
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=backup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.mjs","sourceRoot":"","sources":["../../../src/github/pages/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,GAAG,GAAY,IAAI,EACJ,EAAE;IACjB,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CACV,mEAAmE,CACpE,CAAC;QAEF,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,EACzC,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,mBAAmB,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as t from 'ts-fortress';
|
|
2
|
+
/**
|
|
3
|
+
* `github/pages/settings.json` の型。
|
|
4
|
+
*
|
|
5
|
+
* Settings > Pages > Build and deployment > Source に対応する。
|
|
6
|
+
* `workflow` が GUI 上の「 GitHub Actions 」、 `legacy` が「 Deploy from a branch 」。
|
|
7
|
+
*/
|
|
8
|
+
export declare const PagesSettings: Readonly<{
|
|
9
|
+
typeName: string;
|
|
10
|
+
defaultValue: Readonly<{
|
|
11
|
+
build_type: "legacy" | "workflow";
|
|
12
|
+
}>;
|
|
13
|
+
is: (a: unknown) => a is Readonly<{
|
|
14
|
+
build_type: "legacy" | "workflow";
|
|
15
|
+
}>;
|
|
16
|
+
assertIs: (a: unknown) => asserts a is Readonly<{
|
|
17
|
+
build_type: "legacy" | "workflow";
|
|
18
|
+
}>;
|
|
19
|
+
cast: (a: unknown) => Readonly<{
|
|
20
|
+
build_type: "legacy" | "workflow";
|
|
21
|
+
}>;
|
|
22
|
+
fill: (a: unknown) => Readonly<{
|
|
23
|
+
build_type: "legacy" | "workflow";
|
|
24
|
+
}>;
|
|
25
|
+
prune: <B extends Readonly<{
|
|
26
|
+
build_type: "legacy" | "workflow";
|
|
27
|
+
}>>(a: B) => Readonly<{
|
|
28
|
+
build_type: "legacy" | "workflow";
|
|
29
|
+
}>;
|
|
30
|
+
validate: (a: unknown) => t.Result<Readonly<{
|
|
31
|
+
build_type: "legacy" | "workflow";
|
|
32
|
+
}>, readonly Readonly<{
|
|
33
|
+
path: readonly string[];
|
|
34
|
+
actualValue: unknown;
|
|
35
|
+
expectedType: string;
|
|
36
|
+
typeName: string;
|
|
37
|
+
details?: t.ValidationErrorDetails | undefined;
|
|
38
|
+
}>[]>;
|
|
39
|
+
optional?: true;
|
|
40
|
+
}>;
|
|
41
|
+
export type PagesSettings = t.TypeOf<typeof PagesSettings>;
|
|
42
|
+
//# sourceMappingURL=constants.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../../src/github/pages/constants.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as t from 'ts-fortress';
|
|
2
|
+
/**
|
|
3
|
+
* `github/pages/settings.json` の型。
|
|
4
|
+
*
|
|
5
|
+
* Settings > Pages > Build and deployment > Source に対応する。
|
|
6
|
+
* `workflow` が GUI 上の「 GitHub Actions 」、 `legacy` が「 Deploy from a branch 」。
|
|
7
|
+
*/
|
|
8
|
+
export const PagesSettings = t.record({
|
|
9
|
+
build_type: t.enumType(['workflow', 'legacy'], {
|
|
10
|
+
typeName: 'PagesBuildType',
|
|
11
|
+
defaultValue: 'workflow',
|
|
12
|
+
}),
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../../src/github/pages/constants.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;QAC7C,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE,UAAU;KACzB,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/github/pages/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/github/pages/index.mts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-repository.d.mts","sourceRoot":"","sources":["../../../../src/github/repository/api/update-repository.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"update-repository.d.mts","sourceRoot":"","sources":["../../../../src/github/repository/api/update-repository.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,gBAAgB,6dA4B1B,QAAQ,CAAC;IACV,OAAO,EAAE,uBAAuB,CAAC;CAClC,CAAC,KAAG,OAAO,CAAC,IAAI,CAiChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.d.mts","sourceRoot":"","sources":["../../../src/github/repository/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"apply.d.mts","sourceRoot":"","sources":["../../../src/github/repository/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAoBvB,eAAO,MAAM,uBAAuB,QAAa,OAAO,CAAC,IAAI,CA4D5D,CAAC"}
|
|
@@ -5,7 +5,7 @@ import * as path from 'node:path';
|
|
|
5
5
|
import { Obj } from 'ts-data-forge';
|
|
6
6
|
import { validationErrorsToMessages } from 'ts-fortress';
|
|
7
7
|
import { formatUncommittedFiles, isDirectlyExecuted, Result, } from 'ts-repo-utils';
|
|
8
|
-
import { repositorySettingsDir,
|
|
8
|
+
import { repositorySettingsDir, settingsJsonName } from '../constants.mjs';
|
|
9
9
|
import { getRepositorySettings, updateRepository } from './api/index.mjs';
|
|
10
10
|
import { backupRepositorySettings } from './backup.mjs';
|
|
11
11
|
import { repositoryKeysToPick, RepositoryPicked, } from './constants.mjs';
|
|
@@ -47,15 +47,15 @@ export const applyRepositorySettings = async () => {
|
|
|
47
47
|
const repositorySettings = await getRepositorySettings();
|
|
48
48
|
const str = JSON.stringify(Obj.pick(repositorySettings, repositoryKeysToPick), undefined, 2);
|
|
49
49
|
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
50
|
-
await fs.writeFile(path.resolve(repositorySettingsDir,
|
|
50
|
+
await fs.writeFile(path.resolve(repositorySettingsDir, settingsJsonName), str);
|
|
51
51
|
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
52
|
-
await fs.writeFile(path.resolve(repositorySettingsDir, 'bk',
|
|
52
|
+
await fs.writeFile(path.resolve(repositorySettingsDir, 'bk', settingsJsonName), str);
|
|
53
53
|
await formatUncommittedFiles();
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
const readSettings = async () => {
|
|
57
57
|
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
58
|
-
const settingsText = await fs.readFile(path.resolve(repositorySettingsDir,
|
|
58
|
+
const settingsText = await fs.readFile(path.resolve(repositorySettingsDir, settingsJsonName), {
|
|
59
59
|
encoding: 'utf8',
|
|
60
60
|
});
|
|
61
61
|
const validationResult = RepositoryPicked.validate(JSON.parse(settingsText));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/repository/apply.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"apply.mjs","sourceRoot":"","sources":["../../../src/github/repository/apply.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.mts","sourceRoot":"","sources":["../../../src/github/repository/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"backup.d.mts","sourceRoot":"","sources":["../../../src/github/repository/backup.mts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AAevB,eAAO,MAAM,wBAAwB,SAC9B,OAAO,KACX,OAAO,CAAC,IAAI,CAkBd,CAAC"}
|
|
@@ -4,7 +4,7 @@ import * as fs from 'node:fs/promises';
|
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import { Obj } from 'ts-data-forge';
|
|
6
6
|
import { formatUncommittedFiles, isDirectlyExecuted, makeEmptyDir, } from 'ts-repo-utils';
|
|
7
|
-
import { repositorySettingsDir,
|
|
7
|
+
import { repositorySettingsDir, settingsJsonName } from '../constants.mjs';
|
|
8
8
|
import { getRepositorySettings } from './api/index.mjs';
|
|
9
9
|
import { repositoryKeysToPick } from './constants.mjs';
|
|
10
10
|
const backupDir = path.resolve(repositorySettingsDir, './bk');
|
|
@@ -12,7 +12,7 @@ export const backupRepositorySettings = async (fmt = true) => {
|
|
|
12
12
|
await makeEmptyDir(backupDir);
|
|
13
13
|
const repositorySettings = await getRepositorySettings();
|
|
14
14
|
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
15
|
-
await fs.writeFile(path.resolve(backupDir,
|
|
15
|
+
await fs.writeFile(path.resolve(backupDir, settingsJsonName), JSON.stringify(Obj.pick(repositorySettings, repositoryKeysToPick), undefined, 2));
|
|
16
16
|
if (fmt) {
|
|
17
17
|
await formatUncommittedFiles();
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.mjs","sourceRoot":"","sources":["../../../src/github/repository/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,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"backup.mjs","sourceRoot":"","sources":["../../../src/github/repository/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,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,GAAG,GAAY,IAAI,EACJ,EAAE;IACjB,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEzD,mEAAmE;IACnE,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,EACzC,IAAI,CAAC,SAAS,CACZ,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,EAClD,SAAS,EACT,CAAC,CACF,CACF,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,wBAAwB,EAAE,CAAC;AACnC,CAAC"}
|