@kungfu-tech/buildchain 3.0.2-alpha.4 → 3.0.2-alpha.5
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 +1 -0
- package/actions/github-artifact-attestation/README.md +10 -0
- package/actions/promote-buildchain-ref/README.md +7 -0
- package/bin/buildchain.mjs +5 -0
- package/bin/internal/trust-release-cli.mjs +74 -3
- package/dist/site/artifact-schemas.json +5 -1
- package/dist/site/buildchain-contract.json +79 -28
- package/dist/site/buildchain-site.json +108 -25
- package/dist/site/capability-registry.json +8 -7
- package/dist/site/cli-registry.json +12 -0
- package/dist/site/controller-registry.json +40 -4
- package/dist/site/kfd-claims.json +203 -18
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +19 -5
- package/dist/site/node-api-registry.json +22 -9
- package/dist/site/page-registry.json +89 -15
- package/dist/site/public-surface-audit.json +125 -15
- package/dist/site/publication-authority-registry.json +27 -2
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-model.json +2 -1
- package/dist/site/release-passport-check-manifest.json +1 -0
- package/dist/site/release-provenance.json +1 -0
- package/dist/site/schemas/release-passport-v1.schema.json +6 -0
- package/dist/site/site-manifest.json +17 -9
- package/dist/site/workflow-registry.json +84 -7
- package/docs/MAP.md +3 -1
- package/docs/binary-distribution.md +7 -0
- package/docs/cli.md +9 -0
- package/docs/github-artifact-attestation.md +219 -0
- package/docs/release-passport.md +13 -0
- package/docs/reusable-build-surface.md +6 -0
- package/package.json +2 -1
- package/packages/core/buildchain-contract.js +6 -0
- package/packages/core/buildchain-kfd-claims.js +5 -0
- package/packages/core/buildchain-publication-authority.js +1 -0
- package/packages/core/github-artifact-attestation.js +642 -0
- package/packages/core/index.js +19 -0
- package/packages/core/publication-authority.js +1 -1
- package/packages/core/release-passport-contract.js +2 -0
- package/packages/core/release-passport.js +51 -0
- package/scripts/check-inventory.mjs +4 -0
- package/scripts/create-github-artifact-attestation-policy.mjs +62 -0
- package/scripts/generate-site-bundle.mjs +12 -0
- package/scripts/publish-github-artifact-attestation-evidence.mjs +201 -0
- package/scripts/release-candidate-resolver.mjs +12 -0
- package/scripts/stage-github-artifact-attestation-inputs.mjs +65 -0
package/README.md
CHANGED
|
@@ -366,6 +366,7 @@ npm pack --dry-run --json --registry=https://registry.npmjs.org/
|
|
|
366
366
|
- [Product mechanism](docs/product-mechanism.md)
|
|
367
367
|
- [Release Passport and binary distribution](docs/release-passport.md)
|
|
368
368
|
- [GitHub governance authority](docs/github-governance-authority.md)
|
|
369
|
+
- [GitHub-native Linux artifact attestation](docs/github-artifact-attestation.md)
|
|
369
370
|
- [Binary distribution details](docs/binary-distribution.md)
|
|
370
371
|
- [Toolkit observability](docs/toolkit-observability.md)
|
|
371
372
|
- [Site bundle contract](docs/site-bundle-contract.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# GitHub Artifact Attestation Evidence
|
|
2
|
+
|
|
3
|
+
This internal Buildchain action validates one downloaded Linux release artifact
|
|
4
|
+
against its platform manifest and Release Passport, writes the custom predicate
|
|
5
|
+
consumed by `actions/attest`, and finalizes the retained v1 evidence document.
|
|
6
|
+
|
|
7
|
+
Consumers should call
|
|
8
|
+
`.github/workflows/github-artifact-attestation.yml`; they should not call this
|
|
9
|
+
action directly. The action parses data files only. It never checks out or
|
|
10
|
+
executes consumer source or the downloaded subject.
|
|
@@ -357,6 +357,13 @@ inside the final version-state workspace, after the release transaction has
|
|
|
357
357
|
materialized generated files such as `package.json` and `dist/site/*`. This
|
|
358
358
|
keeps self-hosted KFD witness hashes bound to the exact published package
|
|
359
359
|
instead of to a pre-promotion checkout.
|
|
360
|
+
Set `release-passport-github-artifact-attestation-policy-jsons` to one or more
|
|
361
|
+
newline-separated `buildchain.github-artifact-attestation-policy/v1` paths when
|
|
362
|
+
the Release Passport must require GitHub keyless provenance for Linux release
|
|
363
|
+
artifacts. The higher-level v3 promotion workflow exposes the single-artifact
|
|
364
|
+
`github-artifact-attestation-policy-json` input and owns staging, signing,
|
|
365
|
+
provider verification, immutable GitHub Release evidence upload, and read-back;
|
|
366
|
+
direct action callers own those post-Passport steps themselves.
|
|
360
367
|
When present, the passport includes the aggregate build summary, platform
|
|
361
368
|
artifact manifests, npm publish evidence, dist-tag promotion evidence, the
|
|
362
369
|
release-state ref, trusted publishing metadata, and the Buildchain transaction
|
package/bin/buildchain.mjs
CHANGED
|
@@ -164,13 +164,18 @@ function usage() {
|
|
|
164
164
|
[--kfd-product-gate-json <json-or-path>]...
|
|
165
165
|
[--invariant-passport-json <json-or-path>]...
|
|
166
166
|
[--invariant-passport-cmd <command>]
|
|
167
|
+
[--github-artifact-attestation-policy-json <json-or-path>]...
|
|
167
168
|
[--kfd-agent-hub-evidence-json <json-or-path>]
|
|
168
169
|
[--base-passport-json <json-or-path>] [--require-base-kfd]
|
|
169
170
|
[--release-extra-json <json-or-path>]
|
|
170
171
|
[--publish-json <json-or-path>] [--output-dir <dir>] [--json]
|
|
171
172
|
buildchain create publication-admission --input-json <file-or-json> [--output <file>] [--json]
|
|
172
173
|
buildchain create runner-provenance --input-json <file-or-json> [--output <file>] [--json]
|
|
174
|
+
buildchain create github-artifact-attestation-policy --input-json <file-or-json> [--output <file>] [--json]
|
|
173
175
|
buildchain verify release-passport <file-or-url> [--json]
|
|
176
|
+
buildchain verify github-artifact-attestation <artifact>
|
|
177
|
+
--evidence <file> --bundle <file>
|
|
178
|
+
--platform-manifest <file> --release-passport <file> [--json]
|
|
174
179
|
buildchain verify publication-admission <file-or-json>
|
|
175
180
|
--registry-json <file-or-json>
|
|
176
181
|
--runner-json <file-or-json>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
3
4
|
import { verifyInfraContractEvidenceBundle } from "../../scripts/infra-contract-core.mjs";
|
|
4
5
|
import { verifyBuildchainLogEvents } from "../../packages/core/logging.js";
|
|
5
6
|
import {
|
|
@@ -20,6 +21,11 @@ import {
|
|
|
20
21
|
createRunnerProvenance,
|
|
21
22
|
verifyPublicationAdmission,
|
|
22
23
|
} from "../../packages/core/publication-authority.js";
|
|
24
|
+
import {
|
|
25
|
+
createGitHubArtifactAttestationPolicy,
|
|
26
|
+
createGitHubArtifactAttestationVerificationPlan,
|
|
27
|
+
verifyGitHubArtifactAttestationEvidence,
|
|
28
|
+
} from "../../packages/core/github-artifact-attestation.js";
|
|
23
29
|
import {
|
|
24
30
|
explainArtifactPassport,
|
|
25
31
|
verifyArtifactPassport,
|
|
@@ -127,13 +133,19 @@ async function dispatchTrustReleaseCommand({ command, args, runScript, packageVe
|
|
|
127
133
|
if (command === "create") {
|
|
128
134
|
const [subcommand = "", ...createArgs] = args;
|
|
129
135
|
const inputValue = readFlag(createArgs, "input-json", "");
|
|
130
|
-
if (!inputValue || ![
|
|
131
|
-
|
|
136
|
+
if (!inputValue || ![
|
|
137
|
+
"publication-admission",
|
|
138
|
+
"runner-provenance",
|
|
139
|
+
"github-artifact-attestation-policy",
|
|
140
|
+
].includes(subcommand)) {
|
|
141
|
+
throw new Error("usage: buildchain create <publication-admission|runner-provenance|github-artifact-attestation-policy> --input-json <file-or-json> [--output <file>]");
|
|
132
142
|
}
|
|
133
143
|
const input = readJsonInput(inputValue, { label: "input-json" });
|
|
134
144
|
const value = subcommand === "publication-admission"
|
|
135
145
|
? createPublicationAdmission(input)
|
|
136
|
-
:
|
|
146
|
+
: subcommand === "runner-provenance"
|
|
147
|
+
? createRunnerProvenance(input)
|
|
148
|
+
: createGitHubArtifactAttestationPolicy(input);
|
|
137
149
|
const output = readFlag(createArgs, "output", "");
|
|
138
150
|
if (output) writeJsonFile(path.resolve(output), value);
|
|
139
151
|
if (!output || readBooleanFlag(createArgs, "json")) printJson(value);
|
|
@@ -190,6 +202,10 @@ async function dispatchTrustReleaseCommand({ command, args, runScript, packageVe
|
|
|
190
202
|
kfdProductGateJsons: readRepeatedFlag(collectArgs, "kfd-product-gate-json"),
|
|
191
203
|
invariantPassportJsons: readRepeatedFlag(collectArgs, "invariant-passport-json"),
|
|
192
204
|
invariantPassportCommand: readFlag(collectArgs, "invariant-passport-cmd", ""),
|
|
205
|
+
githubArtifactAttestationPolicyJsons: readRepeatedFlag(
|
|
206
|
+
collectArgs,
|
|
207
|
+
"github-artifact-attestation-policy-json",
|
|
208
|
+
),
|
|
193
209
|
kfdAgentHubEvidenceJson: readFlag(collectArgs, "kfd-agent-hub-evidence-json", ""),
|
|
194
210
|
basePassportJson: readFlag(collectArgs, "base-passport-json", ""),
|
|
195
211
|
requireBaseKfd: readBooleanFlag(collectArgs, "require-base-kfd"),
|
|
@@ -225,6 +241,61 @@ async function dispatchTrustReleaseCommand({ command, args, runScript, packageVe
|
|
|
225
241
|
|
|
226
242
|
if (command === "verify") {
|
|
227
243
|
const [subcommand = "", location = "", ...verifyArgs] = args;
|
|
244
|
+
if (subcommand === "github-artifact-attestation") {
|
|
245
|
+
if (!location) {
|
|
246
|
+
throw new Error("usage: buildchain verify github-artifact-attestation <artifact> --evidence <file> --bundle <file> --platform-manifest <file> --release-passport <file>");
|
|
247
|
+
}
|
|
248
|
+
const requiredPath = (name) => {
|
|
249
|
+
const value = readFlag(verifyArgs, name, "");
|
|
250
|
+
if (!value) {
|
|
251
|
+
throw new Error(`buildchain verify github-artifact-attestation requires --${name} <file>`);
|
|
252
|
+
}
|
|
253
|
+
return path.resolve(value);
|
|
254
|
+
};
|
|
255
|
+
const evidencePath = requiredPath("evidence");
|
|
256
|
+
const bundlePath = requiredPath("bundle");
|
|
257
|
+
const platformManifestPath = requiredPath("platform-manifest");
|
|
258
|
+
const releasePassportPath = requiredPath("release-passport");
|
|
259
|
+
const evidence = readJsonInput(evidencePath, { label: "evidence" });
|
|
260
|
+
const plan = createGitHubArtifactAttestationVerificationPlan({
|
|
261
|
+
artifactPath: location,
|
|
262
|
+
bundlePath,
|
|
263
|
+
evidence,
|
|
264
|
+
});
|
|
265
|
+
const verified = spawnSync(plan.command, plan.args, {
|
|
266
|
+
cwd: process.cwd(),
|
|
267
|
+
encoding: "utf8",
|
|
268
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
269
|
+
});
|
|
270
|
+
if (verified.error) throw verified.error;
|
|
271
|
+
if (verified.status !== 0) {
|
|
272
|
+
throw new Error(`gh attestation verify failed: ${(verified.stderr || verified.stdout || "unknown error").trim()}`);
|
|
273
|
+
}
|
|
274
|
+
let verificationResults;
|
|
275
|
+
try {
|
|
276
|
+
verificationResults = JSON.parse(verified.stdout);
|
|
277
|
+
} catch (error) {
|
|
278
|
+
throw new Error(`gh attestation verify returned invalid JSON: ${error.message}`);
|
|
279
|
+
}
|
|
280
|
+
const report = verifyGitHubArtifactAttestationEvidence({
|
|
281
|
+
artifactPath: path.resolve(location),
|
|
282
|
+
platformManifestPath,
|
|
283
|
+
releasePassportPath,
|
|
284
|
+
bundlePath,
|
|
285
|
+
evidence,
|
|
286
|
+
verificationResults,
|
|
287
|
+
});
|
|
288
|
+
if (readBooleanFlag(verifyArgs, "json")) {
|
|
289
|
+
printJson(report);
|
|
290
|
+
} else {
|
|
291
|
+
process.stdout.write(`GitHub artifact attestation: ${report.outcome}\n`);
|
|
292
|
+
for (const entry of report.issues) {
|
|
293
|
+
process.stdout.write(`- ${entry.code}: ${entry.message}\n`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
process.exitCode = report.ok ? 0 : 1;
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
228
299
|
if (subcommand === "publication-admission") {
|
|
229
300
|
if (!location) {
|
|
230
301
|
throw new Error("usage: buildchain verify publication-admission <file-or-json> --registry-json <file-or-json> --runner-json <file-or-json> --control-plane-audit-json <file-or-json> --publication-evidence-json <file-or-json>");
|
|
@@ -16,7 +16,11 @@
|
|
|
16
16
|
"check-report.json",
|
|
17
17
|
"llms.txt",
|
|
18
18
|
"buildchain-release-bundle.json",
|
|
19
|
-
"buildchain-release-bundle.tar.gz"
|
|
19
|
+
"buildchain-release-bundle.tar.gz",
|
|
20
|
+
"github-artifact-attestation.policy.json",
|
|
21
|
+
"github-artifact-attestation.predicate.json",
|
|
22
|
+
"github-artifact-attestation.evidence.json",
|
|
23
|
+
"attestation.sigstore.json"
|
|
20
24
|
],
|
|
21
25
|
"site": [
|
|
22
26
|
"buildchain-site.json",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "3.0.2-alpha.
|
|
7
|
+
"version": "3.0.2-alpha.5",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v3",
|
|
@@ -34,6 +34,8 @@
|
|
|
34
34
|
"runner-preset",
|
|
35
35
|
"platforms-json",
|
|
36
36
|
"release-candidate",
|
|
37
|
+
"github-artifact-attestation-subject-path",
|
|
38
|
+
"github-artifact-attestation-platform-id",
|
|
37
39
|
"artifact-transfer-mode",
|
|
38
40
|
"checkout-cache-mode",
|
|
39
41
|
"checkout-cache-fallback",
|
|
@@ -50,7 +52,7 @@
|
|
|
50
52
|
"retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification"
|
|
51
53
|
],
|
|
52
54
|
"breakingDigest": "sha256:a6a35370d6b0d0f46e1b2712dcc01961fe53c2febde95409a27a485c10a36650",
|
|
53
|
-
"auditDigest": "sha256:
|
|
55
|
+
"auditDigest": "sha256:dbee3ce7db7a6a79138e8b5c6698fb2ba12a0594ba17dcb570d6230f44db6b09"
|
|
54
56
|
},
|
|
55
57
|
{
|
|
56
58
|
"contractVersion": 1,
|
|
@@ -89,7 +91,7 @@
|
|
|
89
91
|
"alpha and stable channel selections use separate consumer contract locks by default"
|
|
90
92
|
],
|
|
91
93
|
"breakingDigest": "sha256:c4597dfa89e1a58f1023905092b849644f5c080abf150aeba9c7e1cd5ed43962",
|
|
92
|
-
"auditDigest": "sha256:
|
|
94
|
+
"auditDigest": "sha256:158aa13c7954762e1a7ab6e5efffc7edbdf5d380208157ce9bd0fbec50dc6190"
|
|
93
95
|
},
|
|
94
96
|
{
|
|
95
97
|
"contractVersion": 1,
|
|
@@ -129,6 +131,9 @@
|
|
|
129
131
|
"release-passport-kfd-3-artifact-verify-command",
|
|
130
132
|
"release-passport-invariant-passport-jsons",
|
|
131
133
|
"release-passport-invariant-passport-command",
|
|
134
|
+
"github-artifact-attestation-policy-json",
|
|
135
|
+
"github-artifact-attestation-environment",
|
|
136
|
+
"github-artifact-attestation-retention-days",
|
|
132
137
|
"buildchain-contract-lock-path",
|
|
133
138
|
"buildchain-contract-drift-issue-mode",
|
|
134
139
|
"github-release",
|
|
@@ -170,7 +175,7 @@
|
|
|
170
175
|
"GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
|
|
171
176
|
],
|
|
172
177
|
"breakingDigest": "sha256:acd401cfc46450115a3763fd4b679d85f185e8757ebd52510d6262e1533df4cf",
|
|
173
|
-
"auditDigest": "sha256:
|
|
178
|
+
"auditDigest": "sha256:8b1ff8b2487980c879eec4ffbfa2a2207e54fc76c05d010b7eb4d619685caff4"
|
|
174
179
|
},
|
|
175
180
|
{
|
|
176
181
|
"contractVersion": 1,
|
|
@@ -212,7 +217,7 @@
|
|
|
212
217
|
"promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix"
|
|
213
218
|
],
|
|
214
219
|
"breakingDigest": "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0",
|
|
215
|
-
"auditDigest": "sha256:
|
|
220
|
+
"auditDigest": "sha256:54bf2db92237cad97da1dc740780330e6175b97352523db732c8650560f1a9fd"
|
|
216
221
|
},
|
|
217
222
|
{
|
|
218
223
|
"contractVersion": 1,
|
|
@@ -340,6 +345,7 @@
|
|
|
340
345
|
"release-passport-kfd-3-artifact-verify-command",
|
|
341
346
|
"release-passport-invariant-passport-jsons",
|
|
342
347
|
"release-passport-invariant-passport-command",
|
|
348
|
+
"release-passport-github-artifact-attestation-policy-jsons",
|
|
343
349
|
"github-release",
|
|
344
350
|
"github-release-title",
|
|
345
351
|
"github-release-notes"
|
|
@@ -377,7 +383,7 @@
|
|
|
377
383
|
"sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874"
|
|
378
384
|
],
|
|
379
385
|
"breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda",
|
|
380
|
-
"auditDigest": "sha256:
|
|
386
|
+
"auditDigest": "sha256:d1a4803f908b87c66ab6e9a5dca935366192fbda0bd6c23d784c9e037afb89be"
|
|
381
387
|
},
|
|
382
388
|
{
|
|
383
389
|
"contractVersion": 1,
|
|
@@ -492,7 +498,7 @@
|
|
|
492
498
|
"release-state SHA is recorded as a durable audit entrance"
|
|
493
499
|
],
|
|
494
500
|
"breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
|
|
495
|
-
"auditDigest": "sha256:
|
|
501
|
+
"auditDigest": "sha256:09b0794b6d0e4bc3638f52e8d58e2eb6d6ab7efd2a2f90247c48c8fa68beda16"
|
|
496
502
|
},
|
|
497
503
|
{
|
|
498
504
|
"contractVersion": 1,
|
|
@@ -541,7 +547,7 @@
|
|
|
541
547
|
"prose-only public claims downgrade the release trust passport audit"
|
|
542
548
|
],
|
|
543
549
|
"breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
|
|
544
|
-
"auditDigest": "sha256:
|
|
550
|
+
"auditDigest": "sha256:09b0794b6d0e4bc3638f52e8d58e2eb6d6ab7efd2a2f90247c48c8fa68beda16"
|
|
545
551
|
},
|
|
546
552
|
{
|
|
547
553
|
"contractVersion": 1,
|
|
@@ -601,7 +607,7 @@
|
|
|
601
607
|
"README badge block checks and writes are generated from machine-readable repository facts"
|
|
602
608
|
],
|
|
603
609
|
"breakingDigest": "sha256:90a73892b2d6c214048448d5f45df75639bdf7b7e8fefd9c596e04b087407bcc",
|
|
604
|
-
"auditDigest": "sha256:
|
|
610
|
+
"auditDigest": "sha256:4afc2879c3ede97d4123ec2536209b57ecb077f658a09f748e5ae088b1c92bc8"
|
|
605
611
|
},
|
|
606
612
|
{
|
|
607
613
|
"contractVersion": 1,
|
|
@@ -691,7 +697,7 @@
|
|
|
691
697
|
"manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
|
|
692
698
|
],
|
|
693
699
|
"breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
|
|
694
|
-
"auditDigest": "sha256:
|
|
700
|
+
"auditDigest": "sha256:8bb23e95ad68832eb554145905a29242a06875baf22ac62c4e7302e447872f3c"
|
|
695
701
|
},
|
|
696
702
|
{
|
|
697
703
|
"contractVersion": 1,
|
|
@@ -713,7 +719,7 @@
|
|
|
713
719
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
714
720
|
],
|
|
715
721
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
716
|
-
"auditDigest": "sha256:
|
|
722
|
+
"auditDigest": "sha256:c68a2dbb92a25a2a2838f8ff72954cc5898e1383e2bd8fcfe699c2c2563912dd"
|
|
717
723
|
},
|
|
718
724
|
{
|
|
719
725
|
"contractVersion": 1,
|
|
@@ -764,7 +770,7 @@
|
|
|
764
770
|
"controllerDescriptor": {
|
|
765
771
|
"contract": "buildchain.controller-descriptor/v1",
|
|
766
772
|
"digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
|
|
767
|
-
"registryDigest": "sha256:
|
|
773
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
768
774
|
"inputClassifications": {
|
|
769
775
|
"buildchain-ref": {
|
|
770
776
|
"classification": "included",
|
|
@@ -891,6 +897,9 @@
|
|
|
891
897
|
"expected-artifacts-json",
|
|
892
898
|
"fail-fast",
|
|
893
899
|
"gate-profile-aggregate-json",
|
|
900
|
+
"github-artifact-attestation-platform-id",
|
|
901
|
+
"github-artifact-attestation-signer-sha",
|
|
902
|
+
"github-artifact-attestation-subject-path",
|
|
894
903
|
"install-command",
|
|
895
904
|
"kfd-agent-hub",
|
|
896
905
|
"lifecycle-timeout-minutes",
|
|
@@ -926,8 +935,8 @@
|
|
|
926
935
|
],
|
|
927
936
|
"controllerDescriptor": {
|
|
928
937
|
"contract": "buildchain.controller-descriptor/v1",
|
|
929
|
-
"digest": "sha256:
|
|
930
|
-
"registryDigest": "sha256:
|
|
938
|
+
"digest": "sha256:16c0a2506088fc5a4e3337c7c23f5cc7d14f30e9cde23c1d39fc335d05b4a4f9",
|
|
939
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
931
940
|
"inputClassifications": {
|
|
932
941
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
933
942
|
"classification": "redacted",
|
|
@@ -1109,6 +1118,18 @@
|
|
|
1109
1118
|
"classification": "digest-only",
|
|
1110
1119
|
"source": "workflow-call-input"
|
|
1111
1120
|
},
|
|
1121
|
+
"github-artifact-attestation-platform-id": {
|
|
1122
|
+
"classification": "included",
|
|
1123
|
+
"source": "workflow-call-input"
|
|
1124
|
+
},
|
|
1125
|
+
"github-artifact-attestation-signer-sha": {
|
|
1126
|
+
"classification": "included",
|
|
1127
|
+
"source": "workflow-call-input"
|
|
1128
|
+
},
|
|
1129
|
+
"github-artifact-attestation-subject-path": {
|
|
1130
|
+
"classification": "digest-only",
|
|
1131
|
+
"source": "workflow-call-input"
|
|
1132
|
+
},
|
|
1112
1133
|
"install-command": {
|
|
1113
1134
|
"classification": "digest-only",
|
|
1114
1135
|
"source": "workflow-call-input"
|
|
@@ -1249,7 +1270,7 @@
|
|
|
1249
1270
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
1250
1271
|
],
|
|
1251
1272
|
"breakingDigest": "sha256:30745921541e9b0f70475bb2178c2559f6aef248f6680670ccd44d8c5a69a6b1",
|
|
1252
|
-
"auditDigest": "sha256:
|
|
1273
|
+
"auditDigest": "sha256:dbee3ce7db7a6a79138e8b5c6698fb2ba12a0594ba17dcb570d6230f44db6b09"
|
|
1253
1274
|
},
|
|
1254
1275
|
{
|
|
1255
1276
|
"contractVersion": 1,
|
|
@@ -1335,6 +1356,9 @@
|
|
|
1335
1356
|
"expected-artifacts-json",
|
|
1336
1357
|
"fail-fast",
|
|
1337
1358
|
"gate-profile-aggregate-json",
|
|
1359
|
+
"github-artifact-attestation-platform-id",
|
|
1360
|
+
"github-artifact-attestation-signer-sha",
|
|
1361
|
+
"github-artifact-attestation-subject-path",
|
|
1338
1362
|
"install-command",
|
|
1339
1363
|
"kfd-agent-hub",
|
|
1340
1364
|
"lifecycle-timeout-minutes",
|
|
@@ -1370,8 +1394,8 @@
|
|
|
1370
1394
|
],
|
|
1371
1395
|
"controllerDescriptor": {
|
|
1372
1396
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1373
|
-
"digest": "sha256:
|
|
1374
|
-
"registryDigest": "sha256:
|
|
1397
|
+
"digest": "sha256:529f68186a49a8df1f2012fc4a38058548d1cc93eb06b6bed35befddd72519ef",
|
|
1398
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
1375
1399
|
"inputClassifications": {
|
|
1376
1400
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
1377
1401
|
"classification": "redacted",
|
|
@@ -1565,6 +1589,18 @@
|
|
|
1565
1589
|
"classification": "digest-only",
|
|
1566
1590
|
"source": "workflow-call-input"
|
|
1567
1591
|
},
|
|
1592
|
+
"github-artifact-attestation-platform-id": {
|
|
1593
|
+
"classification": "included",
|
|
1594
|
+
"source": "workflow-call-input"
|
|
1595
|
+
},
|
|
1596
|
+
"github-artifact-attestation-signer-sha": {
|
|
1597
|
+
"classification": "included",
|
|
1598
|
+
"source": "workflow-call-input"
|
|
1599
|
+
},
|
|
1600
|
+
"github-artifact-attestation-subject-path": {
|
|
1601
|
+
"classification": "digest-only",
|
|
1602
|
+
"source": "workflow-call-input"
|
|
1603
|
+
},
|
|
1568
1604
|
"install-command": {
|
|
1569
1605
|
"classification": "digest-only",
|
|
1570
1606
|
"source": "workflow-call-input"
|
|
@@ -1702,7 +1738,7 @@
|
|
|
1702
1738
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
1703
1739
|
],
|
|
1704
1740
|
"breakingDigest": "sha256:d40dd05d7e07473d4b2dc1b62fbb0ed6f06449b4d3a7c44a2e8014313e3c0273",
|
|
1705
|
-
"auditDigest": "sha256:
|
|
1741
|
+
"auditDigest": "sha256:158aa13c7954762e1a7ab6e5efffc7edbdf5d380208157ce9bd0fbec50dc6190"
|
|
1706
1742
|
},
|
|
1707
1743
|
{
|
|
1708
1744
|
"contractVersion": 1,
|
|
@@ -1772,7 +1808,7 @@
|
|
|
1772
1808
|
"controllerDescriptor": {
|
|
1773
1809
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1774
1810
|
"digest": "sha256:8e42956a2c10fa109500e72b97994f06b3d22a19cc63a46f66410b2e81706e9d",
|
|
1775
|
-
"registryDigest": "sha256:
|
|
1811
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
1776
1812
|
"inputClassifications": {
|
|
1777
1813
|
"artifact-name": {
|
|
1778
1814
|
"classification": "included",
|
|
@@ -1989,7 +2025,7 @@
|
|
|
1989
2025
|
"controllerDescriptor": {
|
|
1990
2026
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1991
2027
|
"digest": "sha256:c5274b37f04d0054559fdc8698c51bd0f0d8ae470baf163e9caa7699aa970575",
|
|
1992
|
-
"registryDigest": "sha256:
|
|
2028
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
1993
2029
|
"inputClassifications": {
|
|
1994
2030
|
"artifact-path": {
|
|
1995
2031
|
"classification": "digest-only",
|
|
@@ -2233,7 +2269,7 @@
|
|
|
2233
2269
|
"controllerDescriptor": {
|
|
2234
2270
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2235
2271
|
"digest": "sha256:6b132790b9798e8a5dfbe095701d8e024c160a08bc7c4bd477ee79feef7a9cfd",
|
|
2236
|
-
"registryDigest": "sha256:
|
|
2272
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
2237
2273
|
"inputClassifications": {
|
|
2238
2274
|
"artifact-name": {
|
|
2239
2275
|
"classification": "included",
|
|
@@ -2415,7 +2451,7 @@
|
|
|
2415
2451
|
"controllerDescriptor": {
|
|
2416
2452
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2417
2453
|
"digest": "sha256:6d71409659fbf8543c7e520b0c493d8afe86bdf60286b860bb917f0041ebc173",
|
|
2418
|
-
"registryDigest": "sha256:
|
|
2454
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
2419
2455
|
"inputClassifications": {
|
|
2420
2456
|
"artifact-name": {
|
|
2421
2457
|
"classification": "included",
|
|
@@ -2646,6 +2682,9 @@
|
|
|
2646
2682
|
"buildchain-repository",
|
|
2647
2683
|
"channel",
|
|
2648
2684
|
"dry-run",
|
|
2685
|
+
"github-artifact-attestation-environment",
|
|
2686
|
+
"github-artifact-attestation-policy-json",
|
|
2687
|
+
"github-artifact-attestation-retention-days",
|
|
2649
2688
|
"github-governance-receipt-json",
|
|
2650
2689
|
"github-release",
|
|
2651
2690
|
"github-release-notes",
|
|
@@ -2721,8 +2760,8 @@
|
|
|
2721
2760
|
],
|
|
2722
2761
|
"controllerDescriptor": {
|
|
2723
2762
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2724
|
-
"digest": "sha256:
|
|
2725
|
-
"registryDigest": "sha256:
|
|
2763
|
+
"digest": "sha256:00baae93d9ed75129fdaed6fcc33285e515b8c7de84816831a39e660941dd7ae",
|
|
2764
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
2726
2765
|
"inputClassifications": {
|
|
2727
2766
|
"BUILDCHAIN_ISSUE_APP_ID": {
|
|
2728
2767
|
"classification": "redacted",
|
|
@@ -2816,6 +2855,18 @@
|
|
|
2816
2855
|
"classification": "included",
|
|
2817
2856
|
"source": "workflow-call-input"
|
|
2818
2857
|
},
|
|
2858
|
+
"github-artifact-attestation-environment": {
|
|
2859
|
+
"classification": "digest-only",
|
|
2860
|
+
"source": "workflow-call-input"
|
|
2861
|
+
},
|
|
2862
|
+
"github-artifact-attestation-policy-json": {
|
|
2863
|
+
"classification": "digest-only",
|
|
2864
|
+
"source": "workflow-call-input"
|
|
2865
|
+
},
|
|
2866
|
+
"github-artifact-attestation-retention-days": {
|
|
2867
|
+
"classification": "included",
|
|
2868
|
+
"source": "workflow-call-input"
|
|
2869
|
+
},
|
|
2819
2870
|
"github-governance-receipt-json": {
|
|
2820
2871
|
"classification": "digest-only",
|
|
2821
2872
|
"source": "workflow-call-input"
|
|
@@ -3113,7 +3164,7 @@
|
|
|
3113
3164
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
3114
3165
|
],
|
|
3115
3166
|
"breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
|
|
3116
|
-
"auditDigest": "sha256:
|
|
3167
|
+
"auditDigest": "sha256:54bf2db92237cad97da1dc740780330e6175b97352523db732c8650560f1a9fd"
|
|
3117
3168
|
},
|
|
3118
3169
|
{
|
|
3119
3170
|
"contractVersion": 1,
|
|
@@ -3174,7 +3225,7 @@
|
|
|
3174
3225
|
"controllerDescriptor": {
|
|
3175
3226
|
"contract": "buildchain.controller-descriptor/v1",
|
|
3176
3227
|
"digest": "sha256:f97656a8df0758c8e404d5b7c387529256a1ec45d1748f8efb6847a3256b1216",
|
|
3177
|
-
"registryDigest": "sha256:
|
|
3228
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
3178
3229
|
"inputClassifications": {
|
|
3179
3230
|
"buildchain-ref": {
|
|
3180
3231
|
"classification": "included",
|
|
@@ -3297,7 +3348,7 @@
|
|
|
3297
3348
|
"controllerDescriptor": {
|
|
3298
3349
|
"contract": "buildchain.controller-descriptor/v1",
|
|
3299
3350
|
"digest": "sha256:b6f53563c0adc859bc586c05fce560a5094d7d9666438d63c5fd3e1fc4774555",
|
|
3300
|
-
"registryDigest": "sha256:
|
|
3351
|
+
"registryDigest": "sha256:2d022091ac72303cc5fab5888de3dfd5aecfc8520281f753d963ac7208828d6f",
|
|
3301
3352
|
"inputClassifications": {}
|
|
3302
3353
|
},
|
|
3303
3354
|
"guarantees": [
|
|
@@ -3311,5 +3362,5 @@
|
|
|
3311
3362
|
}
|
|
3312
3363
|
],
|
|
3313
3364
|
"compatibilityDigest": "sha256:008b1c5a90a787cf30106829ac7aca68ab501f6d9c375e415d9c5c6b89039f46",
|
|
3314
|
-
"contractDigest": "sha256:
|
|
3365
|
+
"contractDigest": "sha256:8b3db665d04a98e1c40ff386f164525a63699fd13c345bea2bc3e09f70656a07"
|
|
3315
3366
|
}
|