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
fix: reopen closed Linear issues on recurring vulnerability findings
Instead of silently skipping completed/cancelled Linear issues or creating
duplicates, the vulnerability triage workflow now reopens them by moving
the issue back to Triage state.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
--json-schema '{"type":"object","properties":{"cves":{"type":"array","items":{"type":"object","properties":{"cveId":{"type":"string","description":"CVE ID, GHSA ID, or codeql:<rule-id>"},"severity":{"type":"string","enum":["CRITICAL","HIGH","MEDIUM","LOW"]},"source":{"type":"string","enum":["trivy","dependabot","codeql","trivy+dependabot"],"description":"Which scanner(s) reported this finding"},"title":{"type":"string","description":"Short summary for the Linear issue title"},"description":{"type":"string","description":"Markdown analysis: affected packages, direct vs transitive, remediation steps, and references"},"affectedPackage":{"type":"string"},"linearIssueExists":{"type":"boolean"}},"required":["cveId","severity","source","title","description","affectedPackage","linearIssueExists"]}}},"required":["cves"]}'
397
+
--json-schema '{"type":"object","properties":{"cves":{"type":"array","items":{"type":"object","properties":{"cveId":{"type":"string","description":"CVE ID, GHSA ID, or codeql:<rule-id>"},"severity":{"type":"string","enum":["CRITICAL","HIGH","MEDIUM","LOW"]},"source":{"type":"string","enum":["trivy","dependabot","codeql","trivy+dependabot"],"description":"Which scanner(s) reported this finding"},"title":{"type":"string","description":"Short summary for the Linear issue title"},"description":{"type":"string","description":"Markdown analysis: affected packages, direct vs transitive, remediation steps, and references"},"affectedPackage":{"type":"string"},"linearIssueExists":{"type":"boolean"},"linearIssueId":{"type":"string","description":"The Linear issue UUID if a matching issue was found, empty string otherwise"},"linearIssueClosed":{"type":"boolean","description":"True if the matching Linear issue is in a completed or canceled state"}},"required":["cveId","severity","source","title","description","affectedPackage","linearIssueExists","linearIssueId","linearIssueClosed"]}}},"required":["cves"]}'
398
398
prompt: |
399
399
You are a security engineer triaging vulnerabilities and security findings for the Sourcebot Docker image.
400
400
You have three data sources to analyze. Each is a JSON array where every entry has a pre-computed
@@ -444,17 +444,19 @@ jobs:
444
444
445
445
7. **Check Linear for existing issues** for each finding:
446
446
- For each `cveId`, run a GraphQL query against the Linear API to search for issues
447
-
whose title contains that ID.
448
-
- **Important**: Exclude cancelled issues so that previously cancelled/rejected findings
449
-
can be re-created. Use a state type filter to only match active issues.
447
+
whose title contains that ID. Search ALL issues regardless of state (open, completed, cancelled).
0 commit comments