7676 with :
7777 fetch-depth : 0
7878 - uses : dtolnay/rust-toolchain@d0befba8b9ddf874327619e84c39b094edd58b66 # 1.93.0
79- - name : Install pinned Rust advisory scanner
79+ - name : Install pinned Rust security and policy tools
8080 run : |
8181 cargo install cargo-audit --version 0.22.2 --locked
82+ cargo install cargo-deny --version 0.20.2 --locked
83+ cargo install cargo-geiger --version 0.13.0 --locked
8284 - name : Report raw Rust advisory status without suppressing legacy findings
8385 continue-on-error : true
8486 run : |
@@ -89,11 +91,39 @@ jobs:
8991 run : |
9092 ./scripts/check-matrix-release-dependencies.ps1 `
9193 -ReportPath release/rust-dependency-report.json
92- - name : Upload Rust dependency policy evidence
94+ - name : Enforce Matrix voice license and source policy
95+ working-directory : mesh/src-tauri
96+ run : cargo deny --locked check licenses sources
97+ - name : Record Matrix voice unsafe-code inventory
98+ working-directory : mesh/src-tauri
99+ # cargo-geiger 0.13.0 (the latest release; 0.12.0 reproduces identically)
100+ # bundles cargo 0.86.0 as a library, whose internal clean/download-batching
101+ # panics on this project's matrix-voice dependency graph:
102+ # "assertion failed: self.pending_ids.insert(id)" in
103+ # cargo::core::package::Downloads::start, called from cargo_geiger's own
104+ # pre-scan cargo_clean::clean step. Confirmed independent of this repo's
105+ # code: cargo check/build/test for matrix-voice all pass clean, and the
106+ # crash reproduces locally with no CI-specific factors involved. No newer
107+ # cargo-geiger exists to fix it. continue-on-error so this known upstream
108+ # tool bug doesn't block merges; every other step in this job (secret
109+ # scanning, SBOM, license/source policy, other feature scans) still
110+ # blocks normally. Matches the existing continue-on-error precedent on
111+ # the cargo audit step above.
112+ continue-on-error : true
113+ run : >-
114+ cargo geiger
115+ --no-default-features
116+ --features matrix-voice
117+ --locked
118+ --output-format Json
119+ > ../release/cargo-geiger-matrix-voice.json
120+ - name : Upload Rust dependency and unsafe-code evidence
93121 uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
94122 with :
95123 name : rust-dependency-policy-${{ github.sha }}
96- path : mesh/release/rust-dependency-report.json
124+ path : |
125+ mesh/release/rust-dependency-report.json
126+ mesh/release/cargo-geiger-matrix-voice.json
97127 if-no-files-found : error
98128 retention-days : 30
99129 - uses : actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
0 commit comments