Actions uniquement sur les branches protégées
Quiconque peut pousser une branche peut modifier le workflow qui s’y exécute, et ce workflow voit les secrets du dépôt et de l’organisation. N’exécuter les workflows que sur les branches protégées ferme cette voie : une fois activé, un workflow ne s’exécute que si la ref qui l’a déclenché est une branche protégée.
Il est désactivé par défaut. Activez-le sous Sécurité › Politiques › Règles des dépôts (Build et déploiement › Environnements y renvoie), ou avec :
curl -X PUT -H "Authorization: Bearer ${FREMFORGE_PAT}" -H "Content-Type: application/json" \
-d '{"only_protected_branches": true}' \
"https://frem.sh/_app/api/v1/orgs/acme/security/actions-policy"Le jeton doit avoir la portée policy:write.
Ce qu’il refuse
Lorsque l’interrupteur est activé, le runner refuse un job sauf si :
- la ref est une branche,
refs/heads/<name>. Les push de tags et toute autre ref sont refusés ; - le dépôt possède une règle de protection de branche dont le nom est exactement celui de la branche. Une règle avec joker comme
release/*ne compte pas.
Si fremforge ne peut pas lire la protection de branche du dépôt, le job est refusé plutôt qu’exécuté.
Vérifiez comment vos workflows de pull request et de tag sont déclenchés avant de l’activer : un workflow qui s’exécute sur une autre ref ne s’exécutera plus.