willfire 0.1.36 → 0.1.37
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/dist/cli/parseArgs.js +2 -3
- package/dist/cli.js +3 -6
- package/dist/jobs/prScope.d.ts +1 -8
- package/dist/jobs/prScope.js +4 -12
- package/dist/names/capDisplayName.d.ts +3 -3
- package/dist/names/capDisplayName.js +3 -3
- package/dist/predict/makeGithubClient.d.ts +0 -1
- package/dist/predict/makeGithubClient.js +4 -6
- package/dist/sandbox/sandboxConfig.d.ts +1 -4
- package/dist/sandbox/sandboxConfig.js +1 -4
- package/dist/uses/parseUses.d.ts +3 -6
- package/dist/uses/parseUses.js +3 -6
- package/package.json +1 -1
package/dist/cli/parseArgs.js
CHANGED
|
@@ -11,9 +11,8 @@ export function parseArgs(argv) {
|
|
|
11
11
|
console.error(USAGE);
|
|
12
12
|
process.exit(2);
|
|
13
13
|
}
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
// failure this flag exists to remove.
|
|
14
|
+
// Refused, not ignored: falling back to the guess would turn a typo into a
|
|
15
|
+
// wrong prediction, the failure this flag exists to remove.
|
|
17
16
|
const action = get("--action");
|
|
18
17
|
if (action !== undefined && !isPrEventAction(action)) {
|
|
19
18
|
console.error(`unknown --action: ${action}`);
|
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Usage: pnpm predict --repo owner/name --pr N [--json]
|
|
3
|
-
//
|
|
4
|
-
// Auth: GH_TOKEN or GITHUB_TOKEN env var (any token with
|
|
5
|
-
// contents/actions/pull-requests read). Inside an action, pass the workflow's
|
|
6
|
-
// GITHUB_TOKEN.
|
|
3
|
+
// Auth: GH_TOKEN or GITHUB_TOKEN, needing contents/actions/pull-requests read.
|
|
7
4
|
import { parseArgs } from "./cli/parseArgs.js";
|
|
8
5
|
import { isWorkflowEntry } from "./entries/isWorkflowEntry.js";
|
|
9
6
|
import { makeGithubClient } from "./predict/makeGithubClient.js";
|
|
@@ -33,8 +30,8 @@ if (isMain) {
|
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
32
|
}
|
|
36
|
-
// Last, and on the skip path too, so a red gate's
|
|
37
|
-
// commits was
|
|
33
|
+
// Last, and on the skip path too, so a red gate's reader always sees which
|
|
34
|
+
// commits this was read from.
|
|
38
35
|
for (const s of sources) {
|
|
39
36
|
console.log(`# read ${s.owner}/${s.repo}@${s.ref} -> ${s.sha}`);
|
|
40
37
|
}
|
package/dist/jobs/prScope.d.ts
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
1
|
import type { Scope } from "../expr/val.js";
|
|
2
|
-
/**
|
|
3
|
-
* A scope with the fixed pull-request facts filled in.
|
|
4
|
-
*
|
|
5
|
-
* Every `${{ }}` this module evaluates — a job `if:`, a matrix axis — is
|
|
6
|
-
* evaluated for the same event, so they all get the same `github.*`. Anything
|
|
7
|
-
* the caller states wins; there is nothing here worth overriding, but a scope
|
|
8
|
-
* that silently ignored what it was handed would be the wrong shape.
|
|
9
|
-
*/
|
|
2
|
+
/** Anything the caller states wins over the defaults. */
|
|
10
3
|
export declare const prScope: (scope: Scope) => Scope;
|
package/dist/jobs/prScope.js
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* resolve instead of hanging the job on an unknown.
|
|
2
|
+
* `predict` only ever answers for a pull request, so `event_name` is fixed —
|
|
3
|
+
* which is what lets a `github.event_name == 'pull_request'` guard resolve
|
|
4
|
+
* instead of hanging the job on an unknown.
|
|
6
5
|
*/
|
|
7
6
|
const PR_GITHUB_CONTEXT = { event_name: "pull_request" };
|
|
8
|
-
/**
|
|
9
|
-
* A scope with the fixed pull-request facts filled in.
|
|
10
|
-
*
|
|
11
|
-
* Every `${{ }}` this module evaluates — a job `if:`, a matrix axis — is
|
|
12
|
-
* evaluated for the same event, so they all get the same `github.*`. Anything
|
|
13
|
-
* the caller states wins; there is nothing here worth overriding, but a scope
|
|
14
|
-
* that silently ignored what it was handed would be the wrong shape.
|
|
15
|
-
*/
|
|
7
|
+
/** Anything the caller states wins over the defaults. */
|
|
16
8
|
export const prScope = (scope) => ({
|
|
17
9
|
...scope,
|
|
18
10
|
github: { ...PR_GITHUB_CONTEXT, ...scope.github },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* GitHub cuts a display name over 100 characters to 97 plus `...`. Verified
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* GitHub cuts a display name over 100 characters to 97 plus `...`. Verified on
|
|
3
|
+
* dirsql PR #1013: the cap applies to the leaf name before any reusable-call
|
|
4
|
+
* prefixing, so it lives here, not on the entry.
|
|
5
5
|
*/
|
|
6
6
|
export declare function capDisplayName(name: string): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* GitHub cuts a display name over 100 characters to 97 plus `...`. Verified
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* GitHub cuts a display name over 100 characters to 97 plus `...`. Verified on
|
|
3
|
+
* dirsql PR #1013: the cap applies to the leaf name before any reusable-call
|
|
4
|
+
* prefixing, so it lives here, not on the entry.
|
|
5
5
|
*/
|
|
6
6
|
export function capDisplayName(name) {
|
|
7
7
|
return name.length > 100 ? `${name.slice(0, 97)}...` : name;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
// it replaced (#75) so call sites and their fakes carry over unchanged.
|
|
1
|
+
// Plain `fetch`, shaped to mirror the octokit subset it replaced (#75) so call
|
|
2
|
+
// sites and their fakes carry over unchanged.
|
|
4
3
|
export function makeGithubClient() {
|
|
5
4
|
const token = process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN;
|
|
6
5
|
if (!token) {
|
|
@@ -76,9 +75,8 @@ export function makeGithubClient() {
|
|
|
76
75
|
},
|
|
77
76
|
},
|
|
78
77
|
},
|
|
79
|
-
// A short page ends the walk.
|
|
80
|
-
//
|
|
81
|
-
// parsing.
|
|
78
|
+
// A short page ends the walk. An exact page boundary costs one extra empty
|
|
79
|
+
// request, which keeps this free of Link-header parsing.
|
|
82
80
|
paginate: async (route, params) => {
|
|
83
81
|
const perPage = params.per_page ?? 30;
|
|
84
82
|
const all = [];
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The node major the image ships — also the refusal boundary for `setup-node`
|
|
3
|
-
* and `node2x` runtimes asking for any other major.
|
|
4
|
-
*/
|
|
1
|
+
/** Also the refusal boundary: `setup-node` and `node2x` get no other major. */
|
|
5
2
|
export declare const SANDBOX_NODE_MAJOR = 24;
|
|
6
3
|
export declare const DOCKERFILE = "FROM node:24-slim\nRUN apt-get update && apt-get install -y --no-install-recommends git ca-certificates python3 && rm -rf /var/lib/apt/lists/*\n";
|
|
7
4
|
export interface SandboxConfig {
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The node major the image ships — also the refusal boundary for `setup-node`
|
|
3
|
-
* and `node2x` runtimes asking for any other major.
|
|
4
|
-
*/
|
|
1
|
+
/** Also the refusal boundary: `setup-node` and `node2x` get no other major. */
|
|
5
2
|
export const SANDBOX_NODE_MAJOR = 24;
|
|
6
3
|
// git and python3: checkout's postcondition and the interpreters a script on
|
|
7
4
|
// a GitHub-hosted runner takes for granted.
|
package/dist/uses/parseUses.d.ts
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import type { UsesTarget } from "../types.js";
|
|
2
2
|
/**
|
|
3
|
-
* Split a job-level `uses:` into the file it names and the repo it lives in.
|
|
4
|
-
*
|
|
5
3
|
* Two spellings are legal:
|
|
6
4
|
*
|
|
7
5
|
* `./.github/workflows/x.yml` -> the caller's repo, same commit
|
|
8
6
|
* `owner/repo/.github/workflows/x.yml@ref` -> another repo, at `ref`
|
|
9
7
|
*
|
|
10
|
-
* The ref
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* guess a fetch target for.
|
|
8
|
+
* The ref comes off the last `@`, so a branch with a slash survives. Anything
|
|
9
|
+
* else is null, including a reference built from an expression — no fetch
|
|
10
|
+
* target to guess at.
|
|
14
11
|
*/
|
|
15
12
|
export declare function parseUses(uses: string): UsesTarget | null;
|
package/dist/uses/parseUses.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { EXPRESSION_RE } from "../names/jobDisplayName.js";
|
|
2
2
|
/**
|
|
3
|
-
* Split a job-level `uses:` into the file it names and the repo it lives in.
|
|
4
|
-
*
|
|
5
3
|
* Two spellings are legal:
|
|
6
4
|
*
|
|
7
5
|
* `./.github/workflows/x.yml` -> the caller's repo, same commit
|
|
8
6
|
* `owner/repo/.github/workflows/x.yml@ref` -> another repo, at `ref`
|
|
9
7
|
*
|
|
10
|
-
* The ref
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* guess a fetch target for.
|
|
8
|
+
* The ref comes off the last `@`, so a branch with a slash survives. Anything
|
|
9
|
+
* else is null, including a reference built from an expression — no fetch
|
|
10
|
+
* target to guess at.
|
|
14
11
|
*/
|
|
15
12
|
export function parseUses(uses) {
|
|
16
13
|
if (EXPRESSION_RE.test(uses)) {
|