Reusable GitHub Actions workflows for vulnerability scanning and remediation across the Kernel org.
Weekly Socket.dev scan + automated dependency remediation. 3-stage pipeline:
- scan: Socket CLI scans dependencies, uploads
socket-report.json - triage: Agent classifies alerts as fix/defer/dismiss, uploads
triage-result.json - fix: Agent applies dependency bumps, builds, tests, uploads
fix-result.json - pr: Shell creates/updates evergreen PR from JSON artifacts
# In your repo's .github/workflows/vuln-remediation.ymlname: Vulnerability Remediationon:
schedule:
- cron: '0 3 * * 3'workflow_dispatch:
permissions:
contents: writepull-requests: writejobs:
remediate:
uses: kernel/security-workflows/.github/workflows/vuln-remediation.yml@mainwith:
go-version-file: 'go.mod'# omit if no Gosetup-bun: true # omit if no Node/Bunsecrets: inheritSemgrep SAST on pull requests with agent-powered triage.
# In your repo's .github/workflows/semgrep.ymlname: Semgrepon:
pull_request:
branches: [main]permissions:
contents: readpull-requests: writejobs:
scan:
uses: kernel/security-workflows/.github/workflows/semgrep.yml@mainwith:
extra-configs: '--config p/golang --config p/javascript'codebase-description: 'Go API with Temporal workflows and HTTP handlers'secrets: inheritEnroll repositories that process, store, transmit, or can materially affect production customer data or production operations. Examples include application services, data pipelines, infrastructure-as-code, deployment tooling, internal admin tools, and customer-facing dashboards.
Enrollment supports these controls:
- Testing: pull requests run Kernel's shared Semgrep SAST workflow before merge.
- Change review: merges to
mainrequire human approval through the organization branch/ruleset protection policy. - Protected production changes: repositories require branch protection before changes can land on the production branch.
- Audit evidence: enrolled repositories are visible in Vanta for auditor-facing evidence of security testing and change-management controls.
When enrolling a repository:
- Add the repository to Vanta so it can provide auditor-facing evidence for the relevant security controls.
- Add Kernel security testing with the shared Semgrep workflow above. Example: kernel/conductor#23.
- Confirm merges to
mainrequire a human approval. This is handled by the Kernel organization rulesets. - Add a repo-level required status check for Semgrep. Require the
scan / scancheck to pass before merging so every pull request has a minimal security test gate. Repo rulesets are visible under Settings > Rules > Rulesets; example: kernel/conductor Main Branch ruleset.
Each consumer repo should have a socket.yml at the root (Socket's native config):
version: 2projectIgnorePaths:
- "test/"
- "scripts/"Consumer repos need these secrets (set at org or repo level):
ANTHROPIC_API_KEY— for thesemgrep.ymltriage agent (Claude Code)CURSOR_API_KEY— for the other fix/remediation agents (Cursor)ADMIN_APP_ID+ADMIN_APP_PRIVATE_KEY— GitHub App for write accessSOCKET_API_TOKEN— Socket.dev API token
Consumer repos need these variables (set at org or repo level):
CLAUDE_CODE_PREFERRED_MODEL— model for thesemgrep.ymltriage agent (Claude Code)CURSOR_PREFERRED_MODEL— model for the other Cursor agent invocations