You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
with `wp_codebox_release_ref: v0.12.3`. The accepted format is exactly
39
+
`vX.Y.Z`; branches, commit SHAs, moving major tags, prereleases, and arbitrary
40
+
refs are rejected.
38
41
39
-
Helper changes land first. A subsequent commit that updates this reusable
40
-
workflow advances the helper revision to the full SHA containing those merged
41
-
files. The workflow validates the full-SHA shape and `actions/checkout` fetches
42
-
that exact source before running helpers. The regression test reads the required
43
-
helper files at the pinned revision and checks their SHA-256 digests.
42
+
The workflow validates that its own `uses:` reference and
43
+
`wp_codebox_release_ref`match exactly before checkout. It always checks helpers
44
+
out from `Automattic/wp-codebox`, verifies the checked-out commit equals the
45
+
remote release tag commit, and verifies the checked-out `package.json` version
46
+
equals the requested tag without its `v` prefix. The caller cannot select a
47
+
different helper repository.
44
48
45
-
This pin fixes [#1755](https://github.com/Automattic/wp-codebox/issues/1755) and the failed Build callers [29281470179](https://github.com/Automattic/build-with-wordpress/actions/runs/29281470179)
46
-
and [29281470159](https://github.com/Automattic/build-with-wordpress/actions/runs/29281470159), where a foreign caller SHA was incorrectly used as a WP Codebox checkout ref.
49
+
This release-coherence contract fixes [#1759](https://github.com/Automattic/wp-codebox/issues/1759).
47
50
48
51
## Inputs
49
52
53
+
- `wp_codebox_release_ref`: required exact immutable WP Codebox release tag. It must match the `@vX.Y.Z` tag in the caller's `uses:` declaration exactly.
50
54
- `external_package_source`: immutable descriptor with `repository`, full commit `revision`, one package-relative `.agent.json` `path`, and `digest`. Packages are supported only from publicly accessible GitHub repositories, fetched from canonical `https://github.com/OWNER/REPOSITORY.git` without credentials. `digest` is exactly `sha256-bytes-v1:<lowercase-sha256>` over the raw file bytes; filenames and JSON content are UTF-8-safe and are not normalized before hashing.
51
55
- `EXTERNAL_PACKAGE_SOURCE_POLICY`: required reusable-workflow secret, supplied by the caller's operator-controlled secret configuration. Its strict version 1 JSON shape is `{"version":1,"repositories":{"owner/repository":["agents/example.agent.json"]}}`. Every entry is an exact standalone `.agent.json` path. The policy is validated in runner memory, is never part of task input, and is not uploaded.
52
56
- `target_repo`: `OWNER/REPO`target repository.
@@ -167,6 +171,10 @@ must migrate checks to executable `validation_dependencies`,
167
171
`verification_commands`, or `drift_checks`; context and artifact preparation
168
172
remain caller-workflow responsibilities. This is an intentional exposed-workflow breaking change.
169
173
174
+
`wp_codebox_release_ref`is a required v1 input. Existing callers must switch
175
+
their `uses:` reference from a branch or other ref to an exact release tag and
176
+
pass that identical tag through this input.
177
+
170
178
## Upload safety limits
171
179
172
180
The reusable workflow stages every uploaded file through a fail-closed policy. Only regular UTF-8 files of 4 MiB or less are uploaded, after configured secret values are redacted. Symlinks, special files, binary files, and files larger than 4 MiB are excluded from the upload staging directory. This applies to task artifacts and workflow request, input, and result files.
0 commit comments