Repository navigation
Conversation
…Triage ticket per CVE The daily container scan opened one ENG Triage ticket per (image, CVE), about 2.4k on its first run, most of them linux-libc-dev kernel headers that never apply in a container. Group findings per image repository into a single ticket listing its critical/high CVEs, ignore linux-libc-dev, and create tickets in Backlog with the container-scan label instead of Triage + vulnerability, capped at High priority. Legacy per-CVE tickets still in Triage are canceled once their repository scans successfully; assessed ones are left alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
WalkthroughThe container scan workflow groups critical and high findings into tickets by image repository. Ticket descriptions include scan details and counts for lower-severity findings. The workflow creates and reopens tickets in Backlog, closes resolved tickets, and cancels eligible legacy per-CVE tickets after complete scans. Issue creation now accepts optional state and label values, with existing defaults retained. Priority: ➖ Normal Merge Risk: ⚪ Minimal · up to
|
|



Ref ENG-3962
What & why
Was: the daily container scan opened one ENG Triage ticket per image and CVE, which came to about 2.4k tickets on the first run. Most were
linux-libc-devkernel headers that never apply inside a container.Now: each image repository with critical/high findings gets one Backlog ticket labelled
container-scan. It lists every CVE with tags, architectures and fix versions, and closes when none are left.linux-libc-devis ignored. Images fromdocker-compose.dev.ymlstay in scope.Where to look
findingsgrouping: identity, severity gate, description textreconciliation: the split between closing tickets (Done) and superseding them (Canceled)Breaking changes
None. This only changes an internal CI job and how it writes Linear tickets; nothing reaches self-hosters or API consumers.
Migrations & env
container-scanlabel already exists on the Engineering team.How this was tested
Rerun:
node node_modules/vitest/vitest.mjs run --config vitest.root.config.mts scripts/container-security/Coverage
groups every CVE…sync.mjs, passes herelinux-libc-devand medium/low findings open no ticketignores kernel headers…; drop theIGNORED_PACKAGEScheckkeeps an image ticket open…supersedes untouched legacy…; dropcanCloseor the triage check insync.mjscontainer-scan, High/Medium; Triage legacy tickets canceledOpen gaps
Risks
Note
AI model used —
claude-opus-5-5, reasoning effortunknown.