name: "CodeQL"

on:
  push:
    branches: [develop, master]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [develop]
    paths-ignore:
      - 'doc/**'
  schedule:
    - cron: '0 13 * * 1'

permissions:
  contents: read

jobs:
  analyze:
    permissions:
      actions: read  # for github/codeql-action/init to get workflow details
      contents: read  # for actions/checkout to fetch code
      security-events: write  # for github/codeql-action/autobuild to send a status report
    name: Analyze
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout repository
        uses: actions/checkout@v4
        with:
          # We must fetch at least the immediate parents so that if this is
          # a pull request then we can checkout the head.
          fetch-depth: 2
      # If this run was triggered by a pull request event, then checkout
      # the head of the pull request instead of the merge commit.
      -
        run: git checkout HEAD^2
        if: ${{ github.event_name == 'pull_request' }}
      -
        name: Initialize CodeQL
        uses: github/codeql-action/init@v3
      -
        name: Autobuild
        uses: github/codeql-action/autobuild@v3
      -
        name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v3
