Skip to content

Commit 7c4c0a1

Browse files
UnbreakableMJclaude
andcommitted
ci: ignore ratatui's transitive advisories in cargo-audit
The rustsec/audit-check action fails on any advisory (unmaintained + unsound), unlike cargo-deny which only warns on these. ratatui's tree pulls in two: RUSTSEC-2024-0436 — paste (unmaintained, build-time proc-macro) RUSTSEC-2026-0002 — lru 0.12.5 (unsound IterMut; transitive) Neither is fixable without dropping ratatui. Ignore both in the audit job (mirroring deny.toml's paste policy) and grant the job checks:write so the action can post its findings as a check run — the missing permission is what turned the "2 warnings" into a hard "Resource not accessible" failure. The lru advisory (dated 2026-01-07) only surfaced in CI because CI fetches a fresh advisory DB; the local clone predated it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 595aeaf commit 7c4c0a1

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

.github/workflows/ci.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,25 @@ jobs:
6666
audit:
6767
name: cargo-audit
6868
runs-on: ubuntu-latest
69+
# audit-check posts findings as a check run — needs checks:write. Job-level
70+
# permissions replace the default set, so contents:read is restated for
71+
# checkout.
72+
permissions:
73+
contents: read
74+
checks: write
6975
steps:
7076
- uses: actions/checkout@v5
7177
- uses: dtolnay/rust-toolchain@stable
7278
- uses: rustsec/audit-check@v2
7379
with:
7480
token: ${{ secrets.GITHUB_TOKEN }}
81+
# Build-time / transitive advisories from the ratatui TUI tree, kept in
82+
# lock-step with deny.toml's policy (see that file for the paste
83+
# rationale). Both are informational (no fix that doesn't mean dropping
84+
# ratatui); revisit when ratatui's tree updates.
85+
# RUSTSEC-2024-0436 — paste (unmaintained, build-time proc-macro)
86+
# RUSTSEC-2026-0002 — lru 0.12.5 (unsound IterMut; transitive via ratatui)
87+
ignore: RUSTSEC-2024-0436,RUSTSEC-2026-0002
7588

7689
deny:
7790
name: cargo-deny

CHANGELOG.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,13 @@ range may break in any release.
3030
- New modules `app` (state + pure nav/filter logic, 6 unit tests), `ui`
3131
(rendering + a `#RRGGBB``Color` theme helper over `vault_theme::steelbore`,
3232
2 `TestBackend` render smoke tests), and `client` (UDS request helper).
33-
- `deny.toml` ignores **RUSTSEC-2024-0436** (`paste` unmaintained) — a
34-
build-time-only proc-macro with no runtime surface, pulled in transitively
35-
by `ratatui`; documented with a revisit note.
33+
- Supply-chain: `ratatui`'s tree adds two informational advisories with no fix
34+
short of dropping ratatui — **RUSTSEC-2024-0436** (`paste`, unmaintained
35+
build-time proc-macro) and **RUSTSEC-2026-0002** (`lru` 0.12.5, unsound
36+
`IterMut`, transitive). `paste` is ignored in `deny.toml`; the
37+
`rustsec/audit-check` CI job ignores both (it fails on any advisory, unlike
38+
`cargo deny`) and gains `checks: write` so it can post its check-run
39+
annotations. Both documented with revisit notes.
3640

3741
- **M4 (slice 4) — `--json` on the lifecycle verbs + a real `vault sync`.**
3842
Closes the two remaining M4 items.

0 commit comments

Comments
 (0)