Skip to content

data_validation: OWASP 2026 lists, CVSS v4.0, format checks, 2020-12 schemas #15

data_validation: OWASP 2026 lists, CVSS v4.0, format checks, 2020-12 schemas

data_validation: OWASP 2026 lists, CVSS v4.0, format checks, 2020-12 schemas #15

name: datasets-validate-all
# Runs data_validation/run_all_checks.py: every dataset's own validate.py
# (including ones in sub-collections), then the shared checks in
# data_validation/validators/ on every data file, and the cross-dataset
# consistency check. The tests job runs the data_validation test suite on
# each supported Python. The coverage report and anomaly list go to the job
# summary for reviewers; they never fail the job.
on:
push:
branches: [main]
paths:
- 'datasets/**'
- 'data_validation/**'
- '.github/workflows/datasets-validate-all.yml'
pull_request:
paths:
- 'datasets/**'
- 'data_validation/**'
- '.github/workflows/datasets-validate-all.yml'
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.11'
- name: Install requirements
run: python -m pip install --quiet -r data_validation/requirements.txt
- name: Run every dataset validator and the shared checks
run: python data_validation/run_all_checks.py --verbose
- name: Cross-dataset consistency
run: python data_validation/qc_tools/consistency_check.py
- name: Coverage report and anomalies (job summary)
if: always()
run: |
python data_validation/qc_tools/bias_report.py >> "$GITHUB_STEP_SUMMARY"
{
echo
echo '## Anomalies'
echo
echo '```'
python data_validation/qc_tools/anomaly_detector.py
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
# The tooling's own tests on every Python release it supports.
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.11', '3.12', '3.13']
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}
- name: Install requirements
run: python -m pip install --quiet -r data_validation/requirements.txt
- name: data_validation tests
run: python -m pytest data_validation/tests -v