@kungfu-tech/buildchain 3.0.8 → 3.0.9-alpha.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/actions/promote-buildchain-ref/README.md +8 -7
- package/bin/buildchain.mjs +34 -33
- package/bin/internal/trust-release-release-handlers.mjs +5 -0
- package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-perspective.json +16 -0
- package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-replay.json +57 -0
- package/contracts/release-cut-v1.schema.json +1 -0
- package/contracts/release-train-transition-v1.schema.json +1 -0
- package/dist/site/agent-index.json +0 -1
- package/dist/site/artifact-schemas.json +0 -2
- package/dist/site/badge-endpoint-registry.json +9 -9
- package/dist/site/badges/v1/kfd-8/aligned.json +1 -1
- package/dist/site/badges/v1/kfd-8/declared.json +1 -1
- package/dist/site/badges/v1/kfd-8/downgraded.json +1 -1
- package/dist/site/badges/v1/kfd-8/draft.json +1 -1
- package/dist/site/badges/v1/kfd-8/failed.json +1 -1
- package/dist/site/badges/v1/kfd-8/missing.json +1 -1
- package/dist/site/badges/v1/kfd-8/passed.json +1 -1
- package/dist/site/badges/v1/kfd-8/planned.json +1 -1
- package/dist/site/buildchain-contract.json +38 -34
- package/dist/site/buildchain-site.json +59 -39
- package/dist/site/capability-registry.json +1 -1
- package/dist/site/cli-registry.json +8 -7
- package/dist/site/controller-registry.json +13 -5
- package/dist/site/kfd-claims.json +35 -8
- package/dist/site/kfd-upstream-aggregate.json +10 -10
- package/dist/site/manual-registry.json +9 -9
- package/dist/site/node-api-registry.json +1143 -320
- package/dist/site/page-registry.json +46 -26
- package/dist/site/public-surface-audit.json +19 -9
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-passport-check-manifest.json +33 -5
- package/dist/site/release-provenance.json +2 -1
- package/dist/site/schemas/release-passport-v1.schema.json +3 -0
- package/dist/site/site-manifest.json +13 -13
- package/dist/site/workflow-registry.json +19 -9
- package/docs/aws-us-elastic-runner-burst-plane.md +15 -3
- package/docs/cli-reference.md +6 -6
- package/docs/cli.md +2 -3
- package/docs/dev-alpha-candidate-patrol.md +45 -20
- package/docs/dev-delivery-warrant.md +12 -2
- package/docs/kfd-support.md +7 -7
- package/docs/node-api-reference.md +295 -246
- package/docs/release-passport.md +25 -12
- package/docs/release-train.md +54 -4
- package/docs/reusable-build-surface.md +26 -9
- package/docs/runtime-train-validation.md +6 -0
- package/docs/versioning.md +3 -2
- package/package.json +4 -3
- package/packages/core/artifact-verification-envelope.js +114 -0
- package/packages/core/buildchain-channel-identity.js +119 -0
- package/packages/core/buildchain-compatibility-proof.js +32 -0
- package/packages/core/buildchain-contract.js +7 -0
- package/packages/core/controller-evidence.js +2 -1
- package/packages/core/dev-alpha-active-release-train.js +460 -0
- package/packages/core/dev-alpha-candidate-selection.js +181 -0
- package/packages/core/dev-delivery-warrant.js +15 -4
- package/packages/core/index.js +4 -5
- package/packages/core/kfd-adopter-manifest.js +390 -0
- package/packages/core/kfd-product-gates.js +0 -300
- package/packages/core/release-blocker-priority.js +192 -0
- package/packages/core/release-passport-contract.js +219 -6
- package/packages/core/release-passport.js +139 -242
- package/packages/core/release-train.js +220 -0
- package/scripts/aws-macos-jit-controller-core.mjs +76 -0
- package/scripts/aws-macos-jit-controller.mjs +29 -0
- package/scripts/aws-macos-jit-source-rebind.mjs +503 -0
- package/scripts/buildchain-channel-router.mjs +18 -2
- package/scripts/buildchain-cli-help.mjs +4 -2
- package/scripts/buildchain-contract-lock.mjs +11 -1
- package/scripts/check-inventory.mjs +4 -4
- package/scripts/dev-alpha-candidate-patrol.mjs +196 -201
- package/scripts/generate-buildchain-kfd-witnesses.mjs +88 -94
- package/scripts/generate-channel-build-workflow.mjs +78 -31
- package/scripts/generate-site-bundle.mjs +1 -8
- package/scripts/promotion-channel-router.mjs +5 -3
- package/scripts/release-train-self-dogfood.mjs +579 -0
- package/scripts/runtime-ref-core.mjs +4 -17
- package/scripts/site-capability-metadata.mjs +3 -1
- package/dist/site/schemas/kfd-support-projection-v1.schema.json +0 -106
|
@@ -403,13 +403,14 @@ product-owned `release-passport-kfd-3-artifact-verify-command` such as
|
|
|
403
403
|
`kungfu agent verify --json`. Buildchain compares declared shipped public
|
|
404
404
|
surfaces with artifact-exposed public surfaces and writes the result under the
|
|
405
405
|
KFD-provided `kfd-3` passport section.
|
|
406
|
-
Set `release-passport-kfd-
|
|
407
|
-
|
|
408
|
-
newline-separated KFD-4, KFD-5, and KFD-7 gate results. Buildchain
|
|
409
|
-
|
|
410
|
-
gate
|
|
411
|
-
|
|
412
|
-
|
|
406
|
+
Set `release-passport-kfd-adopter-manifest-json` to the standard full-cut
|
|
407
|
+
adopter manifest and `release-passport-kfd-product-gate-jsons` to the
|
|
408
|
+
newline-separated KFD-4, KFD-5, and KFD-7 gate results. Buildchain binds the
|
|
409
|
+
exact published KFD package, registry, verifier set, source, decision witness,
|
|
410
|
+
and product-gate roots into both Passport and artifact evidence. The optional
|
|
411
|
+
`release-passport-kfd-support-matrix-json` is comparison-only; it must exactly
|
|
412
|
+
match the derived `kfd-support.json` compatibility projection and cannot widen
|
|
413
|
+
candidate, unsupported, draft, or non-shipped states.
|
|
413
414
|
Set `release-passport-invariant-passport-jsons` to one or more product-owned
|
|
414
415
|
invariant Passport paths, or set `release-passport-invariant-passport-command`
|
|
415
416
|
to a command that emits one canonical Passport JSON document. Buildchain does
|
package/bin/buildchain.mjs
CHANGED
|
@@ -80,11 +80,14 @@ import {
|
|
|
80
80
|
registerKfd3Surfaces,
|
|
81
81
|
} from "../packages/core/kfd3-surface-register.js";
|
|
82
82
|
import {
|
|
83
|
-
createKfdSupportProjection,
|
|
84
83
|
evaluateKfdProductGate,
|
|
85
84
|
validateKfdProductGateResult,
|
|
86
|
-
validateKfdSupportProjection,
|
|
87
85
|
} from "../packages/core/kfd-product-gates.js";
|
|
86
|
+
import {
|
|
87
|
+
createKfdLegacySupportMatrixProjection,
|
|
88
|
+
validateKfdAdopterManifestGate,
|
|
89
|
+
validateKfdLegacySupportMatrixProjection,
|
|
90
|
+
} from "../packages/core/kfd-adopter-manifest.js";
|
|
88
91
|
import { createBuildchainLayoutDiscovery } from "../packages/core/buildchain-layout.js";
|
|
89
92
|
import { createPortableDevCachePlan, createPortableDevCacheReceipt } from "../packages/core/portable-dev-cache.js";
|
|
90
93
|
import {
|
|
@@ -727,56 +730,54 @@ function runKfdSupportCli(args = []) {
|
|
|
727
730
|
const [action = "", ...rest] = args;
|
|
728
731
|
const cwd = path.resolve(readFlag(rest, "cwd", process.cwd()));
|
|
729
732
|
const json = readBooleanFlag(rest, "json");
|
|
730
|
-
const
|
|
733
|
+
const requestedCheckedAt = readFlag(rest, "checked-at", "");
|
|
731
734
|
const expectedSourceSha = readFlag(rest, "expected-source-sha", "");
|
|
732
735
|
if (action === "project") {
|
|
733
|
-
const
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
const
|
|
739
|
-
const
|
|
740
|
-
|
|
741
|
-
: "";
|
|
742
|
-
const gateResults = readRepeatedJsonInputs(rest, "gate-json", {
|
|
743
|
-
cwd,
|
|
744
|
-
label: "KFD product gate result",
|
|
745
|
-
});
|
|
746
|
-
const result = createKfdSupportProjection({
|
|
747
|
-
matrix,
|
|
748
|
-
matrixRoot,
|
|
749
|
-
gateResults,
|
|
736
|
+
const manifestInput = readFlag(rest, "manifest-json", "");
|
|
737
|
+
const gateInput = readFlag(rest, "manifest-gate-json", "");
|
|
738
|
+
if (!manifestInput || !gateInput) {
|
|
739
|
+
throw new Error("buildchain kfd support project requires --manifest-json and --manifest-gate-json");
|
|
740
|
+
}
|
|
741
|
+
const manifest = readJsonInput(manifestInput, { cwd, label: "KFD adopter manifest" });
|
|
742
|
+
const manifestGate = readJsonInput(gateInput, { cwd, label: "KFD adopter manifest gate" });
|
|
743
|
+
const gateValidation = validateKfdAdopterManifestGate(manifestGate, {
|
|
750
744
|
expectedSourceSha,
|
|
751
|
-
checkedAt,
|
|
745
|
+
checkedAt: requestedCheckedAt || manifestGate.checkedAt,
|
|
752
746
|
});
|
|
747
|
+
if (!gateValidation.valid) throw new Error(`KFD adopter manifest gate is invalid: ${JSON.stringify(gateValidation.issues)}`);
|
|
748
|
+
const result = createKfdLegacySupportMatrixProjection({ manifest, manifestGate });
|
|
753
749
|
const output = readFlag(rest, "output", "");
|
|
754
750
|
if (output) writeJsonFile(path.resolve(cwd, output), result);
|
|
755
751
|
if (json || !output) {
|
|
756
752
|
printJson(result);
|
|
757
753
|
} else {
|
|
758
|
-
process.stdout.write(`KFD support projection:
|
|
759
|
-
for (const entry of result.issues) {
|
|
760
|
-
process.stdout.write(`- ${entry.code}: ${entry.path}: ${entry.message}\n`);
|
|
761
|
-
}
|
|
754
|
+
process.stdout.write(`KFD support projection: passed -> ${output}\n`);
|
|
762
755
|
}
|
|
763
|
-
if (result.status !== "passed") process.exitCode = 1;
|
|
764
756
|
return;
|
|
765
757
|
}
|
|
766
758
|
if (action === "verify") {
|
|
767
759
|
const projectionInput = readFlag(rest, "projection-json", "");
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
760
|
+
const manifestInput = readFlag(rest, "manifest-json", "");
|
|
761
|
+
const gateInput = readFlag(rest, "manifest-gate-json", "");
|
|
762
|
+
if (!projectionInput || !manifestInput || !gateInput) {
|
|
763
|
+
throw new Error("buildchain kfd support verify requires --projection-json, --manifest-json, and --manifest-gate-json");
|
|
764
|
+
}
|
|
765
|
+
const manifest = readJsonInput(manifestInput, { cwd, label: "KFD adopter manifest" });
|
|
766
|
+
const manifestGate = readJsonInput(gateInput, { cwd, label: "KFD adopter manifest gate" });
|
|
767
|
+
const gateValidation = validateKfdAdopterManifestGate(manifestGate, {
|
|
768
|
+
expectedSourceSha,
|
|
769
|
+
checkedAt: requestedCheckedAt || manifestGate.checkedAt,
|
|
770
|
+
});
|
|
771
|
+
const result = validateKfdLegacySupportMatrixProjection(
|
|
772
772
|
readJsonInput(projectionInput, { cwd, label: "KFD support projection" }),
|
|
773
|
-
{
|
|
773
|
+
{ manifest, manifestGate },
|
|
774
774
|
);
|
|
775
|
+
const issues = [...gateValidation.issues, ...result.issues];
|
|
775
776
|
const report = {
|
|
776
777
|
schemaVersion: 1,
|
|
777
778
|
contract: "kungfu-buildchain-kfd-support-projection-verification",
|
|
778
|
-
ok:
|
|
779
|
-
issues
|
|
779
|
+
ok: issues.length === 0,
|
|
780
|
+
issues,
|
|
780
781
|
};
|
|
781
782
|
if (json) printJson(report);
|
|
782
783
|
else process.stdout.write(`KFD support projection verify: ${report.ok ? "passed" : "failed"}\n`);
|
|
@@ -242,6 +242,11 @@ async function handleCollectCommand({ args, runScript, packageVersion }) {
|
|
|
242
242
|
"kfd-3-artifact-verify-cmd",
|
|
243
243
|
"",
|
|
244
244
|
),
|
|
245
|
+
kfdAdopterManifestJson: readFlag(
|
|
246
|
+
collectArgs,
|
|
247
|
+
"kfd-adopter-manifest-json",
|
|
248
|
+
"",
|
|
249
|
+
),
|
|
245
250
|
kfdSupportMatrixJson: readFlag(collectArgs, "kfd-support-matrix-json", ""),
|
|
246
251
|
kfdProductGateJsons: readRepeatedFlag(collectArgs, "kfd-product-gate-json"),
|
|
247
252
|
invariantPassportJsons: readRepeatedFlag(
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kfd-4-observer-perspective",
|
|
4
|
+
"standard": "kfd-4",
|
|
5
|
+
"id": "buildchain-release-maintainer-view",
|
|
6
|
+
"observer": { "id": "buildchain-release-maintainer", "kind": "human" },
|
|
7
|
+
"acceptedFacts": [
|
|
8
|
+
{ "sourceId": "kungfu-systems/buildchain@{{SOURCE_SHA}}", "sourceKind": "repository" }
|
|
9
|
+
],
|
|
10
|
+
"projectionPolicy": {
|
|
11
|
+
"policyVersion": "1",
|
|
12
|
+
"causalDominance": true,
|
|
13
|
+
"tieBreaker": "source-coordinate"
|
|
14
|
+
},
|
|
15
|
+
"verification": { "result": "pass" }
|
|
16
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kfd-4-perspective-replay",
|
|
4
|
+
"standard": "kfd-4",
|
|
5
|
+
"replayId": "buildchain-release-product-contrast",
|
|
6
|
+
"mode": "contrastive",
|
|
7
|
+
"sourceViews": [
|
|
8
|
+
{
|
|
9
|
+
"id": "maintainer",
|
|
10
|
+
"kind": "observer-view",
|
|
11
|
+
"coordinate": "git://kungfu-systems/buildchain@{{SOURCE_SHA}}",
|
|
12
|
+
"observer": "buildchain-release-maintainer",
|
|
13
|
+
"perspective": "release-integrity",
|
|
14
|
+
"acceptedFactCut": "git://kungfu-systems/buildchain@{{SOURCE_SHA}}",
|
|
15
|
+
"naturalObjects": ["release"],
|
|
16
|
+
"consequences": ["published artifact"],
|
|
17
|
+
"knownGaps": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "consumer",
|
|
21
|
+
"kind": "observer-view",
|
|
22
|
+
"coordinate": "npm://@kungfu-tech/buildchain@{{SOURCE_SHA}}",
|
|
23
|
+
"observer": "buildchain-release-consumer",
|
|
24
|
+
"perspective": "artifact-consumption",
|
|
25
|
+
"acceptedFactCut": "artifact://published-package",
|
|
26
|
+
"naturalObjects": ["installed package"],
|
|
27
|
+
"consequences": ["local build execution"],
|
|
28
|
+
"knownGaps": ["consumer runtime state"]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"replayObserver": {
|
|
32
|
+
"id": "buildchain",
|
|
33
|
+
"kind": "service",
|
|
34
|
+
"purpose": "retain source and artifact fact boundaries"
|
|
35
|
+
},
|
|
36
|
+
"reconstruction": {
|
|
37
|
+
"policyVersion": "1",
|
|
38
|
+
"sharedContext": "same source-bound release",
|
|
39
|
+
"preservedElements": ["observer", "accepted-fact-cut", "evidence-boundary"],
|
|
40
|
+
"declaredLoss": ["consumer runtime state"],
|
|
41
|
+
"degradedState": "none"
|
|
42
|
+
},
|
|
43
|
+
"contrast": {
|
|
44
|
+
"dimensions": ["evidence-boundary"],
|
|
45
|
+
"mismatches": [
|
|
46
|
+
{
|
|
47
|
+
"sourceViewIds": ["maintainer", "consumer"],
|
|
48
|
+
"observation": "source and installed artifact evidence have different custody",
|
|
49
|
+
"primitiveSignal": "inconclusive"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"verification": {
|
|
54
|
+
"result": "pass",
|
|
55
|
+
"evidence": ["evidence/projection-fsck.json"]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"schemas/release-tail-provider-bindings-v1.schema.json",
|
|
23
23
|
"schemas/kfd-agent-hub-adoption.schema.json",
|
|
24
24
|
"schemas/kfd-product-gate-input-v1.schema.json",
|
|
25
|
-
"schemas/kfd-support-projection-v1.schema.json",
|
|
26
25
|
"buildchain-contract.json",
|
|
27
26
|
"kfd-upstream-aggregate.json",
|
|
28
27
|
"kfd-claims.json",
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"schemas/release-tail-provider-bindings-v1.schema.json",
|
|
11
11
|
"schemas/kfd-agent-hub-adoption.schema.json",
|
|
12
12
|
"schemas/kfd-product-gate-input-v1.schema.json",
|
|
13
|
-
"schemas/kfd-support-projection-v1.schema.json",
|
|
14
13
|
"kfd-support.json",
|
|
15
14
|
"artifact-evidence.json",
|
|
16
15
|
"product-mechanism.json",
|
|
@@ -48,7 +47,6 @@
|
|
|
48
47
|
"schemas/release-tail-provider-bindings-v1.schema.json",
|
|
49
48
|
"schemas/kfd-agent-hub-adoption.schema.json",
|
|
50
49
|
"schemas/kfd-product-gate-input-v1.schema.json",
|
|
51
|
-
"schemas/kfd-support-projection-v1.schema.json",
|
|
52
50
|
"buildchain-contract.json",
|
|
53
51
|
"kfd-claims.json",
|
|
54
52
|
"product-mechanism.json",
|
|
@@ -1138,7 +1138,7 @@
|
|
|
1138
1138
|
{
|
|
1139
1139
|
"id": "kfd-8",
|
|
1140
1140
|
"label": "KFD-8",
|
|
1141
|
-
"messageTemplate": "
|
|
1141
|
+
"messageTemplate": "KFD-8 {state}",
|
|
1142
1142
|
"linkRole": "repository-release-passport",
|
|
1143
1143
|
"states": [
|
|
1144
1144
|
{
|
|
@@ -1148,7 +1148,7 @@
|
|
|
1148
1148
|
"payload": {
|
|
1149
1149
|
"schemaVersion": 1,
|
|
1150
1150
|
"label": "KFD-8",
|
|
1151
|
-
"message": "
|
|
1151
|
+
"message": "KFD-8 passed",
|
|
1152
1152
|
"color": "2ea44f",
|
|
1153
1153
|
"logoPolicy": {
|
|
1154
1154
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1167,7 +1167,7 @@
|
|
|
1167
1167
|
"payload": {
|
|
1168
1168
|
"schemaVersion": 1,
|
|
1169
1169
|
"label": "KFD-8",
|
|
1170
|
-
"message": "
|
|
1170
|
+
"message": "KFD-8 aligned",
|
|
1171
1171
|
"color": "0969da",
|
|
1172
1172
|
"logoPolicy": {
|
|
1173
1173
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1186,7 +1186,7 @@
|
|
|
1186
1186
|
"payload": {
|
|
1187
1187
|
"schemaVersion": 1,
|
|
1188
1188
|
"label": "KFD-8",
|
|
1189
|
-
"message": "
|
|
1189
|
+
"message": "KFD-8 declared",
|
|
1190
1190
|
"color": "6e7781",
|
|
1191
1191
|
"logoPolicy": {
|
|
1192
1192
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1205,7 +1205,7 @@
|
|
|
1205
1205
|
"payload": {
|
|
1206
1206
|
"schemaVersion": 1,
|
|
1207
1207
|
"label": "KFD-8",
|
|
1208
|
-
"message": "
|
|
1208
|
+
"message": "KFD-8 planned",
|
|
1209
1209
|
"color": "bf8700",
|
|
1210
1210
|
"logoPolicy": {
|
|
1211
1211
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1224,7 +1224,7 @@
|
|
|
1224
1224
|
"payload": {
|
|
1225
1225
|
"schemaVersion": 1,
|
|
1226
1226
|
"label": "KFD-8",
|
|
1227
|
-
"message": "
|
|
1227
|
+
"message": "KFD-8 draft",
|
|
1228
1228
|
"color": "8250df",
|
|
1229
1229
|
"logoPolicy": {
|
|
1230
1230
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1243,7 +1243,7 @@
|
|
|
1243
1243
|
"payload": {
|
|
1244
1244
|
"schemaVersion": 1,
|
|
1245
1245
|
"label": "KFD-8",
|
|
1246
|
-
"message": "
|
|
1246
|
+
"message": "KFD-8 downgraded",
|
|
1247
1247
|
"color": "bf8700",
|
|
1248
1248
|
"logoPolicy": {
|
|
1249
1249
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1262,7 +1262,7 @@
|
|
|
1262
1262
|
"payload": {
|
|
1263
1263
|
"schemaVersion": 1,
|
|
1264
1264
|
"label": "KFD-8",
|
|
1265
|
-
"message": "
|
|
1265
|
+
"message": "KFD-8 failed",
|
|
1266
1266
|
"color": "cf222e",
|
|
1267
1267
|
"logoPolicy": {
|
|
1268
1268
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1281,7 +1281,7 @@
|
|
|
1281
1281
|
"payload": {
|
|
1282
1282
|
"schemaVersion": 1,
|
|
1283
1283
|
"label": "KFD-8",
|
|
1284
|
-
"message": "
|
|
1284
|
+
"message": "KFD-8 missing",
|
|
1285
1285
|
"color": "6e7781",
|
|
1286
1286
|
"logoPolicy": {
|
|
1287
1287
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 aligned",
|
|
5
5
|
"color": "0969da",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 declared",
|
|
5
5
|
"color": "6e7781",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 downgraded",
|
|
5
5
|
"color": "bf8700",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 draft",
|
|
5
5
|
"color": "8250df",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 failed",
|
|
5
5
|
"color": "cf222e",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 missing",
|
|
5
5
|
"color": "6e7781",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 passed",
|
|
5
5
|
"color": "2ea44f",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"label": "KFD-8",
|
|
4
|
-
"message": "
|
|
4
|
+
"message": "KFD-8 planned",
|
|
5
5
|
"color": "bf8700",
|
|
6
6
|
"logoPolicy": {
|
|
7
7
|
"contract": "kungfu-buildchain-badge-logo-policy",
|