Skip to content

Workflow dep updates #41

Workflow dep updates

Workflow dep updates #41

Workflow file for this run

name: Code Quality
on:
push:
branches: [ main, master, develop ]
pull_request:
branches: [ main, master, develop ]
jobs:
code-quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Cache pip dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-ruff-${{ hashFiles('**/requirements*.txt') }}
restore-keys: |
${{ runner.os }}-ruff-
- name: Install ruff
run: |
python -m pip install --upgrade pip
pip install ruff
- name: Run ruff format check
run: |
ruff format --check .
- name: Run ruff linter
run: |
ruff check .
- name: Run ruff with annotations
if: always()
run: |
ruff check --output-format=github .
security-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install security tools
run: |
python -m pip install --upgrade pip
pip install bandit[toml] pip-audit
- name: Run bandit security check
run: |
bandit -r gefcore/ -f json -o bandit-report.json || true
bandit -r gefcore/
- name: Run dependency vulnerability scan
run: |
# Use pip-audit for dependency vulnerability scanning (no authentication required)
pip install pip-audit
pip-audit --format=json --output=vulnerability-report.json --requirement=requirements.txt || true
pip-audit --requirement=requirements.txt || echo "pip-audit scan completed with warnings"
- name: Upload security reports
uses: actions/upload-artifact@v4
if: always()
with:
name: security-reports
path: |
bandit-report.json
vulnerability-report.json
dependency-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
scan-ref: '.'
format: 'sarif'
output: 'trivy-results.sarif'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: 'trivy-results.sarif'