Repository navigation
Conversation
Adds .github/workflows/security-scan.yml running osv-scanner (pinned, checksum-verified release binary) and zizmor (pinned) on pull requests, pushes to main, weekly and on demand. Findings go to the job summary and never fail the job. gitleaks already runs in ci.yaml and all actions are already SHA-pinned, so neither is repeated here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Guillaume Lebedel <10488548+glebedel@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The workflow suppresses OSV scan failures and pipx/zizmor installation or execution errors, allowing checks to pass even when dependency or workflow auditing never completes.
2 open issues
What changed in this PR
Adds report-only dependency and workflow security scanning alongside the existing gitleaks checks, without changing Dependabot or existing action pins.
Changes:
- Adds checksum-verified osv-scanner and version-pinned zizmor, with reports written to job summaries.
- Runs on pull requests, pushes to
main, a weekly schedule, and manual dispatch. - Uses read-only permissions and SHA-pinned checkout without persisted credentials.
| File | Description |
|---|---|
.github/workflows/security-scan.yml |
Adds dependency and workflow scanning jobs with non-blocking findings and summary output. |
Review effort: Balanced
Findings still never fail the job. osv-scanner exit codes 127 and above and any zizmor error (run with --no-exit-codes) now fail the job instead of being reported as a clean run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Guillaume Lebedel <10488548+glebedel@users.noreply.github.com>
The osv-scanner SHA-256 is pinned in the workflow instead of read from the release manifest. osv-scanner exit codes 0, 1 and 128 pass; any other code fails the job. zizmor runs under set -e with --no-exit-codes, so findings pass and tool errors fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Guillaume Lebedel <10488548+glebedel@users.noreply.github.com>
Contributor
Author
|
Closing without merging. Aikido already covers secrets, dependencies and GitHub Actions workflow checks, so the gitleaks, osv-scanner and zizmor jobs (and the new Dependabot config added with them) would only duplicate it. Requested by guillaume@stackone.com in Slack. The branch is kept, so this can be reopened if needed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What and why
Part of the Security Autopilot CI hardening pass. This repo already has
.github/dependabot.yaml, already runs gitleaks inci.yaml, and already SHA-pins every action, so this PR only adds the two missing scanners:OSV_SCANNER_SHA256, bumped together with the version) before use.pipx run zizmor==1.31.1.The new
.github/workflows/security-scan.yamlis report-only for now: both scanners write their output to the job summary and the job never fails on findings, because there is an existing backlog to triage first. A scanner that fails to run fails its job, so a broken scan is never shown as clean: osv-scanner exit codes 0 (clean), 1 (findings) and 128 (no packages) pass and any other code fails; zizmor runs with--no-exit-codesunderset -e, so findings pass and tool errors fail. It runs on pull requests, pushes tomain, weekly (Monday 05:23 UTC) and on manual dispatch. Top-levelpermissions: contents: read, checkout withpersist-credentials: false, all actions pinned by SHA. No SARIF upload (code scanning is not available on this plan).No dependabot, gitleaks, auto-merge or pinning changes.
Files
.github/workflows/security-scan.yaml(new)Verification
osv-scanner scan source -r --format markdown .produces a report for the lockfiles and exits 1 on findings, which the step accepts.Requested by guillaume@stackone.com in Slack (Security Autopilot apply A+B+C)
🤖 Generated with Claude Code