From 4068a4dcc182c6dbbf1fc334de33b24aece2441d Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 25 Feb 2026 11:23:07 +1100 Subject: [PATCH 1/3] ci(security): add CodeQL and OSV-Scanner workflows Add static analysis (CodeQL) and dependency vulnerability scanning (OSV-Scanner) to CI. Both run on push/PR to main and weekly on Monday 08:00 UTC. Results upload to GitHub Security tab via SARIF. --- .github/workflows/codeql.yml | 44 +++++++++++++++++++++++++++++++ .github/workflows/osv-scanner.yml | 25 ++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/osv-scanner.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 00000000..d5c7e6ed --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,44 @@ +name: CodeQL + +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + - cron: "0 8 * * 1" + +permissions: + security-events: write + contents: read + actions: read + +jobs: + analyze: + name: Analyze + runs-on: blacksmith-4vcpu-ubuntu-2404 + + strategy: + fail-fast: false + matrix: + language: + - javascript-typescript + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{ matrix.language }}" diff --git a/.github/workflows/osv-scanner.yml b/.github/workflows/osv-scanner.yml new file mode 100644 index 00000000..cc9f0a04 --- /dev/null +++ b/.github/workflows/osv-scanner.yml @@ -0,0 +1,25 @@ +name: OSV-Scanner + +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + - cron: "0 8 * * 1" + +permissions: + security-events: write + contents: read + actions: read + +jobs: + osv-scan: + name: OSV Vulnerability Scan + uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v2.3.3 + with: + scan-args: |- + --recursive + ./ From 5f444095246213a87898c1c2c5d50cd009c3946e Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 25 Feb 2026 12:35:52 +1100 Subject: [PATCH 2/3] ci(security): make OSV-Scanner non-blocking Set fail-on-vuln to false so vulnerability scan results are reported to GitHub Security tab without failing CI. Current findings are all low/medium severity in transitive dev dependencies. --- .github/workflows/osv-scanner.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/osv-scanner.yml b/.github/workflows/osv-scanner.yml index cc9f0a04..20b69f2f 100644 --- a/.github/workflows/osv-scanner.yml +++ b/.github/workflows/osv-scanner.yml @@ -20,6 +20,7 @@ jobs: name: OSV Vulnerability Scan uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v2.3.3 with: + fail-on-vuln: false scan-args: |- --recursive ./ From 7c9bd48b040cb0d4241bb16c3cb1f8170fb072fe Mon Sep 17 00:00:00 2001 From: Toby Hede Date: Wed, 25 Feb 2026 13:09:24 +1100 Subject: [PATCH 3/3] ci(security): upgrade CodeQL action to v4 and remove autobuild Upgrade codeql-action from v3 to v4 (v3 deprecated December 2026). Remove unnecessary Autobuild step since JavaScript/TypeScript analysis does not require a build. --- .github/workflows/codeql.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d5c7e6ed..5538cb08 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -31,14 +31,11 @@ jobs: uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} - - name: Autobuild - uses: github/codeql-action/autobuild@v3 - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 with: category: "/language:${{ matrix.language }}"