Skip to content
Apothem
Sécurité

Protection de branche

Protection de branche d'Apothem sur main — porte de revue, contrôle par vérifications de statut et restrictions de push.

La branche main d'Apothem est protégée par la protection de branche de GitHub après la publication de l'unique commit de release neuf. La protection applique la discipline d'ensemble de modifications déclarée dans rules/production-ready-prs.md et alimente les vérifications Branch-Protection et Code-Review d'OpenSSF Scorecard pour les travaux futurs.

Déclaration du jeu de règles

ParamètreValeurJustification
CiblemainProtège la branche par défaut publique.
Statut d'applicationactiveN'est pas en mode simulation.
Exiger une pull request avant la fusionLes pushes directs vers main sont bloqués.
Revues d'approbation requises1Porte minimale de revue humaine pour un nouveau projet à mainteneur unique.
Rejeter les approbations obsolètes sur les nouveaux commitsUn force-push après approbation redéclenche la revue.
Exiger une revue des Code OwnersReportéActiver ceci avant l'arrivée d'un deuxième mainteneur peut bloquer les PR à mainteneur unique.
Exiger l'approbation du push révisable le plus récentLe dernier commit poussé doit porter une approbation.
Résolution de conversation requiseLes fils de revue ouverts bloquent la fusion.
Exiger que les vérifications de statut réussissentWorkflow CI + Scorecard + CodeQL + pip-audit.
Vérifications de statut requisesVérifications cœur actuellesLa liste requise est rafraîchie depuis le dernier commit de release au vert.
Exiger que les branches soient à jourEmpêche les régressions par fusion obsolète.
Exiger des commits signésRecommandéLes commits de release locaux sont signés ; l'application complète attend que la documentation d'intégration des contributeurs décrive la configuration SSH/GPG.
Exiger un historique linéaireGarde l'historique public à ligne unique compréhensible.
Bloquer les force-pushesLa réécriture d'historique sur main est bloquée.
Autoriser la suppressionLa branche main ne peut pas être supprimée.

Contrainte de mainteneur unique

GitHub ne permet pas aux fichiers du dépôt de créer un historique de revue humaine. Le dépôt applique donc la protection de branche la plus forte qui ne crée pas de blocage pour son modèle de mainteneur actuel : une revue d'approbation, rejet des revues obsolètes, approbation du dernier push, résolution de conversation, vérifications de statut, historique linéaire, et aucune suppression de branche ni force-push. Lorsqu'un deuxième mainteneur rejoindra, la revue CODEOWNERS et un minimum de deux relecteurs deviendront le réglage le plus fort.

Exigences des vérifications de statut

Les quatre vérifications de statut à contrôle strict déclarées ci-dessus :

  • ci — matrice de tests complète + ruff + mypy + bandit + Trivy + pip-audit sur l'arbre de dépendances résolu
  • Scorecard — exécution d'OpenSSF Scorecard sans régression par vérification
  • CodeQL — packs de requêtes security-extended pour python + actions
  • pip-audit — analyse de vulnérabilités hebdomadaire + par PR contre l'arbre de dépendances résolu

Tout autre workflow peut rapporter un statut, mais son résultat ne contrôle pas la fusion à moins qu'il ne soit promu dans la liste des vérifications requises.

Cadence d'audit

Ce fichier est revu à chaque audit de sécurité et à chaque point de contrôle d'ingénierie de release. La dérive entre ce fichier et la configuration réelle de protection de branche est un constat de haute sévérité.

Références

On this page