CI/CD Integration
SARIF output, meaningful exit codes, ready-made GitHub Action.
Exit Codes
| Code | Meaning | Use |
|---|---|---|
0 | Clean | Pipeline passes |
1 | Warnings found | Pipeline warns (non-blocking) |
2 | Critical issues found | Pipeline fails |
GitHub Actions
Security scan on every PR
.github/workflows/codesight.yml
name: CodeSight Security Scan
on:
pull_request:
branches: [main]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install CodeSight
run: pip install codesight
- name: Run security scan
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: codesight scan src/ --task security -o sarif > codesight.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: codesight.sarif
Diff-only scan (faster, cheaper)
.github/workflows/codesight-diff.yml
name: CodeSight Diff Review
on:
pull_request:
branches: [main]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install codesight
- name: Review changed files
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: codesight diff --task security -o sarif > codesight.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: codesight.sarif
GitLab CI
.gitlab-ci.yml
codesight-scan:
image: python:3.12
stage: test
script:
- pip install codesight
- codesight scan src/ --task security -o json > report.json
artifacts:
reports:
codequality: report.json
variables:
OPENAI_API_KEY: $OPENAI_API_KEY
Pre-commit Hook
.pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: codesight-security
name: CodeSight Security Check
entry: codesight diff --staged --task security
language: system
pass_filenames: false
stages: [commit]
SARIF Output
SARIF (Static Analysis Results Interchange Format) - the standard used by GitHub's Security tab, VS Code SARIF Viewer, and others.
Terminal
$ codesight security src/auth.py -o sarif > results.sarif
Includes tool info, rules with CWE mappings, results with precise file locations.