SARIF triage and response for CodeQL, Scorecard, cargo-deny, and Dependabot findings
From gh-guardnpx claudepluginhub anthropics/claude-plugins-community --plugin gh-guardThis skill is limited to using the following tools:
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Multiple gh-guard components produce security findings: CodeQL (static analysis), Scorecard (supply chain posture), cargo-deny (dependency policy), and cargo-audit (vulnerability advisories). This skill covers how to consume, triage, and act on these findings.
| Source | Format | Destination | Update Frequency |
|---|---|---|---|
| CodeQL | SARIF | GitHub Security > Code scanning | Push to main, PRs, weekly |
| Scorecard | SARIF + JSON | GitHub Security > Code scanning + api.securityscorecards.dev | Push to main, weekly |
| cargo-deny | CI output | PR checks (fail/pass) | Every PR |
| cargo-audit | CI output | PR checks (fail/pass) | Every PR |
| Dependabot | Alerts + PRs | GitHub Security > Dependabot | Continuous |
All SARIF-producing tools upload to GitHub's Code Scanning interface:
| Severity | Source | SLA | Action |
|---|---|---|---|
| Critical/High | cargo-audit (CVE) | Fix within 7 days | Upgrade dependency or apply patch |
| Critical/High | CodeQL | Fix within 14 days | Code change to resolve the finding |
| Medium | Any | Fix in next release | Plan the fix, track in issues |
| Low/Informational | Any | Backlog | Review periodically |
| Scorecard check | Scorecard | Best effort | Improve configuration |
Legitimate reasons to dismiss a finding:
Always add a comment explaining why when dismissing.
| Rule | Description | Typical Fix |
|---|---|---|
rust/sql-injection | User input in SQL queries | Use parameterized queries |
rust/unsafe-block | Unsafe code blocks | Add SAFETY comments, minimize unsafe scope |
rust/uncontrolled-format-string | Format string from user input | Use {} with explicit arguments |
In Rust code, use comments (CodeQL doesn't have Rust-specific suppression yet):
// codeql[rust/unsafe-block]: Required for FFI interop with libfoo — see SAFETY comment above
Scorecard findings appear as informational alerts. Focus on:
See the scorecard-checks skill for detailed guidance on improving each check.
When the advisory leg of cargo-deny reports a finding:
cargo update -p <crate>deny.toml:
[advisories]
ignore = ["RUSTSEC-2024-XXXX"] # Reason: not in our code path, fix pending upstream
These block PRs. Fix by:
For low-risk updates, configure auto-merge:
# .github/dependabot.yml
version: 2
updates:
- package-ecosystem: cargo
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 5
Then in a workflow:
# Auto-merge patch-level Dependabot PRs
- name: Auto-merge
if: github.actor == 'dependabot[bot]'
run: gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
When a GitHub Action you depend on is compromised (e.g., the March 2026 Trivy tag hijacking), follow this playbook:
tpcp-docs or similar (the Trivy attacker used victim PATs to create exfil repos)GITHUB_TOKEN (auto-rotates, but check for any PATs used)permissions: read-all + per-job scoping) limits what a compromised action can accesspersist-credentials: false on checkout steps prevents the action from using the git credential