@codyswann/lisa 2.286.5 → 2.286.6
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/doctor-readiness-credentials.d.ts +4 -3
- package/dist/cli/doctor-readiness-credentials.d.ts.map +1 -1
- package/dist/cli/doctor-readiness-credentials.js +28 -10
- package/dist/cli/doctor-readiness-credentials.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +1 -0
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Four declarations are treated as material over-authority: inherited secrets
|
|
12
12
|
* (`secrets: inherit` hands a called workflow everything), `write-all`/`read-all`
|
|
13
|
-
* blanket permission grants, a job that uses
|
|
13
|
+
* blanket permission grants, a job that uses the repository token with no
|
|
14
14
|
* `permissions` block at all (so it takes the repository default rather than a
|
|
15
|
-
* stated minimum), and static long-lived
|
|
16
|
-
*
|
|
15
|
+
* stated minimum), and static long-lived deployment credentials in jobs that
|
|
16
|
+
* should use a scoped or federated credential instead. Each is provable from
|
|
17
|
+
* the declaration alone.
|
|
17
18
|
*
|
|
18
19
|
* A fifth signal — one secret NAME appearing under several environments — is
|
|
19
20
|
* reported as an *observation*, never a blocker: environment secrets are meant
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-credentials.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-credentials.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"doctor-readiness-credentials.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAiQzC,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,kBAAkB,CAYpB"}
|
|
@@ -2,10 +2,28 @@
|
|
|
2
2
|
const BLANKET_PERMISSIONS = new Set(["write-all", "read-all"]);
|
|
3
3
|
/** Matches every `secrets.NAME` reference inside a job's declared text. */
|
|
4
4
|
const SECRET_REFERENCE = /secrets\.(\w+)/g;
|
|
5
|
-
/** Static
|
|
6
|
-
const
|
|
5
|
+
/** Static credential names and inputs that keyless or scoped auth should replace. */
|
|
6
|
+
const STATIC_CREDENTIAL_KEYS = [
|
|
7
|
+
"aws-access-key-id",
|
|
8
|
+
"aws-secret-access-key",
|
|
9
|
+
"NPM_TOKEN",
|
|
10
|
+
"GCP_SERVICE_ACCOUNT_JSON",
|
|
11
|
+
"GOOGLE_APPLICATION_CREDENTIALS",
|
|
12
|
+
"AZURE_CREDENTIALS",
|
|
13
|
+
"ADMIN_PAT",
|
|
14
|
+
"BOT_ADMIN_PAT",
|
|
15
|
+
"GH_ADMIN_PAT",
|
|
16
|
+
];
|
|
17
|
+
/** Static cloud credential inputs that OIDC (`id-token: write`) can replace. */
|
|
18
|
+
const OIDC_REPLACEABLE_KEYS = new Set([
|
|
19
|
+
"aws-access-key-id",
|
|
20
|
+
"aws-secret-access-key",
|
|
21
|
+
"GCP_SERVICE_ACCOUNT_JSON",
|
|
22
|
+
"GOOGLE_APPLICATION_CREDENTIALS",
|
|
23
|
+
"AZURE_CREDENTIALS",
|
|
24
|
+
]);
|
|
7
25
|
/** Matches a repository-token reference in either of its spellings. */
|
|
8
|
-
const REPOSITORY_TOKEN =
|
|
26
|
+
const REPOSITORY_TOKEN = /\b(?:GITHUB_TOKEN|GH_TOKEN)\b|github\.token/;
|
|
9
27
|
/**
|
|
10
28
|
* Flatten every string a job declares — step commands, actions, `env`, and
|
|
11
29
|
* `with` — into one searchable blob so a credential reference is found wherever
|
|
@@ -71,12 +89,13 @@ function inheritedSecretViolations(where, job) {
|
|
|
71
89
|
* @returns Evidence lines (empty when permissions are declared)
|
|
72
90
|
*/
|
|
73
91
|
function unscopedTokenViolations(where, workflow, job, text) {
|
|
74
|
-
const
|
|
92
|
+
const token = REPOSITORY_TOKEN.exec(text)?.[0];
|
|
93
|
+
const unscoped = token !== undefined &&
|
|
75
94
|
job.permissions === null &&
|
|
76
95
|
workflow.permissions === null;
|
|
77
96
|
return unscoped
|
|
78
97
|
? [
|
|
79
|
-
`${where} uses
|
|
98
|
+
`${where} uses ${token} with no \`permissions:\` block at either ` +
|
|
80
99
|
"scope, so it runs with the repository default rather than a stated minimum",
|
|
81
100
|
]
|
|
82
101
|
: [];
|
|
@@ -91,15 +110,14 @@ function unscopedTokenViolations(where, workflow, job, text) {
|
|
|
91
110
|
* @returns Evidence lines (empty when the job is keyless or already OIDC-enabled)
|
|
92
111
|
*/
|
|
93
112
|
function staticKeyViolations(where, workflow, job, text) {
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
grantsOidc(workflow.permissions)) {
|
|
113
|
+
const oidcGranted = grantsOidc(job.permissions) || grantsOidc(workflow.permissions);
|
|
114
|
+
const staticKey = STATIC_CREDENTIAL_KEYS.find(key => text.includes(key) && !(oidcGranted && OIDC_REPLACEABLE_KEYS.has(key)));
|
|
115
|
+
if (staticKey === undefined) {
|
|
98
116
|
return [];
|
|
99
117
|
}
|
|
100
118
|
return [
|
|
101
119
|
`${where} authenticates with the static long-lived credential ` +
|
|
102
|
-
`\`${staticKey}\`
|
|
120
|
+
`\`${staticKey}\` instead of a scoped or federated deployment credential`,
|
|
103
121
|
];
|
|
104
122
|
}
|
|
105
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-credentials.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor-readiness-credentials.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-credentials.ts"],"names":[],"mappings":"AAiCA,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/D,2EAA2E;AAC3E,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,qFAAqF;AACrF,MAAM,sBAAsB,GAAG;IAC7B,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,0BAA0B;IAC1B,gCAAgC;IAChC,mBAAmB;IACnB,WAAW;IACX,eAAe;IACf,cAAc;CACf,CAAC;AAEF,gFAAgF;AAChF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,mBAAmB;IACnB,uBAAuB;IACvB,0BAA0B;IAC1B,gCAAgC;IAChC,mBAAmB;CACpB,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AAQvE;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,GAAsB;IACrC,OAAO,GAAG,CAAC,KAAK;SACb,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACnD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,WAA0B;IAC5C,OAAO,CACL,OAAO,WAAW,KAAK,QAAQ;QAC/B,WAAW,KAAK,IAAI;QACpB,WAAW,CAAC,UAAU,CAAC,KAAK,OAAO,CACpC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,KAAa,EACb,WAA0B;IAE1B,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5E,OAAO;YACL,GAAG,KAAK,4BAA4B,WAAW,qBAAqB;gBAClE,yEAAyE;SAC5E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAChC,KAAa,EACb,GAAsB;IAEtB,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS;QAC9B,CAAC,CAAC;YACE,GAAG,KAAK,8DAA8D;gBACpE,8DAA8D;SACjE;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CAC9B,KAAa,EACb,QAAwB,EACxB,GAAsB,EACtB,IAAY;IAEZ,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,QAAQ,GACZ,KAAK,KAAK,SAAS;QACnB,GAAG,CAAC,WAAW,KAAK,IAAI;QACxB,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC;IAChC,OAAO,QAAQ;QACb,CAAC,CAAC;YACE,GAAG,KAAK,SAAS,KAAK,4CAA4C;gBAChE,4EAA4E;SAC/E;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAC1B,KAAa,EACb,QAAwB,EACxB,GAAsB,EACtB,IAAY;IAEZ,MAAM,WAAW,GACf,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAC3C,GAAG,CAAC,EAAE,CACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACzE,CAAC;IACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,GAAG,KAAK,uDAAuD;YAC7D,KAAK,SAAS,2DAA2D;KAC5E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,QAAwB,EACxB,GAAsB;IAEtB,MAAM,KAAK,GAAG,GAAG,QAAQ,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO;QACL,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC;QACjD,GAAG,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC;QACxC,GAAG,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;QACtD,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;KACnD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,SAAoC;IAEpC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO,IAAI;SACR,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;SACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAChC,GAAsB;IAEtB,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SACzD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,yEAAyE;QACzE,6EAA6E;SAC5E,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAC9B,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAwB;IAC5C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAC/B,SAAoC;IAEpC,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACnE,MAAM,YAAY,GAAG,YAAY,CAC/B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAC3E,CAAC;QACF,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC;gBACE,iBAAiB,MAAM,oBAAoB,YAAY,CAAC,MAAM,GAAG;oBAC/D,4BAA4B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB;oBACpE,mEAAmE;oBACnE,gEAAgE;oBAChE,+DAA+D;aAClE;YACH,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAUD;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAoC;IAEpC,OAAO;QACL,UAAU,EAAE;YACV,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAC9B,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAC5D;YACD,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAC9B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CACrE;SACF;QACD,aAAa,EAAE,wBAAwB,CAAC,SAAS,CAAC;KACnD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAshEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAshEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAytMjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -6653,6 +6653,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6653
6653
|
"tests/unit/cli/doctor-readiness-capabilities.test.ts": true,
|
|
6654
6654
|
"tests/unit/cli/doctor-readiness-context-precision.test.ts": true,
|
|
6655
6655
|
"tests/unit/cli/doctor-readiness-context.test.ts": true,
|
|
6656
|
+
"tests/unit/cli/doctor-readiness-credentials-round2.test.ts": true,
|
|
6656
6657
|
"tests/unit/cli/doctor-readiness-delivery-artifact.test.ts": true,
|
|
6657
6658
|
"tests/unit/cli/doctor-readiness-delivery-triggers.test.ts": true,
|
|
6658
6659
|
"tests/unit/cli/doctor-readiness-delivery.test.ts": true,
|