name: "CodeQL"

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: "30 1 * * 0"

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest
    permissions:
      security-events: write

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Initialize CodeQL
        uses: github/codeql-action/init@v1
        with:
          languages: javascript

      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v1
        with:
          upload: false
          output: sarif-results

      # Only include files that are public
      - name: filter-sarif
        uses: advanced-security/filter-sarif@main
        with:
          patterns: |
            /src/**/*.*
            -**/*.test.*
          input: sarif-results/javascript.sarif
          output: sarif-results/javascript.sarif

      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v1
        with:
          sarif_file: sarif-results/javascript.sarif
