Skip to content

Software Composition Analysis ⚡️ #322

Software Composition Analysis ⚡️

Software Composition Analysis ⚡️ #322

Workflow file for this run

# Security composition analysis for dependencies and Docker images
# Scans for vulnerabilities, uploads SARIF results to GitHub Security tab
# Trigger: schedule (daily), pull_request, push, workflow_dispatch | Permissions: contents:write, security-events:write
name: SCA ⚡️
run-name: Software Composition Analysis ⚡️
on:
schedule:
- cron: "0 0 * * *"
pull_request:
branches: ["**"]
workflow_dispatch:
branch_protection_rule:
permissions: {}
env:
environment: base
timezone: ${{ vars.TIMEZONE }}
jobs:
# 1. Setup infrastructure
setup:
name: Infrastructure 🔧
runs-on: ["ubuntu-latest"]
outputs:
environment: ${{ env.environment }}
timezone: ${{ env.timezone }}
steps:
- name: Environment 🧪
run: echo "Environment set to ${{ env.environment }}"
- name: Timezone 🌐
run: echo "Timezone set to ${{ env.timezone }}"
# 2. Execute security composition analysis
sca:
permissions:
contents: write
pull-requests: write
issues: write
security-events: write
actions: read
name: Execute ⚙️
runs-on: ["ubuntu-latest"]
needs: setup
environment:
name: ${{ needs.setup.outputs.environment }}
steps:
- name: Repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ vars.NODE_VERSION }}
- name: Install
shell: bash
run: npm ci --ignore-scripts
- name: ⚡️ SCA
uses: ministryofjustice/devsecops-actions/sca@f965eb1771ec66cfc41d7d57dc607fa6dfbc10ed # v1.4.0
with:
token: ${{ secrets.GITHUB_TOKEN }} # Mandatory
dependency-review-config-file: "./.github/dependency-review-config.yml" # Optional
docker-images-file: ${{ github.workspace }}/sources.json # Optional