You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a relay maintainer, I want a scheduled workflow that re-runs both the runtime-image CVE scan and the source-side reachable-Go-vuln scan against the latest main SHA, so that newly-disclosed CVEs against dependencies that have not changed since the last PR produce a visible workflow-run signal instead of being invisible until someone next bumps that dep.
Context
PR-time scanning only catches CVEs that exist at PR time. New CVEs are disclosed continuously against dependencies the relay has not touched in weeks. Without a periodic re-scan against main, a vuln disclosed today against a long-stable dep stays invisible.
This ticket adds the cron workflow itself that re-runs:
At this stage a finding produces a red workflow run only — no auto-issue is filed. Auto-issue filing is layered on top in #73 so the cron workflow has a single concern: schedule and execute both scans against main.
A new workflow file .github/workflows/security-scan.yml is added that runs on a schedule (daily or weekly — architect chooses) and on workflow_dispatch for manual re-runs.
Any third-party action introduced by this workflow that is not already used by ci.yml (e.g. additional setup actions) is pinned per the same supply-chain logic as the PR-time scans (commit-SHA pin for non-first-party actions, version pin with tracking comment for binaries).
A manual workflow_dispatch invocation against current main completes both scan steps end-to-end. On a clean main the workflow run is green; verification that a vulnerable state produces a red run is exercised by relay: auto-file GitHub issue when periodic security-scan finds a regression #73's auto-issue test, so this ticket's verification only requires that the green path works.
Technical Notes
Re-using shared steps with ci.yml via a reusable workflow or composite action is fine but not required. Optimize for clarity over DRY at v1.
A failing scan step should fail the workflow run (default behavior of govulncheck and the Trivy action with exit-code: '1'). No additional summarization logic in this ticket.
User Story
As a relay maintainer, I want a scheduled workflow that re-runs both the runtime-image CVE scan and the source-side reachable-Go-vuln scan against the latest
mainSHA, so that newly-disclosed CVEs against dependencies that have not changed since the last PR produce a visible workflow-run signal instead of being invisible until someone next bumps that dep.Context
PR-time scanning only catches CVEs that exist at PR time. New CVEs are disclosed continuously against dependencies the relay has not touched in weeks. Without a periodic re-scan against
main, a vuln disclosed today against a long-stable dep stays invisible.This ticket adds the cron workflow itself that re-runs:
ci.yml'simage-scanjob (relay: PR-time Trivy image CVE scan in ci.yml — fail on fixable CRITICAL/HIGH #68).govulncheckscan fromci.yml'ssecurityjob (relay: govulncheck in CI — flag reachable Go vulns at PR time #41).At this stage a finding produces a red workflow run only — no auto-issue is filed. Auto-issue filing is layered on top in #73 so the cron workflow has a single concern: schedule and execute both scans against
main.Split from #69.
Acceptance Criteria
.github/workflows/security-scan.ymlis added that runs on a schedule (daily or weekly — architect chooses) and onworkflow_dispatchfor manual re-runs.mainSHA and runs both the Trivy runtime-image scan andgovulncheck ./...with the same pinned versions, flags, and policies as their PR-time equivalents inci.yml(image-scan job from relay: PR-time Trivy image CVE scan in ci.yml — fail on fixable CRITICAL/HIGH #68, security job from relay: govulncheck in CI — flag reachable Go vulns at PR time #41) — includingignore-unfixed: true, severityCRITICAL,HIGH, andvuln-type: os,libraryfor Trivy.ci.yml(e.g. additional setup actions) is pinned per the same supply-chain logic as the PR-time scans (commit-SHA pin for non-first-party actions, version pin with tracking comment for binaries).permissions:is set tocontents: readat the workflow level (noissues: writeyet — that comes with relay: auto-file GitHub issue when periodic security-scan finds a regression #73).workflow_dispatchinvocation against currentmaincompletes both scan steps end-to-end. On a cleanmainthe workflow run is green; verification that a vulnerable state produces a red run is exercised by relay: auto-file GitHub issue when periodic security-scan finds a regression #73's auto-issue test, so this ticket's verification only requires that the green path works.Technical Notes
ci.ymlvia a reusable workflow or composite action is fine but not required. Optimize for clarity over DRY at v1.govulncheckand the Trivy action withexit-code: '1'). No additional summarization logic in this ticket.Size Estimate
S