diff options
| author | Yuriy Andamasov <yuriy@vyos.io> | 2026-05-11 01:11:41 +0300 |
|---|---|---|
| committer | Yuriy Andamasov <yuriy@vyos.io> | 2026-05-11 01:11:41 +0300 |
| commit | 025319ead33f2d12c2bfb151a081ebed94f70730 (patch) | |
| tree | 1b2ea24ed04d05612aaf6c56d97b6507a210e94a /docs/_static/css | |
| parent | 14e76661a77fb16b57b65df3d04b4d816765d407 (diff) | |
| download | vyos-documentation-025319ead33f2d12c2bfb151a081ebed94f70730.tar.gz vyos-documentation-025319ead33f2d12c2bfb151a081ebed94f70730.zip | |
ci(ai-validation): address 4 CR findings — SHA pins, NUL guard, DB pin, drop id-token
Addresses the four CodeRabbit `Major / Quick win` findings raised
on this PR (after flip to ready):
1. SHA-pin all action invocations (was movable tags `@v6`, `@v4`, `@v1`
on 4 actions). pull_request_target workflows have repo write access
and access to secrets; GitHub security guidance recommends full
commit SHAs as the only immutable release form. Other steps already
were SHA-pinned, so this just resolves the inconsistency:
* actions/checkout@v6 -> @de0fac2e # v6.0.2 (x4)
* actions/upload-artifact@v4 -> @ea165f8d # v4.6.2
* actions/download-artifact@v4 -> @d3f86a10 # v4.3.0
* anthropics/claude-code-action@v1 -> @476e359e # v1.0.119
2. Reject paths containing control characters (NUL/CR/newline/etc) in
changed-md.z and changed-rst.z before `tr '\0' '\n'` converts them
to newline-delimited manifests. A fork PR could in principle commit
`docs/foo<LF>bar.md` and split it into two logical lines, masking
the real file from line-based consumers. The filesystem and
porcelain git typically reject these but the path could survive in
the tree object; fail-fast in the workflow.
3. Pin reference-DB download to `tag: ${{ env.REVIEWER_REF }}` (was
`latest: true`). REVIEWER_REF already fixes the reviewer code to
`reviewer-v1.0.1` on every use; the DB download was the one place
that resolved from the latest release tag, breaking reproducibility
and creating a silent compat-window where a future v1.x.x release
with a DB-schema change could be picked up while pinned reviewer
code still expects the old schema.
4. Drop `id-token: write` from the validate job's permissions. No step
in the workflow uses OIDC; the permission was a copy-paste leftover.
Least-privilege.
Files: same change copied byte-identically to all three workflow PRs
once they land (this PR for circinus, paired PR for sagitta, follow-up
on rolling since #1957 already merged).
Diffstat (limited to 'docs/_static/css')
0 files changed, 0 insertions, 0 deletions
