Skip to content

feat(ats): add batch screening mode for multi-resume ranking #126

feat(ats): add batch screening mode for multi-resume ranking

feat(ats): add batch screening mode for multi-resume ranking #126

Workflow file for this run

name: Code Quality
on:
push:
branches: [ main, development ]
pull_request:
branches: [ main, development ]
jobs:
security:
name: Security Analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
version: "latest"
- name: Install dependencies
run: uv sync --extra utils --group dev
- name: Run Bandit (security linter)
run: |
uv run bandit -r src/simple_resume/ -f json -o bandit-report.json || true
uv run bandit -r src/simple_resume/
- name: Run Safety (dependency security)
run: |
uv run safety scan --ignore 51457 --save-as json safety-report.json || true
- name: Upload security reports
uses: actions/upload-artifact@v4
if: always()
with:
name: security-reports
path: |
bandit-report.json
safety-report.json
complexity:
name: Code Complexity Analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
version: "latest"
- name: Install dependencies
run: uv sync --extra utils --group dev
- name: Install complexity tools
run: uv pip install radon xenon
- name: Run Radon (cyclomatic complexity)
run: |
uv run radon cc src/simple_resume/ --min B
uv run radon mi src/simple_resume/ --min B
uv run radon cc src/simple_resume/ --json > radon-report.json || true
- name: Run Xenon (complexity monitoring)
run: uv run xenon --max-absolute B --max-modules A --max-average A src/simple_resume/ || true
- name: Upload complexity reports
uses: actions/upload-artifact@v4
if: always()
with:
name: complexity-reports
path: radon-report.json
documentation:
name: Documentation Quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
version: "latest"
- name: Install dependencies
run: uv sync --extra utils --group dev
- name: Check docstring coverage
run: |
uv run interrogate src/simple_resume/ --fail-under 80 --quiet || true
- name: Check README links
run: |
npm install -g markdown-link-check
markdown-link-check README.md || true
- name: Validate Markdown files
run: |
find . -name "*.md" -not -path "./.git/*" -not -path "./.venv/*" -not -path "./htmlcov/*" -exec sh -c 'uv run python -c "import markdown; content=open(\"\\$1\").read(); markdown.markdown(content); print(\"\\$1 is valid markdown\")"' _ {} \;