Repository navigation
feat(workflows)!: step 11, upload govulncheck findings as SARIF - #53
seantronsen wants to merge 4 commits into
Conversation
1806d80 to
9aa4f9e
Compare
|
failed experiment. I would prefer if the behavior for this was more like |
|
do not delete this branch or the PR. just closing for now to lessen noise. |
7a546a0 to
bc53037
Compare
bc53037 to
eb6ca7a
Compare
c1f8a2e to
bc67efb
Compare
134dff1 to
38d0ba2
Compare
| (.[] | "- [`\(.path):\(.line)`](\($blob)/\(.path)#L\(.line))")) | ||
| end | ||
| ' govulncheck.sarif > report.md | ||
| cat report.md >> "$GITHUB_STEP_SUMMARY" |
There was a problem hiding this comment.
Thanks for removing the public issue and report artifact. One disclosure path remains: this step writes vulnerability IDs, descriptions, and exact call-site links to the workflow run summary on every run, including default-branch scans. Readers of a public repository can view that summary, while the default-branch code scanning alert details require write access. Could the default-branch summary be generic, with the detailed findings kept in code scanning? PR summaries and inline annotations are public too. If that is the intended tradeoff for PR feedback, we'll need to document it explicitly.
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
…like lint-docs for issues Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
… repo issues Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
38d0ba2 to
ee287da
Compare
Description
govulnchecknow writes its findings as SARIF and uploads them to GitHub Advanced Security, liketrivy-image-scan,scorecard, zizmor (lint-ci) andlint-docsalready do. Findings appear as code scanning alerts in the Security tab, and as annotations on PRs where they land on changed lines.govulncheck.yml:output-format: sarif, plus anupload-sarifstep (categorygovulncheck) andsecurity-events: write. SARIF mode exits 0 on findings, so ajqstep after the upload fails the job on called vulnerabilities (SARIF levelerror), as text mode did before.contents: readandsecurity-events: write.Stacked on #52.
Breaking changes
security-events: writeto thegovulncheckjob, or the run fails to start.Caveats
pull_requestruns from forks, the token is read-only and the SARIF upload fails.trivy-image-scanhas the same gap.Testing
Testbed: OpenCHAMI/github-actions-testbed#16 (a follow-up commit there calls a known-vulnerable symbol).
Locally: govulncheck v1.9.0
-format sarifin agolang:1.26container. On a module that calls a vulnerable symbol it exits 0 and reports the finding at levelerror, and thejqcheck fails; on a clean module it reports only stdlibnotefindings, and the check passes. Text mode exits non-zero and zero on the same two modules. The workflow itself has not run on GitHub yet: still to check are the action'soutput-format/output-fileinputs, the upload, and the PR display.Checklist
make test(or equivalent) locally and all tests passgit commit -s) with my real name and email<filename>.licensesidecarLICENSES/directoryType of Change