Woodpecker v3.20.1-CE-ubuntu24.04-r1 build trail
How ReadyStack built readystack/woodpecker:v3.20.1-CE-ubuntu24.04-r1 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/woodpecker:v3.20.1-CE-ubuntu24.04-r1 - Index digestsha256:c9a37524cca176db982104db7aa087782321bb170274f4e77ebc4e7e887d6f33
- linux/amd64 digestsha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea
- Archive
ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz - Archive SHA-256 now57ca36221390f77891e08d6741c3e1a54ce5949d765006eebe475d91ea833105
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-09T15:19:32Z by KitForge release/build_trail.py
- Sections9 sections, 8 fully recorded; 1 item not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.trail.json.sigstore ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductWoodpecker (woodpecker) [MANIFEST.json]
- Release tagv3.20.1-CE-ubuntu24.04-r1 [MANIFEST.json]
- Imagereadystack/woodpecker:v3.20.1-CE-ubuntu24.04-r1 [MANIFEST.json]
- Image index digestsha256:c9a37524cca176db982104db7aa087782321bb170274f4e77ebc4e7e887d6f33 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea [ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz (bytes 510535666) [MANIFEST.json]
- Archive sha256 at publish57ca36221390f77891e08d6741c3e1a54ce5949d765006eebe475d91ea833105 [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
- Upstream repositoryhttps://github.com/woodpecker-ci/woodpecker [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv3.20.1 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit3f1bb0bd0db28e410ad797034d75780116122c91 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashd66ceaca9c7b409dcb5c895a1aa9e92a77c3345e3a99f9125c0cba89bd06e09c (files 1736) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:17d84568228c703adabd675e05e16f7a044325cb17bf393c6b41c2f0c01aad78 [ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1793302722 (utc 2026-10-29T19:38:42Z) [ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.rebuild.json, inputs.source_date_epoch]
- Base images
- ref golang:1.27.3-bookworm@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5 · platform digest sha256:fea12ba16096adec0f699ce1c4da2154d320450e56c1f63671f95d2a3551c77b
- ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.rebuild.json, engine]
- Engine commit(s)
- commit c20aa19bc0ab8c9fef7ff40e1f6a18c4169b166e · dirty yes · first drive 3839
- commit 567cdfb885bf0ce20007674847d596470bb7360f · dirty yes · first drive 3862
- commit 56ff0831ecebed815a837c90402216ab4c9685cd · dirty yes · first drive 3905
- commit b29f462ba272213173a4375440fb6180b85d1510 · dirty yes · first drive 3916
- commit 97b0018368740f49044fa71c7402a6680999e669 · dirty yes · first drive 3919
- commit 92f2f07d6805e851f28fd697333da6ed7c235c16 · dirty yes · first drive 3921
- commit 9f41ab74d9d3a9eb9a02d518e82effca6659bf55 · dirty yes · first drive 3927
- commit cff175c7916b19e138784c06e8e05392550947fe · dirty yes · first drive 3941
- commit 893ddf91074580cc5f11ded7558920733b65fc43 · dirty yes · first drive 3942
- commit 3129b4dca8b836efd047cb995ff6df15301a7ff6 · dirty yes · first drive 3958
- commit 194d03b190b87186e97e0197f890de6db920b757 · dirty yes · first drive 3964
- commit 0f08e26ee402fd26c98aca5274d6a37e78400064 · dirty yes · first drive 3970
- commit b5c9dcd9199edee322072a4a29a36a940f9c45a9 · dirty yes · first drive 4052
Why this release exists
Fully recorded- Chain894 (created 2026-11-08T16:54:44Z · trigger customer_request · upstream version v3.20.1) [chains, chains #894]
- Requestbuild request #590 (rebuild) (requested at 2026-11-08T15:08:59Z · requested by kitforge-agent · version v3.20.1) [build_requests, build_requests #590]
- Reasonretarget to v3.20.1: a newer upstream release (rule 1) [build_requests, build_requests #590 request_reason]
- Supersedesreadystack/woodpecker:v3.19.0-CE-ubuntu24.04-r2 (chain 694) [chains, chains #694]
The path through the harness
Fully recorded2 chains · 16 drives · 18 stages · 6 rewinds
Chain 736 behind it · abandoned
Created 2026-10-28T00:03:55Z, upstream v3.19.0, build request 420 [chains, chains #736]
Abandoned: chain 736 abandoned: stale (it targets 'v3.19.0', the strategy 'v3.20.1') [watch_queue, watch_queue #12443 resolution]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 818 | 2026-10-28T00:04:17Z | 50.5 | build host 4 withhold-publish | ready_to_ship [drive_runs, drive_runs #818] rebuilt from a build line's log |
| 824 | 2026-10-28T03:14:41Z | 7.5 | build host 4 withhold-publish | stage_failed at package_archive [drive_runs, drive_runs #824] rebuilt from a build line's log |
| 3755 | 2026-11-08T10:09:30Z | 2.1 | build host 4 withhold-publish | stage_failed at assemble_kit; first failed check exists:first_build_digest; 1 tick [drive_runs, drive_runs #3755] |
Chain 894 release · ready_to_ship
Created 2026-11-08T16:54:44Z, upstream v3.20.1, build request 590 [chains, chains #894]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3839 | 2026-11-08T16:55:05Z | 60 | build host 4 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 18 ticks [drive_runs, drive_runs #3839] |
| 3862 | 2026-11-08T18:40:09Z | 10.4 | build host 4 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 1 tick [drive_runs, drive_runs #3862] |
| 3905 | 2026-11-09T00:14:52Z | 7 | build host 4 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3905] |
| 3916 | 2026-11-09T01:20:38Z | 3.5 | build host 4 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3916] |
| 3919 | 2026-11-09T01:51:04Z | 2.4 | build host 4 withhold-publish | stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #3919] |
| 3921 | 2026-11-09T01:57:19Z | 2 | build host 4 withhold-publish | stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #3921] |
| 3927 | 2026-11-09T02:28:56Z | 1.2 | build host 4 withhold-publish | stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #3927] |
| 3941 | 2026-11-09T03:43:32Z | 2.1 | build host 4 withhold-publish | stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #3941] |
| 3942 | 2026-11-09T03:52:56Z | 3.4 | build host 4 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3942] |
| 3958 | 2026-11-09T05:10:55Z | 3 | build host 4 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3958] |
| 3964 | 2026-11-09T05:40:45Z | 3.7 | build host 4 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3964] |
| 3970 | 2026-11-09T06:18:21Z | 3.4 | build host 4 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3970] |
| 4052 | 2026-11-09T15:14:48Z | — | build host 4 publish-held | not recorded [drive_runs, drive_runs #4052] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-08T16:55:16Z | 2026-11-08T16:55:17Z | 1 | 4
|
order_json 67f3b13b88b3… |
acquire |
2026-11-08T16:55:22Z | 2026-11-08T16:55:23Z | 1 | 12
|
source_tree 4f00153b23ba…license_file a203768e1e09…custody_inputs 1c79abc52f50…source_tree_hash d17811a5866e…source_file_manifest f348a3fa4f1e… |
plan |
2026-11-08T16:55:54Z | 2026-11-08T16:55:55Z | 1 | 10
|
recon_report ab91c286b770…input_pin_plan db3039947de9…toolchain_lock e20f98c531bb… |
assemble_kit |
2026-11-08T17:00:14Z | 2026-11-08T17:00:15Z | 1 | 27
|
dockerfile 1256cdbd4496…build_recipe 8a8c7f48aeaa…system_pinning aa8db05a9a8a…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health d9c8270d59c0…verify_offline_sh 3e8184ea230c…base_image_digests 5ff84f1a1b4b…dockerfile_offline 1256cdbd4496…first_build_digest 50f6c195afa0… |
remediate |
2026-11-08T17:00:45Z | 2026-11-08T17:00:45Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 445d9dbb50f8…security_report 0c0679d98d95… |
build_kit |
2026-11-08T17:06:25Z | 2026-11-08T17:06:26Z | 1 | 9
|
cosign_stamp 3bb4a8b24f6b…locked_digest 97759d15dc1a…freeze_manifest 7b85eaf98fdc…offline_rebuild_transcript a1f5c4003891… |
verdict |
2026-11-08T17:06:58Z | 2026-11-08T17:06:59Z | 1 | 8
|
scout_verdict 9760b87d7d79… |
publish_image |
2026-11-08T17:07:34Z | 2026-11-08T17:07:35Z | 1 | 7
|
hub_readme 6eabcfe4f92a…promotion_record 93024cffd347… |
boot_instance |
2026-11-08T17:07:40Z | 2026-11-08T17:07:46Z | 2 | 3
|
instance_handle 2e47bd3f03d1… |
sbom |
2026-11-08T17:07:55Z | 2026-11-08T17:07:56Z | 1 | 5
|
sbom_md 43b5d9435e13…sbom_json b6629830c609… |
schema_discovery |
2026-11-08T17:08:02Z | 2026-11-08T17:08:03Z | 1 | 7
|
schema_hash a6785dc1c3c1…dependency_tree d7466562c4b7…table_classification 1ce3557862ff… |
admin_handbook |
2026-11-08T17:17:32Z | 2026-11-08T17:17:33Z | 1 | 7
|
api_map ec55961a5137…admin_handbook 2be217946e22… |
db_handbook |
2026-11-08T17:26:17Z | 2026-11-08T17:26:18Z | 1 | 8
|
db_handbook e150c1ef9af6…seed_isolation 821dd7281789… |
seed_data |
2026-11-08T17:26:27Z | 2026-11-08T17:26:28Z | 1 | 6
|
seed_data_sql 6c5aa95e8381…seed_cases_json ae6df0212fb9… |
seed_validate |
2026-11-08T17:26:32Z | 2026-11-08T17:26:33Z | 1 | 3
|
seed_data_contract 150ec5178e1e… |
usecase_validate |
2026-11-08T17:26:56Z | 2026-11-08T17:26:56Z | 1 | 10
|
failed_tests c9f0e5d4353d…passed_tests e3b96768cd8c…test_results 45957d9660cc…usecase_contract 912c7b824c3c… |
finalize_docs |
2026-11-08T17:42:05Z | 2026-11-08T17:42:06Z | 1 | 9
|
defects_json 80ed4e0af402…release_notes 788265525283…api_integration_guide 08a5c90e3075… |
package_archive invalidated 2026-11-09T15:14:23Z |
2026-11-08T17:55:07Z | 2026-11-09T06:21:46Z | 12 | 34 (final gate PASS)
|
sale_tar 75aece0cd2ef…checksums fa981bc0e68a…verify_md 61824b39b49b…rebuild_md aba012c298bf…manifest_txt 36b7e8bf9c77…actions_jsonl cc1de01123b9…provenance_md f5cba422db10…assetchain_log_md e9eccaec0c0f…assetchain_log_json e6e8d87065f7… |
[stage_runs]
Rewinds
- 2026-11-09T00:46:42Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #27728] - 2026-11-09T01:49:35Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #27817] - 2026-11-09T05:10:09Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28028] - 2026-11-09T05:40:03Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28046] - 2026-11-09T06:16:58Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28082] - 2026-11-09T15:14:23Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29257]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-09T06:21:46Z.
268 calls over 6 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 7150 | L-A183, L-A15 |
remediate | 2 | 0 | 0 | 1 | 0 | 7679 | L-A183, L-A15 |
admin_handbook | 61 | 31 | 0 | 3 | 11 | 478256 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A155, L-A114, L-A25, L-A15, L-A14 |
db_handbook | 76 | 36 | 0 | 3 | 17 | 588245 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A114, L-A15 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1652 | L-A59 |
finalize_docs | 126 | 64 | 0 | 3 | 25 | 1003354 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A155, L-A114, L-A25, L-A15 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
6 rounds, 6 counted, $10.39 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-09T00:22:39Z | 2 | 10 | 22 | findings to repackage [held_rounds, held_rounds #1557] | $2.42 | 3 rounds, $40.00 | 4ea44ac3b953… |
| 2 | 2026-11-09T01:24:44Z | 0 | 0 | 40 | clean to repackage [held_rounds, held_rounds #1560] | $2.61 | 3 rounds, $40.00 | 66903eec1810… |
| 3 | 2026-11-09T03:56:53Z | 0 | 1 | 4 | findings to repackage [held_rounds, held_rounds #1580] | $1.71 | 3 rounds, $40.00 | e49f57731c3b… |
| 4 | 2026-11-09T05:14:25Z | 0 | 1 | 2 | findings to repackage [held_rounds, held_rounds #1583] | $0.88 | 3 rounds, $40.00 | e5cf4a20f8e7… |
| 5 | 2026-11-09T05:45:04Z | 0 | 2 | 19 | findings to repackage [held_rounds, held_rounds #1587] | $2.46 | 3 rounds, $40.00 | 08ceac23e7cb… |
| 6 | 2026-11-09T06:23:02Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1591] | $0.31 | 3 rounds, $40.00 | 75aece0cd2ef… |
Defects
Fully recorded- Ledger entries103 [defects, defects where product_slug=woodpecker and this tag or chain]
- Disclosed in the archive101 [docs/defects/defects.json, entries]
103 ledger entries: by severity high 15, low 86, critical 2; by status fixed-in-release 2, fixed-before-release 101.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-woodpecker-a96a309974API guide: An integrator who reads the 'Endpoint reference' heading for POST /api/debug/pprof/symbol and then checks this 'not served' list to see if it's safe to rely on would wrongly conclude the POST route… [defects, defects #187792] | high | fixed-in-release | held review (review model) | v3.20.1-CE-ubuntu24.04-r1 |
RSD-woodpecker-77c2050e8bDatabase handbook: A customer following this bullet expects `docker exec <container> curl .../api/debug/pprof` (or a browser hit) to return profiling data; on the default log level it silently returns the web UI's… [defects, defects #187793] | low | fixed-in-release | held review (review model) | v3.20.1-CE-ubuntu24.04-r1 |
RSD-woodpecker-3cf02f5810Database handbook: A customer building a monitoring check or API client against this bullet expects GET /api/healthz to return health JSON/status; it returns the web UI's HTML fallback page (200) instead, which could… [defects, defects #187794] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f84fa999d0Database handbook: A customer building an API client against this bullet expects GET /api/version to return version data; it returns the web UI's HTML fallback page (200) instead of the {"source":...,"version":...}… [defects, defects #187795] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8479c66040Admin handbook: The documented database backup cannot run. [defects, defects #187944] | critical | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b2f11b3f91Admin handbook: The documented restore cannot run: same misplaced `-c` before the image, so docker rejects the command and nothing is written into wp-data-new; the customer then starts the server on an empty volume. [defects, defects #187945] | critical | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e0b9e1c8acAdmin handbook: Same misplaced `-c` before the image name: docker takes it as --cpu-shares and the command fails (held-run on the held digest: image 'echo hi' is not on this host). [defects, defects #187946] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-ede1d2f2c3Admin handbook: `docker run --rm --entrypoint sh IMAGE -c ...` and `docker exec woodpecker sh -c ...` ran on the held digest (sh is dash; `echo $0` printed sh). [defects, defects #187947] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fc2c5925b8Admin handbook: Measured on the held digest: with -e WOODPECKER_ADMIN='alice bob' GET /api/users shows alice without admin_env (the value is read as the single login 'alice bob'), whereas WOODPECKER_ADMIN=alice,bob… [defects, defects #187948] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-cc0e79182aDatabase handbook: Measured: GET /login on the held digest returns 200 (the web UI), GET /authorize returns 303 to https://github.com/login/oauth/authorize?...&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fauthorize. [defects, defects #187949] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f9761dd81fDatabase handbook: The server sends redirect_uri=<WOODPECKER_HOST>/authorize to GitHub (curl -D- on /authorize, held digest); /login is the web UI page. [defects, defects #187950] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-6750dd1276API guide: Measured on the held digest: started with WOODPECKER_GITHUB_SECRET='my new pass $x!' and ran sqlite3 'select oauth_client_id, oauth_client_secret from forges' -> cid|my new pass $x!. [defects, defects #187951] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e4b6334e0fAPI guide: IMAGE_BINARIES.txt lists 38 commands: sh, dash, cat, sqlite3, rs-probe, env, printf, sleep... [defects, defects #187952] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-55414e6713API guide: IMAGE_BINARIES.txt (38 commands incl. [defects, defects #187953] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-cf21a571a6API guide: Image name after `-c`: docker parses it as --cpu-shares and the command fails (held-run refused with the next word as the image); even if it ran, there is no -v so it would not see the data volume. [defects, defects #187954] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-6401e7e0d7API guide: Measured on the held digest with WOODPECKER_PROMETHEUS_AUTH_TOKEN=tk: no header 401, 'Bearer bad' 403, 'Authorization: bad' 403, 'Bearer tk' 200, ?access_token=tk 401; unset -> 404. [defects, defects #187955] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-0b95edc9bfAPI guide: Listed under 'The following endpoints are public and do not require a token' yet says it requires a token. [defects, defects #187956] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-bd126bddbcAPI guide: Measured: POST /api/user/token returns the same token every call and does not refresh it; the same guide says so at L604, L1220 and L2451. [defects, defects #187957] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-92612b9cdaAPI guide: Upstream v3.20.1 server/api/signature_public_key.go: 'Get server's signature public key' (ed25519 PEM); agent tokens are HMAC-signed with the gRPC secret (this guide L2083), not verified with this… [defects, defects #187958] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-9f61682cf7API guide: Same as L898: the key is not used for gRPC; agent tokens are signed with the shared gRPC secret. [defects, defects #187959] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-32509aa4c9Database handbook: Same as API guide L898: the endpoint is not used to verify agent credentials. [defects, defects #187960] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-4206dfb62aDatabase handbook: Same as API guide L898. [defects, defects #187961] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-78da8d71c8API guide: Measured: GET /api/agents and GET /api/agents/1 print the token field after creation; ADMIN_HANDBOOK L221 says administrators see it in the token field. [defects, defects #187962] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b244f6bcb1API guide: Measured: GET /api/nonexistent and GET /api/info return 200 text/html (the UI fallback); this guide says so itself at L2209. [defects, defects #187963] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5f5361a055API guide: Contradicts this guide at L1089/L2155 ('on reconnect it is refused and exits') and the 'AgentID not found in database ... [defects, defects #187964] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-449626a413API guide: Measured: GET /version and GET /api/version -> {"source":"https://github.com/woodpecker-ci/woodpecker","version":"3.20.1"}, no timestamp. [defects, defects #187965] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fcaa68090cAPI guide: Measured: POST /api/users bob -> 200; POST carol (later) -> 500 'on insert duplicate based on constraints was detected' while bob was still listed; it is not timing-related. [defects, defects #187966] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-121accb164API guide: No documented or measured API lets an administrator revoke another user's token; the sentence describes a 'token-to-revoke command' that does not exist. [defects, defects #187967] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-20ecc2d611API guide: Measured: /api/info and /api/nonexistent both 200 text/html. [defects, defects #187968] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-6a97724af5API guide: Measured: held-wait reported health=healthy 6 s after start. [defects, defects #187969] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-c3011c02f0Database handbook: IMAGE_CONFIG.json Healthcheck: Interval 5s, StartPeriod 15s, Timeout 60s; measured healthy after 6 s. [defects, defects #187970] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-1857d67e95Database handbook: StartPeriod is a grace period, not a delay; measured healthy 6 s after start. [defects, defects #187971] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-a99d543baeDatabase handbook: `/metrics` is served at the root (GET /metrics), not under /api, as the handbook itself shows (L898). [defects, defects #187972] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f81acd1814Database handbook: Agents reach the server through WOODPECKER_SERVER=host:9000 (ADMIN_HANDBOOK L983); WOODPECKER_HOST is the OAuth redirect base (measured redirect_uri=<HOST>/authorize), not an agent setting. [defects, defects #187973] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8e17c7c3fbDatabase handbook: Measured: container with only WOODPECKER_GITHUB=true and no agent secret reaches health=healthy. [defects, defects #187974] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-aa1b79f8daDatabase handbook: IMAGE_CONFIG.json Entrypoint: ["woodpecker-server"]; the binary is /usr/bin/woodpecker-server and `test -e /woodpecker-server` in the container says missing. [defects, defects #187975] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8c4e7f029dDatabase handbook: Contradicts the same section at L1249 and L1397 ('Keep this variable in your docker run command') and the Operating facts, which say a demoted login still listed is admin again after a restart. [defects, defects #187976] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-dac7e13109API guide: Contradicts this guide at L1611 ('keep it in your docker run command') and the handbooks' Operating facts. [defects, defects #187977] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-63cdf6edcdAdmin handbook: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188780] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-54cc2ecfc3Admin handbook: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188781] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f9bf8976eeAPI guide: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188782] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-c3d45def55Database handbook: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188783] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-91fe594cd9API guide: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188784] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-80d56ab005API guide: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188785] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-6b7c68f80cAPI guide: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188786] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-7727ee4cadAPI guide: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188787] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-ed6545f857API guide: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188788] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b094bf4968API guide: Measured on the held digest (GitHub configured): GET /api/forges -> [{"id":1,"type":"github","url":"https://github.com"}] - only the configured forge, not the supported ones. [defects, defects #188789] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-0e4e52b9a9Admin handbook: Upstream v3.20.1 server/api/signature_public_key.go: 'Get server's signature public key' (ed25519 PEM, text/plain 200). [defects, defects #188790] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-ed1460a767API guide: Upstream v3.20.1 server/api/signature_public_key.go: 'Get server's signature public key' (ed25519 PEM, text/plain 200). [defects, defects #188791] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b8b5147234API guide: Upstream v3.20.1 server/api/signature_public_key.go: 'Get server's signature public key' (ed25519 PEM, text/plain 200). [defects, defects #188792] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-aefdad5094Admin handbook: Measured on the held digest with WOODPECKER_PROMETHEUS_AUTH_TOKEN set (round-1 measurement, same behaviour): no header 401, wrong token 403, correct Bearer token 200. [defects, defects #188793] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8e350728b3Database handbook: Measured on the held digest with WOODPECKER_PROMETHEUS_AUTH_TOKEN set (round-1 measurement, same behaviour): no header 401, wrong token 403, correct Bearer token 200. [defects, defects #188794] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-c62f50be16API guide: Agents reach the server through WOODPECKER_SERVER=host:9000 (ADMIN_HANDBOOK L976-979); WOODPECKER_HOST is the base of the OAuth redirect (measured earlier: redirect_uri=<WOODPECKER_HOST>/authorize)… [defects, defects #188795] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-290a073b65API guide: Agents reach the server through WOODPECKER_SERVER=host:9000 (ADMIN_HANDBOOK L976-979); WOODPECKER_HOST is the base of the OAuth redirect (measured earlier: redirect_uri=<WOODPECKER_HOST>/authorize)… [defects, defects #188796] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-69896e85feAPI guide: Agents reach the server through WOODPECKER_SERVER=host:9000 (ADMIN_HANDBOOK L976-979); WOODPECKER_HOST is the base of the OAuth redirect (measured earlier: redirect_uri=<WOODPECKER_HOST>/authorize)… [defects, defects #188797] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b9c1231c20API guide: Contradiction inside the shipped documents: they also print `-e WOODPECKER_AGENT_SECRET=...` (API guide L1676 and L2095; ADMIN_HANDBOOK L1015 and Operating facts L218; DB_HANDBOOK Operating facts… [defects, defects #188798] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-ba418ee6e1Database handbook: Contradiction inside the shipped documents: they also print `-e WOODPECKER_AGENT_SECRET=...` (API guide L1676 and L2095; ADMIN_HANDBOOK L1015 and Operating facts L218; DB_HANDBOOK Operating facts… [defects, defects #188799] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-db114ab717API guide: Contradiction inside the shipped documents: they also print `-e WOODPECKER_AGENT_SECRET=...` (API guide L1676 and L2095; ADMIN_HANDBOOK L1015 and Operating facts L218; DB_HANDBOOK Operating facts… [defects, defects #188800] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-6a7f18a042API guide: Same guide, L1018 'The gRPC connection is plain text' and L2076 'The signing key signs agent tokens but does not encrypt the connection'; IMAGE_CONFIG.json exposes 9000/tcp with no TLS setting. [defects, defects #188801] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-c9e7c6eb87API guide: The same guide (L1868, L1919-1921) and both handbooks say the backup holds the OAuth client secret, forge access/refresh tokens and agent secrets in plain text (measured: forges.oauth_client_secret… [defects, defects #188802] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-1ecc2f67c9API guide: Upstream v3.20.1 server/api/user.go PostToken/DeleteToken act on session.User(c), the caller. [defects, defects #188803] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f9d6b0a37cDatabase handbook: Measured on the held digest: two POST /api/user/token calls returned the identical string, equal to the token used to authenticate (the call itself needs a valid token). [defects, defects #188804] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-86eba29d94Database handbook: DB_HANDBOOK has no 'Installation' section (headings: Introduction, Operating facts, Architecture Overview, System Requirements, Running the Container, ... [defects, defects #188805] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-4f93e51322Database handbook: Measured on the held digest: WOODPECKER_GITLAB=true with only _CLIENT and _SECRET starts healthy and writes forges row gitlab|https://gitlab.com. [defects, defects #188806] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-a261f8f48eAPI guide: Measured: GitLab starts and defaults to gitlab|https://gitlab.com without WOODPECKER_GITLAB_URL; ADMIN_HANDBOOK L715 and DB_HANDBOOK L757 say optional. [defects, defects #188807] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-739b306aa6Database handbook: RELEASE_NOTES 'Base image: none (FROM scratch): a chiselled Ubuntu 24.04 runtime'; ADMIN_HANDBOOK L333 'chiselled Ubuntu runtime'; IMAGE_BINARIES.txt lists 38 commands (no ls, id, tar, bash). [defects, defects #188808] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5c0e436b45Database handbook: Held-digest startup log order: 'Initializing Schema' ... [defects, defects #188809] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5148c2c569Database handbook: DB_HANDBOOK Operating facts L198/L202: a user still listed in WOODPECKER_ADMIN is re-created, as an administrator, at the next sign-in after DELETE /api/users/<login>. [defects, defects #188810] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-efbeec8b05Admin handbook: `woodpecker-server` is only an example container name; ADMIN_HANDBOOK L979 uses WOODPECKER_SERVER=ci.example.com:9000. [defects, defects #188811] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-09079a6fc3API guide: Same guide L561/L617 and the handbooks: personal access tokens do not expire (the token minted from the user hash carries no exp claim). [defects, defects #188812] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-cfc9b2c2ddDatabase handbook: DB_HANDBOOK L1284 'Tokens do not expire'; upstream user.go PostToken signs without expiry. [defects, defects #188813] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-eada8e12fcAPI guide: Without -i/-t the shell reads end-of-file on stdin and exits at once, leaving a stopped container (no --rm); the same section says to use `docker exec -it woodpecker sh` for an interactive shell. [defects, defects #188814] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-252f91a16dAPI guide: Run as written it copies the live database file of a running server; the same guide (L1925) says to stop the server before this form, and the online form is the sqlite3 .backup command. [defects, defects #188815] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-28d19224e4API guide: Customer-actionable claim contradicts the server: DELETE /api/agents/<id> does not interrupt running jobs, it is refused with 409 while the agent has a running task, so the record (and the old… [defects, defects #193011] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-cd2be31333API guide: Round-2 finding paraphrased in a section the fix missed: the endpoint lists only the configured forge, not the forges Woodpecker can integrate with. [defects, defects #193012] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-61d22a29fdAPI guide: 'installed forge integrations' repeats the supported-vs-configured forge error from round 2 (and 'signature verification' is the key for requests the server sends, not webhooks). [defects, defects #193013] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-1d262768deAPI guide: 'This is required' is wrong: the image sets WOODPECKER_HOST by default and the server starts without it being set. [defects, defects #193014] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e303a1feabAdmin handbook: Same omission as API guide L1000: the DELETE is refused (409) while the agent has a running task; the sentence also appears at ADMIN L218 and API L2149 in similar form. [defects, defects #193015] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-a5c77069b9Admin handbook: The rotation procedure passes the new secret with -e while the same command keeps --env-file ./woodpecker.env, which still holds the OLD secret, and never tells the customer to update the file. [defects, defects #195948] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-64910da7d0API guide: Round-3 finding paraphrased in sections the fix missed: 'signature verification' is left undefined (API L535, L585, L920, L1531 and ADMIN 'Public key for verifying signatures'), while L2286 already… [defects, defects #195949] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-88dec4f4dfDatabase handbook: Repeats the round-3 finding 'This is required': the server starts without WOODPECKER_HOST (it only logs a warning) and without WOODPECKER_AGENT_SECRET (API guide L2073 says so). [defects, defects #195950] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8bb7ddd822API guide: Round-4 major paraphrased in the API guide: the shared-secret run command passes WOODPECKER_AGENT_SECRET with -e while the same command keeps --env-file ./woodpecker.env (which the guide's own… [defects, defects #197304] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e538525052API guide: The rotation procedure of the round-4 major is still not fixed here: it says to recreate the server 'with the new value' directly under a command that passes the secret with -e next to --env-file,… [defects, defects #197305] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-aa9df8e939API guide: Rotation step paraphrases the round-4 major: 'the new value' is passed without telling the customer to update the env file the standard command reads on every start. [defects, defects #197306] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-44659bf099API guide: Rotation step paraphrases the round-4 major: 'the new value' is passed without telling the customer to update the env file the standard command reads on every start. [defects, defects #197307] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e5b8197fb9API guide: Rotation step paraphrases the round-4 major: 'the new value' is passed without telling the customer to update the env file the standard command reads on every start. [defects, defects #197308] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-94904e17aeAdmin handbook: Rotation step paraphrases the round-4 major: 'the new value' is passed without telling the customer to update the env file the standard command reads on every start. [defects, defects #197309] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8d99f941edDatabase handbook: Rotation step paraphrases the round-4 major: 'the new value' is passed without telling the customer to update the env file the standard command reads on every start. [defects, defects #197310] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8984d850fdDatabase handbook: Repeats the round-3/4 finding 'This is required': the server starts without WOODPECKER_AGENT_SECRET; only a configured forge is needed to start. [defects, defects #197311] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fd54058e62Admin handbook: 'must contain ... a long random agent secret' repeats the 'required' error: the server starts without WOODPECKER_AGENT_SECRET. [defects, defects #197312] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b826d2d584Admin handbook: Same 'required' error: 'must contain ... [defects, defects #197313] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-6e17481685API guide: 'must set ... an agent secret' repeats the 'required' error; the same guide says at L2073 that the server starts without it. [defects, defects #197314] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-c93763f019Admin handbook: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197315] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-2e031bf68fAdmin handbook: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197316] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-3cbe864276Admin handbook: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197317] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-051802951dAPI guide: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197318] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-83c4f32486API guide: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197319] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-1ea17287f5API guide: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197320] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-277e0cc339API guide: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197321] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-9ba8e50bf0API guide: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197322] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-57a51cd46bAPI guide: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197323] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b29f9438f2API guide: The stated condition for the HTTP 500 is wrong and the remedy over-broad: the second POST fails only while the earlier added user has not yet signed in (forge_remote_id still 0), not while that user… [defects, defects #197324] | low | fixed-before-release | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea · published digest sha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 166) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, thread_exit, trademark_shipped, vex_shipped) [g8_result.json, result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-09T15:15:10Z · failing Docker Scout counts 11 packages with copyleft licences (GPL, LGPL, MPL), all of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-09T15:15:00Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3758319095 · transparency-log entry
- log index 3758319576 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3766597799 · transparency-log entry · integrated 2026-11-09T15:18:12Z) [ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:c9a37524cca176db982104db7aa087782321bb170274f4e77ebc4e7e887d6f33 · state attached · log index 3766598550 · transparency-log entry
- kind sbom · digest sha256:c9a37524cca176db982104db7aa087782321bb170274f4e77ebc4e7e887d6f33 · state attached · log index 3766599037 · transparency-log entry
- kind vsa · digest sha256:c9a37524cca176db982104db7aa087782321bb170274f4e77ebc4e7e887d6f33 · state attached · log index 3766599434 · transparency-log entry
- kind provenance · digest sha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea · state attached · log index 3766600052 · transparency-log entry
- kind sbom · digest sha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea · state attached · log index 3766600624 · transparency-log entry
- kind vsa · digest sha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea · state attached · log index 3766601307 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/woodpecker/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-09T00:22:46Z on build host 2 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:34ecdf21c55d620ceb48f5b0b7c2e5038975945bb289216aaa91ae47f0bd53ea [clean-room rebuild ledger, runs[676]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-08T17:07:35Z [stage_runs, stage_runs chain 894 stage publish_image]
- Archive manifests written2026-11-09T15:16:47Z [PUBLISH_MANIFEST.json, published_at]
- Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)
Packages and CPU level
Fully recorded- x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 64 · probed 2026-11-09T15:17:51Z · source g8) [release_images, isa_level_hard]
History
2 events- 2026-11-09T15:19:32Z generated: by KitForge release/build_trail.py · generator commit 60e683e982890f94be6ec847d4971fb308805ca8
- 2026-11-09T15:20:53Z publication: promoted at 2026-11-09T15:20:06Z · promoted digest sha256:c9a37524cca176db982104db7aa087782321bb170274f4e77ebc4e7e887d6f33 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 418 · checklist status complete · checklist at 2026-11-09T15:20:53Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
Records
26 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/woodpecker/v3.20.1-CE-ubuntu24.04-r1/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/woodpecker/v3.20.1-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.rebuild.json | beside the archive (prodasset /data/production/woodpecker/v3.20.1-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-woodpecker-v3.20.1-CE-ubuntu24.04-r1.rebuild.json.sigstore | beside the archive (prodasset /data/production/woodpecker/v3.20.1-CE-ubuntu24.04-r1/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/woodpecker/v3.20.1-CE-ubuntu24.04-r1/), as staged for publishing | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 590 |
chains | sadb, ReadyStack's engine database (not published) | 736, 894 |
defects | sadb, ReadyStack's engine database (not published) | woodpecker v3.20.1-CE-ubuntu24.04-r1 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 736, chain 894 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 894 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 894 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 894 |
release_images | sadb, ReadyStack's engine database (not published) | woodpecker v3.20.1-CE-ubuntu24.04-r1 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 894 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 894 |
watch_queue | sadb, ReadyStack's engine database (not published) | 12443 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
g8_result.json | the chain's workspace on the controller (not published) | — |