---
name: Security

'on':
  push:
    branches: [main, master]
  pull_request:

permissions:
  contents: read

jobs:
  semgrep:
    name: Semgrep SAST
    runs-on: ubuntu-22.04
    container:
      image: semgrep/semgrep@sha256:d3d1be3a3770514d16a6a57b9761575d7536d70f45a5220274f4ec7d55c442b9  # v1.151.0
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0  # v7.0.0
        with:
          persist-credentials: false

      - name: Run semgrep
        run: >
          semgrep --config auto
          --exclude-rule dockerfile.security.last-user-is-root.last-user-is-root
          --error --quiet .

  pip-audit:
    name: Python dependency audit
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0  # v7.0.0
        with:
          persist-credentials: false

      - name: Setup Algo environment
        uses: ./.github/actions/setup-algo

      - name: Run pip-audit
        run: uv run --with pip-audit pip-audit
