name: Pull Request Security Audit

on:
  push:
    paths:
      - '**/Cargo.toml'
  pull_request:
    paths:
      - '**/Cargo.toml'

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  security-audit:
    runs-on: ubuntu-latest
    if: "!contains(github.event.head_commit.message, 'ci skip')"
    steps:
      - uses: actions/checkout@v4

      - name: Install cargo-audit
        run: cargo install cargo-audit

      - name: Generate lockfile
        run: cargo generate-lockfile

      - name: Audit dependencies
        run: cargo audit
