Merci de votre intérêt pour ce lab. Il sert de référence à une formation sur la sécurité des pipelines : chaque contribution doit rester exemplaire.
- Python 3.11 ou supérieur
- Docker 24 ou supérieur
uv(oupip+pip-tools)
git clone https://github.com/stephrobert/secure-python-pipeline.git
cd secure-python-pipeline
uv venv .venv && source .venv/bin/activate
uv pip install --require-hashes -r requirements.txt
uv pip install -r requirements-dev.txtruff check . # lint
pytest # tests
bandit -r src # analyse statique de sécurité
pip-audit -r requirements.txt # vulnérabilités des dépendances- Toute action GitHub est épinglée par SHA de commit 40 caractères,
suivi d'un commentaire
# vX.Y.Z. Jamais@v4, jamais@main. - Les images sont épinglées par digest
@sha256:. - Les dépendances Python passent par
requirements.inpuispip-compile --generate-hashes. On ne modifie jamaisrequirements.txtà la main. - Aucun secret en clair dans le code ou les workflows.
- Toute nouvelle fonctionnalité ou correction de bug est accompagnée d'un
test qui échoue sans le changement et passe avec. Le harnais de fuzzing
(
fuzz/) est exécuté en CI et complète les tests unitaires.
- Créez une branche depuis
main. - Ouvrez une pull request en remplissant le gabarit.
- La CI doit être verte et la revue d'un CODEOWNER est requise avant fusion.