mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-08-28 05:25:25 +00:00
Test fixtures are intentionally synthetic inputs (broken/unused code, malformed samples) used to exercise the analyzer. Quality-tool findings on them are noise, not real bugs — they were drowning out actionable signal in the GitHub Security tab. - CodeQL: add `**/test/fixtures/**` to paths-ignore in codeql.yml - ESLint: add `gitnexus-web/test/fixtures/**` to global ignores (the gitnexus/ counterpart was already ignored) - Prettier: add `gitnexus-web/test/fixtures/` to .prettierignore (same gap as ESLint) Real test files (*.test.ts) remain in scope so genuine issues like js/file-system-race and js/insecure-temporary-file in test code still surface.
71 lines
2.6 KiB
YAML
71 lines
2.6 KiB
YAML
name: CodeQL
|
|
|
|
# Static analysis (SAST) for TypeScript/JavaScript and Python sources.
|
|
# Findings upload to the GitHub Security tab as SARIF.
|
|
#
|
|
# Advisory only on first introduction — see docs/plans/2026-05-03-001-feat-automated-security-scans-plan.md.
|
|
# Promote to a required check after baseline triage (operator decision).
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
paths-ignore: ['**.md', 'docs/**', 'LICENSE']
|
|
push:
|
|
branches: [main]
|
|
schedule:
|
|
# Weekly Monday 06:00 UTC — catches advisories newly published against
|
|
# already-merged code without waiting for the next PR.
|
|
- cron: '0 6 * * 1'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
jobs:
|
|
analyze:
|
|
name: Analyze (${{ matrix.language }})
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
permissions:
|
|
actions: read
|
|
contents: read
|
|
# security-events:write is what enables SARIF upload to the Security tab.
|
|
security-events: write
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
language: [javascript-typescript, python]
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
# Don't leave GITHUB_TOKEN in .git/config for downstream steps to read.
|
|
persist-credentials: false
|
|
|
|
- name: Initialize CodeQL
|
|
uses: github/codeql-action/init@0daab03d71ff584ef619d027a3fd9146679c5d84 # v3.35.3
|
|
with:
|
|
languages: ${{ matrix.language }}
|
|
queries: security-and-quality
|
|
# Exclude generated/vendored code; tune after first-run signal.
|
|
# gitnexus/vendor/ holds tree-sitter-proto sources (regenerated, not authored).
|
|
# CodeQL path filters use .gitignore-style globs and do NOT support
|
|
# brace expansion — list each generated parser file separately.
|
|
config: |
|
|
paths-ignore:
|
|
- '**/dist/**'
|
|
- '**/node_modules/**'
|
|
- 'gitnexus/vendor/**'
|
|
- 'gitnexus/src/core/parsing/**/parser.c'
|
|
- 'gitnexus/src/core/parsing/**/parser.js'
|
|
# Test fixtures are intentionally synthetic inputs (broken/unused
|
|
# code, malformed samples) used to exercise the analyzer. CodeQL
|
|
# findings here are noise, not real bugs.
|
|
- '**/test/fixtures/**'
|
|
|
|
- name: Perform CodeQL Analysis
|
|
uses: github/codeql-action/analyze@0daab03d71ff584ef619d027a3fd9146679c5d84 # v3.35.3
|
|
with:
|
|
category: '/language:${{ matrix.language }}'
|