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.yml
name: Vulnerability Remediation
on:
schedule:
- cron: '0 3 * * 3'
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
remediate:
uses: kernel/security-workflows/.github/workflows/vuln-remediation.yml@main
with:
go-version-file: 'go.mod' # omit if no Go
setup-bun: true # omit if no Node/Bun
secrets: inheritSemgrep SAST on pull requests with agent-powered triage.
# In your repo's .github/workflows/semgrep.yml
name: Semgrep
on:
pull_request:
branches: [main]
permissions:
contents: read
pull-requests: write
jobs:
scan:
uses: kernel/security-workflows/.github/workflows/semgrep.yml@main
with:
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: 2
projectIgnorePaths:
- "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