@svp-labs/talos 0.1.0 → 0.1.1
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/ENGINEERING.md +2 -1
- package/assets/hooks/pre-push +15 -3
- package/assets/workflows/talos.yml +11 -8
- package/bootstrap/find-pin.sh +3 -2
- package/dist/cli/govern.js +3 -2
- package/dist/cli/govern.js.map +1 -1
- package/dist/cli/new.js +3 -2
- package/dist/cli/new.js.map +1 -1
- package/dist/cli/org.js +9 -5
- package/dist/cli/org.js.map +1 -1
- package/dist/github/api.js +37 -5
- package/dist/github/api.js.map +1 -1
- package/dist/github/org-variables.js +41 -0
- package/dist/github/org-variables.js.map +1 -0
- package/dist/govern/govern.js +3 -1
- package/dist/govern/govern.js.map +1 -1
- package/dist/govern/installations.js +13 -7
- package/dist/govern/installations.js.map +1 -1
- package/dist/govern/org.js +40 -6
- package/dist/govern/org.js.map +1 -1
- package/dist/govern/plan.js +1 -1
- package/dist/govern/plan.js.map +1 -1
- package/dist/govern/steps.js +21 -9
- package/dist/govern/steps.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/ENGINEERING.md
CHANGED
|
@@ -387,7 +387,8 @@ architecture rules in the tools' own syntax, never here.
|
|
|
387
387
|
merge-queue ruleset, the code-owner ruleset while at `evaluate`, collaborator-only issues and
|
|
388
388
|
PRs, Dependabot alerts, the properties and the App installations. `--channel canary|stable`
|
|
389
389
|
moves a green repository on and removes the code-owner ruleset. Where GitHub's API exposes no
|
|
390
|
-
setting,
|
|
390
|
+
setting, or refuses the owner's token one (adding a repository to an App's installation), it
|
|
391
|
+
prints the manual step (C29).
|
|
391
392
|
- **`talos adopt`:** writes the files and labels in one bootstrap PR: `talos.yml`, the generated
|
|
392
393
|
configs, `CLAUDE.md`, the issue forms, the labels, the pre-push hook, each language's setup
|
|
393
394
|
(pinned dev tools, supply-chain settings, toolchain), the brief and issue #1. The project's own
|
package/assets/hooks/pre-push
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
# that on install; anywhere else, run `git config core.hooksPath .githooks` once in each clone.
|
|
10
10
|
|
|
11
11
|
set -u
|
|
12
|
+
only=''
|
|
12
13
|
|
|
13
14
|
# Each line git passes is "<local ref> <local sha> <remote ref> <remote sha>". A push that only
|
|
14
15
|
# deletes branches or sends tags has nothing for the fast tier to judge.
|
|
@@ -27,8 +28,13 @@ if [ "${refs}" -gt 0 ] && [ "${branches}" -eq 0 ]; then
|
|
|
27
28
|
exit 0
|
|
28
29
|
fi
|
|
29
30
|
|
|
30
|
-
# Git runs a hook at the top of the working tree
|
|
31
|
-
#
|
|
31
|
+
# Git runs a hook at the top of the working tree, where git finds the repository again by itself.
|
|
32
|
+
# From a linked worktree it also exports GIT_DIR, which would point every git the fast tier runs,
|
|
33
|
+
# a test's fixture repository among them, at this repository and its remote: so it goes.
|
|
34
|
+
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE GIT_COMMON_DIR GIT_OBJECT_DIRECTORY GIT_PREFIX
|
|
35
|
+
|
|
36
|
+
# Talos runs the release the repository enforces, through the talos on PATH or else npx; in
|
|
37
|
+
# Talos's own repository, the build at hand.
|
|
32
38
|
set -- npx --yes @svp-labs/talos
|
|
33
39
|
if command -v talos >/dev/null 2>&1; then
|
|
34
40
|
set -- talos
|
|
@@ -39,13 +45,19 @@ if grep -q '"name": "@svp-labs/talos"' package.json 2>/dev/null; then
|
|
|
39
45
|
exit 1
|
|
40
46
|
fi
|
|
41
47
|
set -- env TALOS_DEV=1 node dist/bin/talos.js
|
|
48
|
+
# Talos's own unit tests don't all pass on a Windows machine (symlinks, path separators, line
|
|
49
|
+
# endings, bash scripts), so on Windows the hook runs the fast tier without them.
|
|
50
|
+
if [ "${OS:-}" = Windows_NT ]; then
|
|
51
|
+
only=ts/format,ts/lint,ts/types,ts/deadcode,ts/javascript
|
|
52
|
+
echo "pre-push: on Windows, Talos's unit tests (ts/tests) run on the PR only, not here." >&2
|
|
53
|
+
fi
|
|
42
54
|
fi
|
|
43
55
|
if [ "$1" = npx ] && ! command -v npx >/dev/null 2>&1; then
|
|
44
56
|
echo 'pre-push: the fast tier runs on Talos, which needs Node.js 22.18 or later with npx.' >&2
|
|
45
57
|
exit 1
|
|
46
58
|
fi
|
|
47
59
|
|
|
48
|
-
"$@" check --tiers commit
|
|
60
|
+
"$@" check --tiers commit ${only:+--only "${only}"}
|
|
49
61
|
code=$?
|
|
50
62
|
case "${code}" in
|
|
51
63
|
0) exit 0 ;;
|
|
@@ -89,8 +89,9 @@ jobs:
|
|
|
89
89
|
evaluate | canary | stable) ;;
|
|
90
90
|
*) fail "the talos property names no channel" ;;
|
|
91
91
|
esac
|
|
92
|
-
sha="$(gh api
|
|
93
|
-
|
|
92
|
+
sha="$(gh api -H 'Accept: application/vnd.github.raw' \
|
|
93
|
+
"repos/$talos/contents/channels.json?ref=channels" 2>/dev/null |
|
|
94
|
+
jq -r --arg channel "$channel" '.[$channel] // empty')" ||
|
|
94
95
|
fail "cannot read channels.json"
|
|
95
96
|
[[ "$sha" =~ $sha_pattern ]] || fail "channels.json has no commit for the channel"
|
|
96
97
|
printf '%s\n' "$sha"
|
|
@@ -239,8 +240,9 @@ jobs:
|
|
|
239
240
|
evaluate | canary | stable) ;;
|
|
240
241
|
*) fail "the talos property names no channel" ;;
|
|
241
242
|
esac
|
|
242
|
-
sha="$(gh api
|
|
243
|
-
|
|
243
|
+
sha="$(gh api -H 'Accept: application/vnd.github.raw' \
|
|
244
|
+
"repos/$talos/contents/channels.json?ref=channels" 2>/dev/null |
|
|
245
|
+
jq -r --arg channel "$channel" '.[$channel] // empty')" ||
|
|
244
246
|
fail "cannot read channels.json"
|
|
245
247
|
[[ "$sha" =~ $sha_pattern ]] || fail "channels.json has no commit for the channel"
|
|
246
248
|
printf '%s\n' "$sha"
|
|
@@ -272,7 +274,7 @@ jobs:
|
|
|
272
274
|
id: token
|
|
273
275
|
uses: actions/create-github-app-token@64ab729a6294000f5aa4a4bc0b73d1f32bc45510 # v3.3.0
|
|
274
276
|
with:
|
|
275
|
-
|
|
277
|
+
client-id: ${{ vars.TALOS_REVIEWER_APP_ID }}
|
|
276
278
|
private-key: ${{ secrets.TALOS_REVIEWER_KEY }}
|
|
277
279
|
permission-contents: read
|
|
278
280
|
permission-pull-requests: write
|
|
@@ -362,8 +364,9 @@ jobs:
|
|
|
362
364
|
evaluate | canary | stable) ;;
|
|
363
365
|
*) fail "the talos property names no channel" ;;
|
|
364
366
|
esac
|
|
365
|
-
sha="$(gh api
|
|
366
|
-
|
|
367
|
+
sha="$(gh api -H 'Accept: application/vnd.github.raw' \
|
|
368
|
+
"repos/$talos/contents/channels.json?ref=channels" 2>/dev/null |
|
|
369
|
+
jq -r --arg channel "$channel" '.[$channel] // empty')" ||
|
|
367
370
|
fail "cannot read channels.json"
|
|
368
371
|
[[ "$sha" =~ $sha_pattern ]] || fail "channels.json has no commit for the channel"
|
|
369
372
|
printf '%s\n' "$sha"
|
|
@@ -401,7 +404,7 @@ jobs:
|
|
|
401
404
|
id: token
|
|
402
405
|
uses: actions/create-github-app-token@64ab729a6294000f5aa4a4bc0b73d1f32bc45510 # v3.3.0
|
|
403
406
|
with:
|
|
404
|
-
|
|
407
|
+
client-id: ${{ vars.TALOS_REVIEWER_APP_ID }}
|
|
405
408
|
private-key: ${{ secrets.TALOS_REVIEWER_KEY }}
|
|
406
409
|
permission-contents: read
|
|
407
410
|
permission-issues: write
|
package/bootstrap/find-pin.sh
CHANGED
|
@@ -60,8 +60,9 @@ by_channels() {
|
|
|
60
60
|
evaluate | canary | stable) ;;
|
|
61
61
|
*) fail "the talos property names no channel" ;;
|
|
62
62
|
esac
|
|
63
|
-
sha="$(gh api
|
|
64
|
-
|
|
63
|
+
sha="$(gh api -H 'Accept: application/vnd.github.raw' \
|
|
64
|
+
"repos/$talos/contents/channels.json?ref=channels" 2>/dev/null |
|
|
65
|
+
jq -r --arg channel "$channel" '.[$channel] // empty')" ||
|
|
65
66
|
fail "cannot read channels.json"
|
|
66
67
|
[[ "$sha" =~ $sha_pattern ]] || fail "channels.json has no commit for the channel"
|
|
67
68
|
printf '%s\n' "$sha"
|
package/dist/cli/govern.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { parse, UsageError } from './io.js';
|
|
2
2
|
import { exec } from '../exec/exec.js';
|
|
3
3
|
import { github, tokenFromEnvironment } from '../github/api.js';
|
|
4
|
-
import {
|
|
4
|
+
import { ownerIdentities } from '../github/org-variables.js';
|
|
5
5
|
import { currentRepository, isRepoName } from '../github/remote.js';
|
|
6
6
|
import { governJson, governRepository, loadGovernAssets, } from '../govern/govern.js';
|
|
7
7
|
import { stepsText } from '../govern/output.js';
|
|
@@ -71,7 +71,8 @@ export function governWith(deps) {
|
|
|
71
71
|
try {
|
|
72
72
|
const report = await governRepository({
|
|
73
73
|
gh,
|
|
74
|
-
who:
|
|
74
|
+
who: await ownerIdentities(gh, io.env, (line) => io.err(`talos govern: ${line}
|
|
75
|
+
`)),
|
|
75
76
|
repo,
|
|
76
77
|
agents,
|
|
77
78
|
channel,
|
package/dist/cli/govern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"govern.js","sourceRoot":"","sources":["../../src/cli/govern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAsB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"govern.js","sourceRoot":"","sources":["../../src/cli/govern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAsB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAEL,UAAU,EACV,gBAAgB,EAEhB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,KAAK,GACT,+EAA+E;IAC/E,sBAAsB,CAAC;AAEzB,oEAAoE;AACpE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;CACjC,CAAC;AAEX,kDAAkD;AAClD,MAAM,UAAU,KAAK,CAAC,KAAyB,EAAE,IAAY;IAC3D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvD,MAAM,IAAI,UAAU,CAAC,KAAK,IAAI,yBAAyB,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClF,MAAM,IAAI,UAAU,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAyB,EAAE,EAAM;IACtE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,UAAU,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CACzB,EAAM,EACN,MAAoE,EACpE,MAAe;IAEf,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAoB;IAK/C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;IACzD,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,SAAS,CAAC,iBAAiB,IAAI,IAAI,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;QAC5F,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,IAAI;KACrB,CAAC;AACJ,CAAC;AAID,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QACxB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CACnC,IAAI,EACJ;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,GAAG,SAAS;SACb,EACD,IAAI,CACL,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;gBACpC,EAAE;gBACF,GAAG,EAAE,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9C,EAAE,CAAC,GAAG,CAAC,iBAAiB,IAAI;CACrC,CAAC,CACO;gBACD,IAAI;gBACJ,MAAM;gBACN,OAAO;gBACP,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;gBACzB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE;aAClD,CAAC,CAAC;YACH,OAAO,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;gBAAE,MAAM,KAAK,CAAC;YACnD,EAAE,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAY,UAAU,CAAC,EAAE,CAAC,CAAC"}
|
package/dist/cli/new.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { governOutput, onOff, printReport, RUN_FLAGS } from './govern.js';
|
|
2
2
|
import { parse, required, UsageError } from './io.js';
|
|
3
3
|
import { github, tokenFromEnvironment } from '../github/api.js';
|
|
4
|
-
import {
|
|
4
|
+
import { ownerIdentities } from '../github/org-variables.js';
|
|
5
5
|
import { checkNew, createRepository, nameProblem, prefixProblem, seedConfig, whenReady, } from '../govern/create.js';
|
|
6
6
|
import { assertOwner, governRepository, loadGovernAssets, } from '../govern/govern.js';
|
|
7
7
|
import { GovernRefusal } from '../govern/plan.js';
|
|
@@ -30,8 +30,9 @@ export function newWith(deps) {
|
|
|
30
30
|
const name = checked(named, nameProblem);
|
|
31
31
|
const prefix = checked(required(values.prefix, 'prefix'), prefixProblem);
|
|
32
32
|
const agents = onOff(values.agents, 'agents');
|
|
33
|
-
const who = identities(io.env);
|
|
34
33
|
const gh = github(await tokenFromEnvironment(io.env), deps);
|
|
34
|
+
const who = await ownerIdentities(gh, io.env, (line) => io.err(`talos new: ${line}
|
|
35
|
+
`));
|
|
35
36
|
const repo = `${who.org}/${name}`;
|
|
36
37
|
try {
|
|
37
38
|
await assertOwner(gh, who);
|
package/dist/cli/new.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/cli/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAgB,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,MAAM,EAAsB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/cli/new.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/org.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { printReport, RUN_FLAGS } from './govern.js';
|
|
2
2
|
import { parse, UsageError } from './io.js';
|
|
3
3
|
import { github, tokenFromEnvironment } from '../github/api.js';
|
|
4
|
-
import {
|
|
4
|
+
import { ownerIdentities } from '../github/org-variables.js';
|
|
5
5
|
import { assertOwner } from '../govern/govern.js';
|
|
6
6
|
import { channelRulesets, orgPlan, pinsOf, readOrgState, releasesOf, } from '../govern/org.js';
|
|
7
7
|
import { stepsOutput, stepsText } from '../govern/output.js';
|
|
@@ -14,7 +14,9 @@ async function init(gh, who, templates, args) {
|
|
|
14
14
|
await assertOwner(gh, who);
|
|
15
15
|
const state = await readOrgState(gh, who, templates);
|
|
16
16
|
const steps = orgPlan(state, templates, args.seed);
|
|
17
|
-
const results = args.dryRun
|
|
17
|
+
const results = args.dryRun
|
|
18
|
+
? planned(steps)
|
|
19
|
+
: await applySteps(gh, steps, { hint: scopeHint, independent: true });
|
|
18
20
|
const output = stepsOutput(results);
|
|
19
21
|
const verb = args.dryRun ? 'would set up' : 'set up';
|
|
20
22
|
return {
|
|
@@ -55,8 +57,9 @@ export function orgWith(deps) {
|
|
|
55
57
|
if (sub !== 'init' && sub !== 'pins')
|
|
56
58
|
throw new UsageError(USAGE);
|
|
57
59
|
const seed = seedOf(values.seed);
|
|
58
|
-
const who = identities(io.env);
|
|
59
60
|
const gh = github(await tokenFromEnvironment(io.env), deps);
|
|
61
|
+
const who = await ownerIdentities(gh, io.env, (line) => io.err(`talos org: ${line}
|
|
62
|
+
`));
|
|
60
63
|
try {
|
|
61
64
|
const report = sub === 'pins'
|
|
62
65
|
? await pins(gh, who)
|
|
@@ -76,8 +79,9 @@ export function orgWith(deps) {
|
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* `talos org`: the organisation's custom properties, the three channel rulesets that run the
|
|
79
|
-
* gate pinned at a release, and the Talos repository's tag and
|
|
80
|
-
* --seed <sha>` seeds every pin from the first
|
|
82
|
+
* gate pinned at a release, and the Talos repository's tag and self-test rulesets (and its
|
|
83
|
+
* `channels` one with `TALOS_LOOKUP=channels`). `init --seed <sha>` seeds every pin from the first
|
|
84
|
+
* release; afterwards the release jobs move them. Each step runs even when another failed.
|
|
81
85
|
* `pins` prints each channel's pin and its tag.
|
|
82
86
|
*/
|
|
83
87
|
export const org = orgWith({});
|
package/dist/cli/org.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/cli/org.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAgB,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAmC,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/cli/org.ts"],"names":[],"mappings":"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"}
|
package/dist/github/api.js
CHANGED
|
@@ -1,13 +1,46 @@
|
|
|
1
1
|
import { execFile } from 'node:child_process';
|
|
2
2
|
import { promisify } from 'node:util';
|
|
3
|
+
import { z } from 'zod';
|
|
3
4
|
export class GitHubError extends Error {
|
|
4
5
|
status;
|
|
6
|
+
reason;
|
|
5
7
|
name = 'GitHubError';
|
|
6
|
-
constructor(message, status
|
|
8
|
+
constructor(message, status,
|
|
9
|
+
/** GitHub's own words for a refusal, clipped; kept out of `message` so a caller opts in. */
|
|
10
|
+
reason) {
|
|
7
11
|
super(message);
|
|
8
12
|
this.status = status;
|
|
13
|
+
this.reason = reason;
|
|
9
14
|
}
|
|
10
15
|
}
|
|
16
|
+
const MAX_REASON = 200;
|
|
17
|
+
const refusalSchema = z.object({ message: z.string(), errors: z.array(z.unknown()).optional() });
|
|
18
|
+
const errorSchema = z.union([z.string(), z.object({ message: z.string() })]);
|
|
19
|
+
/** The message and errors of a refused request's body, or nothing when it has none. */
|
|
20
|
+
async function reasonOf(response) {
|
|
21
|
+
let body;
|
|
22
|
+
try {
|
|
23
|
+
body = JSON.parse(await response.text());
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const parsed = refusalSchema.safeParse(body);
|
|
29
|
+
if (!parsed.success)
|
|
30
|
+
return undefined;
|
|
31
|
+
const details = (parsed.data.errors ?? []).flatMap((error) => {
|
|
32
|
+
const item = errorSchema.safeParse(error);
|
|
33
|
+
if (!item.success)
|
|
34
|
+
return [];
|
|
35
|
+
return [typeof item.data === 'string' ? item.data : item.data.message];
|
|
36
|
+
});
|
|
37
|
+
const text = [parsed.data.message, ...details].join(': ');
|
|
38
|
+
return text.length <= MAX_REASON ? text : `${text.slice(0, MAX_REASON - 1)}…`;
|
|
39
|
+
}
|
|
40
|
+
async function refused(response, request) {
|
|
41
|
+
const status = response.status;
|
|
42
|
+
return new GitHubError(`${request}: ${status}`, status, await reasonOf(response));
|
|
43
|
+
}
|
|
11
44
|
const API = 'https://api.github.com';
|
|
12
45
|
function nextLink(header) {
|
|
13
46
|
if (header === null)
|
|
@@ -48,9 +81,8 @@ export function github(token, options = {}) {
|
|
|
48
81
|
const response = await send(method, url, opts);
|
|
49
82
|
if (response.status === 404 && opts.allowMissing === true)
|
|
50
83
|
return undefined;
|
|
51
|
-
if (!response.ok)
|
|
52
|
-
throw
|
|
53
|
-
}
|
|
84
|
+
if (!response.ok)
|
|
85
|
+
throw await refused(response, `${method} ${path}`);
|
|
54
86
|
if (response.status === 204)
|
|
55
87
|
return undefined;
|
|
56
88
|
const type = response.headers.get('content-type') ?? '';
|
|
@@ -63,7 +95,7 @@ export function github(token, options = {}) {
|
|
|
63
95
|
while (url !== undefined) {
|
|
64
96
|
const response = await send('GET', url, {});
|
|
65
97
|
if (!response.ok)
|
|
66
|
-
throw
|
|
98
|
+
throw await refused(response, `GET ${path}`);
|
|
67
99
|
const page = await response.json();
|
|
68
100
|
const list = key === undefined ? page : page[key];
|
|
69
101
|
items.push(...list);
|
package/dist/github/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/github/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/github/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,OAAO,WAAY,SAAQ,KAAK;IAIzB;IAEA;IALO,IAAI,GAAG,aAAa,CAAC;IACvC,YACE,OAAe,EACN,MAAc;IACvB,4FAA4F;IACnF,MAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,WAAM,GAAN,MAAM,CAAQ;QAEd,WAAM,GAAN,MAAM,CAAS;IAG1B,CAAC;CACF;AAED,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjG,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7E,uFAAuF;AACvF,KAAK,UAAU,QAAQ,CAAC,QAAkB;IACxC,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;AAChF,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,QAAkB,EAAE,OAAe;IACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,OAAO,IAAI,WAAW,CAAC,GAAG,OAAO,KAAK,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,CAAC;AAqBD,MAAM,GAAG,GAAG,wBAAwB,CAAC;AAErC,SAAS,QAAQ,CAAC,MAAqB;IACrC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,UAAyB,EAAE;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACvC,MAAM,OAAO,GAAG,CAAC,MAAe,EAA0B,EAAE,CAAC,CAAC;QAC5D,aAAa,EAAE,UAAU,KAAK,EAAE;QAChC,MAAM,EAAE,MAAM,IAAI,6BAA6B;QAC/C,sBAAsB,EAAE,YAAY;QACpC,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,KAAK,EAAE,MAAc,EAAE,GAAW,EAAE,IAAoB,EAAqB,EAAE;QAC1F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAClC,MAAM;YACN,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;aAC3E;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EACnB,MAAc,EACd,IAAY,EACZ,OAAuB,EAAE,EACb,EAAE;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;QACzF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,SAAc,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,MAAM,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACtF,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,EAAK,IAAY,EAAE,GAAY,EAAgB,EAAE;QACrE,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACjD,IAAI,GAAG,GAAuB,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS,cAAc,CAAC;QAC9F,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,MAAM,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAgC,CAAC,GAAG,CAAC,CAAC;YAC/E,KAAK,CAAC,IAAI,CAAC,GAAI,IAAY,CAAC,CAAC;YAC7B,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAK,KAAa,EAAE,YAAqC,EAAE,EAAc,EAAE;QAC9F,MAAM,MAAM,GAAG,MAAM,OAAO,CAA+C,MAAM,EAAE,SAAS,EAAE;YAC5F,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,WAAW,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,MAAM,CAAC,IAAS,CAAC;IAC1B,CAAC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAiD;IAEjD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC;IACjD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,0DAA0D,EAAE,GAAG,CAAC,CAAC;AACzF,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { GitHubError } from './api.js';
|
|
3
|
+
import { identities } from './identities.js';
|
|
4
|
+
/** The organisation variables the caller workflow passes as identities, which a local run reads. */
|
|
5
|
+
const VARIABLES = ['TALOS_OWNER', 'TALOS_THEA_APP', 'TALOS_REVIEWER_APP', 'TALOS_RELEASE_APP'];
|
|
6
|
+
const variableSchema = z.object({ name: z.string(), value: z.string() });
|
|
7
|
+
/**
|
|
8
|
+
* One organisation Actions variable, as the owner's token reads it; `undefined` when the
|
|
9
|
+
* organisation has none of that name, and a refusal tells `warn` which default stands in.
|
|
10
|
+
*/
|
|
11
|
+
async function orgVariable(gh, org, name, warn) {
|
|
12
|
+
try {
|
|
13
|
+
const path = `orgs/${encodeURIComponent(org)}/actions/variables/${name}`;
|
|
14
|
+
return variableSchema.parse(await gh.request('GET', path)).value;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
if (!(error instanceof GitHubError))
|
|
18
|
+
throw error;
|
|
19
|
+
if (error.status !== 404) {
|
|
20
|
+
warn(`could not read ${org}'s variable ${name} (${String(error.status)}), so its default ` +
|
|
21
|
+
`stands in: set ${name} to choose, or run \`gh auth refresh -s admin:org\``);
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The identities an owner's command runs as. In a workflow they come from the organisation's
|
|
28
|
+
* variables through the environment; locally, each one the environment leaves unset is read from
|
|
29
|
+
* those variables, so the owner's terminal names the same Apps as the jobs. The environment wins.
|
|
30
|
+
*/
|
|
31
|
+
export async function ownerIdentities(gh, env, warn) {
|
|
32
|
+
const { org } = identities(env);
|
|
33
|
+
const read = await Promise.all(VARIABLES.map(async (name) => {
|
|
34
|
+
const own = env[name];
|
|
35
|
+
if (own !== undefined && own !== '')
|
|
36
|
+
return [name, own];
|
|
37
|
+
return [name, await orgVariable(gh, org, name, warn)];
|
|
38
|
+
}));
|
|
39
|
+
return identities({ ...env, ...Object.fromEntries(read) });
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=org-variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-variables.js","sourceRoot":"","sources":["../../src/github/org-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AAI9D,oGAAoG;AACpG,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;AAE/F,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEzE;;;GAGG;AACH,KAAK,UAAU,WAAW,CACxB,EAAU,EACV,GAAW,EACX,IAAY,EACZ,IAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,kBAAkB,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;QACzE,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAU,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAAE,MAAM,KAAK,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,CACF,kBAAkB,GAAG,eAAe,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB;gBACnF,kBAAkB,IAAI,qDAAqD,CAC9E,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAU,EACV,GAAQ,EACR,IAA4B;IAE5B,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAU,CAAC;QACjE,OAAO,CAAC,IAAI,EAAE,MAAM,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAU,CAAC;IACjE,CAAC,CAAC,CACH,CAAC;IACF,OAAO,UAAU,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC"}
|
package/dist/govern/govern.js
CHANGED
|
@@ -53,7 +53,9 @@ export async function governRepository(options) {
|
|
|
53
53
|
...(options.seed === undefined ? {} : { seed: options.seed }),
|
|
54
54
|
};
|
|
55
55
|
const steps = governPlan(state, request);
|
|
56
|
-
const results = options.dryRun
|
|
56
|
+
const results = options.dryRun
|
|
57
|
+
? planned(steps)
|
|
58
|
+
: await applySteps(options.gh, steps, { hint: scopeHint });
|
|
57
59
|
return {
|
|
58
60
|
schema: GOVERN_SCHEMA,
|
|
59
61
|
repo: options.repo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"govern.js","sourceRoot":"","sources":["../../src/govern/govern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAsB,aAAa,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAmB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAIvC,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAW,SAAS,EAAE;IAC3D,MAAM,IAAI,GAAG,KAAK,EAAE,IAAY,EAAmB,EAAE;QACnD,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxD,IAAI,CAAC,qBAAqB,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC;QAClB,aAAa,CAAC,GAAG,CAAC;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU,EAAE,GAAe;IAC3D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAU,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;IACrD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,aAAa,CACrB,mCAAmC,GAAG,CAAC,KAAK,0CAA0C;YACpF,iBAAiB,KAAK,IAAI,YAAY,EAAE,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC;AAqBD,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAsB;IAC3D,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;QACvE,UAAU,EAAE,SAAS;KACtB,CAAC,CAAC;IACH,MAAM,OAAO,GAAkB;QAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,OAAO,CAAC,MAAM;QACjB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC9D,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"govern.js","sourceRoot":"","sources":["../../src/govern/govern.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,8 +39,16 @@ export async function readInstallations(gh, who, repositoryId) {
|
|
|
39
39
|
return { role, slug, installation, member };
|
|
40
40
|
}));
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
43
|
-
|
|
42
|
+
/** Where an org owner adds a repository to an App's installation by hand. */
|
|
43
|
+
function byHand(slug, repo) {
|
|
44
|
+
return (`add ${repo} to ${slug}'s installation if it isn't there: Org Settings → GitHub Apps → ` +
|
|
45
|
+
`${slug} → Configure → Repository access → add the repository → Save`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* One step per App: already there, added, or by hand: installing the App on the org, or adding
|
|
49
|
+
* the repository where the token may not read the installation or GitHub refuses the change.
|
|
50
|
+
*/
|
|
51
|
+
export function installationSteps(states, repository) {
|
|
44
52
|
return states.map((state) => {
|
|
45
53
|
const id = `app:${state.slug}`;
|
|
46
54
|
if (state.installation === undefined) {
|
|
@@ -48,11 +56,9 @@ export function installationSteps(states, repositoryId) {
|
|
|
48
56
|
}
|
|
49
57
|
if (state.member === true)
|
|
50
58
|
return ok(id, `${state.slug} reaches the repository`);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
repositoryId,
|
|
55
|
-
});
|
|
59
|
+
if (state.member === undefined)
|
|
60
|
+
return manual(id, byHand(state.slug, repository.name));
|
|
61
|
+
return change(id, `add the repository to ${state.slug}'s installation`, { kind: 'install', installationId: state.installation.id, repositoryId: repository.id }, byHand(state.slug, repository.name));
|
|
56
62
|
});
|
|
57
63
|
}
|
|
58
64
|
//# sourceMappingURL=installations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installations.js","sourceRoot":"","sources":["../../src/govern/installations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAa,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAe,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"installations.js","sourceRoot":"","sources":["../../src/govern/installations.ts"],"names":[],"mappings":"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"}
|
package/dist/govern/org.js
CHANGED
|
@@ -5,11 +5,13 @@ import { GovernRefusal } from './plan.js';
|
|
|
5
5
|
import { readRulesets } from './rulesets-api.js';
|
|
6
6
|
import { change, manual, ok, rulesetStep } from './steps.js';
|
|
7
7
|
import { channelRuleset, channelRulesetName, CHANNELS, channelsBranchRuleset, pinOf, } from './templates.js';
|
|
8
|
+
import { lookupMode } from '../version/pin.js';
|
|
8
9
|
/**
|
|
9
10
|
* The organisation's side of Talos: the two custom properties every governed repository carries,
|
|
10
|
-
* the three channel rulesets that run the gate, and the Talos repository's own
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* the three channel rulesets that run the gate, and the Talos repository's own rulesets (only the
|
|
12
|
+
* owner tags a release; nothing lands on `main` until the PR's own engine passed its checks and
|
|
13
|
+
* self-test; and, in the `channels.json` lookup only, only `talos-release` writes the `channels`
|
|
14
|
+
* branch).
|
|
13
15
|
*/
|
|
14
16
|
export const PROPERTY_DEFINITIONS = {
|
|
15
17
|
talos: {
|
|
@@ -29,7 +31,25 @@ export const PROPERTY_DEFINITIONS = {
|
|
|
29
31
|
const idSchema = z.object({ id: z.number().int() });
|
|
30
32
|
const definitionsSchema = z.array(z.looseObject({ property_name: z.string() }));
|
|
31
33
|
const tagsSchema = z.array(z.object({ name: z.string(), commit: z.object({ sha: z.string() }) }));
|
|
34
|
+
const variableSchema = z.object({ value: z.string() });
|
|
32
35
|
const CHANNEL_NAMES = CHANNELS.map(channelRulesetName);
|
|
36
|
+
/**
|
|
37
|
+
* The lookup the organisation's workflows use: its `TALOS_LOOKUP` Actions variable, the same one
|
|
38
|
+
* they read as `vars.TALOS_LOOKUP`, `rulesets` when it isn't set.
|
|
39
|
+
*/
|
|
40
|
+
export async function orgLookup(gh, org) {
|
|
41
|
+
const path = `orgs/${encodeURIComponent(org)}/actions/variables/TALOS_LOOKUP`;
|
|
42
|
+
const variable = await gh.request('GET', path, { allowMissing: true });
|
|
43
|
+
if (variable === undefined)
|
|
44
|
+
return 'rulesets';
|
|
45
|
+
const value = variableSchema.parse(variable).value;
|
|
46
|
+
try {
|
|
47
|
+
return lookupMode({ TALOS_LOOKUP: value });
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
throw new GovernRefusal(`${org}'s TALOS_LOOKUP variable is "${value}": set rulesets or channels`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
33
53
|
export async function releasesOf(gh, talosRepo) {
|
|
34
54
|
const tags = tagsSchema.parse(await gh.paginate(`repos/${talosRepo}/tags`));
|
|
35
55
|
return tags.filter((t) => /^v\d/.test(t.name)).map((t) => ({ tag: t.name, sha: t.commit.sha }));
|
|
@@ -44,10 +64,11 @@ export async function readOrgState(gh, who, templates) {
|
|
|
44
64
|
templates.channelsBranch.name,
|
|
45
65
|
templates.selfTest.name,
|
|
46
66
|
];
|
|
47
|
-
const [talos, reviewer, release, definitions, channels, talosRulesets, releases] = await Promise.all([
|
|
67
|
+
const [talos, reviewer, release, lookup, definitions, channels, talosRulesets, releases] = await Promise.all([
|
|
48
68
|
gh.request('GET', `repos/${who.talosRepo}`),
|
|
49
69
|
gh.request('GET', `apps/${appSlug(who, 'reviewer')}`),
|
|
50
70
|
gh.request('GET', `apps/${appSlug(who, 'release')}`),
|
|
71
|
+
orgLookup(gh, who.org),
|
|
51
72
|
gh.paginate(`orgs/${org}/properties/schema`),
|
|
52
73
|
channelRulesets(gh, who.org),
|
|
53
74
|
readRulesets(gh, { kind: 'repo', repo: who.talosRepo }, tagNames),
|
|
@@ -61,6 +82,7 @@ export async function readOrgState(gh, who, templates) {
|
|
|
61
82
|
reviewerAppId: idSchema.parse(reviewer).id,
|
|
62
83
|
},
|
|
63
84
|
releaseAppId: idSchema.parse(release).id,
|
|
85
|
+
lookup,
|
|
64
86
|
definitions: Object.fromEntries(definitionsSchema.parse(definitions).map((d) => [d.property_name, d])),
|
|
65
87
|
channels,
|
|
66
88
|
talosRulesets,
|
|
@@ -101,6 +123,19 @@ function channelStep(state, templates, channel, seed) {
|
|
|
101
123
|
const scope = { kind: 'org', org: state.org };
|
|
102
124
|
return rulesetStep(scope, current, channelRuleset(templates.channel, channel, pin, state.ids));
|
|
103
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* The `channels` branch ruleset, which only the `channels.json` lookup needs: there `talos-release`
|
|
128
|
+
* holds Contents write and is the one actor that may push the branch. In the rulesets lookup
|
|
129
|
+
* nothing writes that branch and the App has no Contents permission, so nothing is set up.
|
|
130
|
+
*/
|
|
131
|
+
function channelsBranchStep(state, templates, find) {
|
|
132
|
+
const name = templates.channelsBranch.name;
|
|
133
|
+
if (state.lookup !== 'channels') {
|
|
134
|
+
return ok(`ruleset:${name}`, `${name} is only needed with TALOS_LOOKUP=channels`);
|
|
135
|
+
}
|
|
136
|
+
const body = channelsBranchRuleset(templates.channelsBranch, state.releaseAppId);
|
|
137
|
+
return rulesetStep({ kind: 'repo', repo: state.talosRepo }, find(name), body);
|
|
138
|
+
}
|
|
104
139
|
/**
|
|
105
140
|
* What `talos org init` does: the properties first, which the channel rulesets target; then the
|
|
106
141
|
* three channel rulesets, each keeping the pin it has (pins move only through the release jobs)
|
|
@@ -110,13 +145,12 @@ export function orgPlan(state, templates, seed) {
|
|
|
110
145
|
checkSeed(state, seed);
|
|
111
146
|
const talos = { kind: 'repo', repo: state.talosRepo };
|
|
112
147
|
const find = (name) => state.talosRulesets.find((ruleset) => ruleset.name === name);
|
|
113
|
-
const channelsBranch = channelsBranchRuleset(templates.channelsBranch, state.releaseAppId);
|
|
114
148
|
return [
|
|
115
149
|
...propertySteps(state),
|
|
116
150
|
...CHANNELS.map((channel) => channelStep(state, templates, channel, seed)),
|
|
117
151
|
rulesetStep(talos, find(templates.releaseTags.name), templates.releaseTags),
|
|
118
|
-
rulesetStep(talos, find(channelsBranch.name), channelsBranch),
|
|
119
152
|
rulesetStep(talos, find(templates.selfTest.name), templates.selfTest),
|
|
153
|
+
channelsBranchStep(state, templates, find),
|
|
120
154
|
];
|
|
121
155
|
}
|
|
122
156
|
/** Each channel's pin, and the release tag it is. */
|
package/dist/govern/org.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/govern/org.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAoB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AACxE,OAAO,EAEL,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,qBAAqB,EAErB,KAAK,GAEN,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/govern/org.ts"],"names":[],"mappings":"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"}
|
package/dist/govern/plan.js
CHANGED
|
@@ -160,7 +160,7 @@ export function governPlan(state, request) {
|
|
|
160
160
|
}),
|
|
161
161
|
]
|
|
162
162
|
: []),
|
|
163
|
-
...installationSteps(state.installations, state.id),
|
|
163
|
+
...installationSteps(state.installations, { id: state.id, name: state.repo }),
|
|
164
164
|
];
|
|
165
165
|
}
|
|
166
166
|
//# sourceMappingURL=plan.js.map
|
package/dist/govern/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/govern/plan.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/govern/plan.ts"],"names":[],"mappings":"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"}
|
package/dist/govern/steps.js
CHANGED
|
@@ -5,8 +5,8 @@ import { GitHubError } from '../github/api.js';
|
|
|
5
5
|
export function ok(id, detail) {
|
|
6
6
|
return { id, status: 'ok', detail };
|
|
7
7
|
}
|
|
8
|
-
export function change(id, detail, effect) {
|
|
9
|
-
return { id, status: 'change', detail, effect };
|
|
8
|
+
export function change(id, detail, effect, refused) {
|
|
9
|
+
return { id, status: 'change', detail, effect, ...(refused === undefined ? {} : { refused }) };
|
|
10
10
|
}
|
|
11
11
|
export function manual(id, detail) {
|
|
12
12
|
return { id, status: 'manual', detail };
|
|
@@ -77,17 +77,25 @@ async function runSetting(gh, effect) {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
/**
|
|
80
|
+
/**
|
|
81
|
+
* What to say about a failed step: the request, its status and GitHub's clipped reason, never the
|
|
82
|
+
* raw response body. Steps run only from an owner's own terminal, never a public log.
|
|
83
|
+
*/
|
|
81
84
|
function failure(step, error, hint) {
|
|
82
|
-
if (error instanceof GitHubError)
|
|
83
|
-
|
|
85
|
+
if (error instanceof GitHubError) {
|
|
86
|
+
const reason = error.reason === undefined ? '' : ` (${error.reason})`;
|
|
87
|
+
return `${step.detail}: ${error.message}${reason}${hint(error.status)}`;
|
|
88
|
+
}
|
|
84
89
|
return `${step.detail}: ${error instanceof Error ? error.message : String(error)}`;
|
|
85
90
|
}
|
|
86
91
|
/**
|
|
87
|
-
* Carries out every `change` in order. The order matters (the caller must be on the
|
|
88
|
-
* branch before any ruleset blocks a direct commit), so the first failure stops the rest
|
|
92
|
+
* Carries out every `change` in order. The order usually matters (the caller must be on the
|
|
93
|
+
* default branch before any ruleset blocks a direct commit), so the first failure stops the rest,
|
|
94
|
+
* unless the steps are `independent`: then each runs and each failure is reported. A change
|
|
95
|
+
* GitHub refuses that a person can still make by hand is reported as that manual step instead.
|
|
89
96
|
*/
|
|
90
|
-
export async function applySteps(gh, steps,
|
|
97
|
+
export async function applySteps(gh, steps, options = {}) {
|
|
98
|
+
const hint = options.hint ?? (() => '');
|
|
91
99
|
const results = [];
|
|
92
100
|
let failed = false;
|
|
93
101
|
for (const step of steps) {
|
|
@@ -95,7 +103,7 @@ export async function applySteps(gh, steps, hint = () => '') {
|
|
|
95
103
|
results.push({ id: step.id, status: step.status, detail: step.detail });
|
|
96
104
|
continue;
|
|
97
105
|
}
|
|
98
|
-
if (failed) {
|
|
106
|
+
if (failed && options.independent !== true) {
|
|
99
107
|
results.push({ id: step.id, status: 'skipped', detail: step.detail });
|
|
100
108
|
continue;
|
|
101
109
|
}
|
|
@@ -104,6 +112,10 @@ export async function applySteps(gh, steps, hint = () => '') {
|
|
|
104
112
|
results.push({ id: step.id, status: 'changed', detail: step.detail });
|
|
105
113
|
}
|
|
106
114
|
catch (error) {
|
|
115
|
+
if (step.refused !== undefined && error instanceof GitHubError && error.status === 403) {
|
|
116
|
+
results.push({ id: step.id, status: 'manual', detail: step.refused });
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
107
119
|
failed = true;
|
|
108
120
|
results.push({ id: step.id, status: 'failed', detail: failure(step, error, hint) });
|
|
109
121
|
}
|
package/dist/govern/steps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/govern/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,aAAa,EAGb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAe,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/govern/steps.ts"],"names":[],"mappings":"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"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@svp-labs/talos",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@svp-labs/talos",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"bin": {
|
|
12
12
|
"talos": "dist/bin/talos.js"
|