From e421ca9d49e41c7402d1de4a22bb2d2b876671fd Mon Sep 17 00:00:00 2001 From: Dipen Pradhan Date: Sun, 7 Jun 2026 14:38:35 -0700 Subject: [PATCH] ci: add CodeQL scanning and PR dependency review - CodeQL (java-kotlin) on push/PR to master + weekly cron; manual build mode because Kotlin extraction requires compilation - actions/dependency-review-action fails PRs introducing dependencies with high-severity known vulnerabilities Refs #215 --- .github/workflows/codeql.yml | 53 +++++++++++++++++++++++++ .github/workflows/dependency-review.yml | 20 ++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/dependency-review.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 00000000..a2a8a3c8 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,53 @@ +name: CodeQL + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + schedule: + # Weekly scan so new CodeQL queries run even without pushes + - cron: '26 7 * * 1' + workflow_dispatch: + +permissions: + contents: read + +jobs: + analyze: + name: Analyze (java-kotlin) + runs-on: ubuntu-latest + permissions: + contents: read + security-events: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: temurin + cache: gradle + + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: java-kotlin + build-mode: manual + + # Kotlin extraction requires a real compilation; assembleDebug is the + # cheapest target that compiles every module. + - name: Build for analysis + run: | + chmod +x gradlew + touch local.properties + echo "apiKey=\"\"" >> local.properties + ./gradlew assembleDebug + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: '/language:java-kotlin' diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml new file mode 100644 index 00000000..3bf1aefc --- /dev/null +++ b/.github/workflows/dependency-review.yml @@ -0,0 +1,20 @@ +name: Dependency review + +# Flags PRs that introduce dependencies with known vulnerabilities. +on: + pull_request: + branches: [ master ] + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Dependency review + uses: actions/dependency-review-action@v4 + with: + fail-on-severity: high