02
La cohérence d’exécution se juge par rapport au changement examiné
Un tag ou une branche peut évoluer : deux exécutions du même fichier de workflow peuvent alors ne pas correspondre au même code, si la référence est déplacée entre les exécutions. La documentation GitHub sur le verrouillage des dépendances décrit le mécanisme de résolution et d’enregistrement utilisé par les lockfiles. L’équipe peut ainsi comparer ce qui a été déclaré, ce qui a été verrouillé et ce qui doit être soumis à revue.
La fixation d’une Action par SHA complet reste une option importante. Elle rend visible dans le workflow le commit auquel la référence doit correspondre ; en revanche, elle peut être moins facile à lire au quotidien, et les responsables doivent maintenir les changements de référence. Un lockfile peut centraliser la trace des dépendances résolues et, selon les règles documentées par GitHub, apporter de la visibilité sur les dépendances transitives. Ce n’est donc pas une opposition simple entre « SHA sécurisé » et « lockfile sécurisé » : la question est de savoir si le contrôle donne aux réviseurs une preuve exploitable et si cette preuve reste à jour.
Aucun de ces mécanismes ne transforme un commit en code fiable. Un SHA fixe l’identité du code référencé ; il ne garantit ni audit de sécurité, ni absence de vulnérabilité, ni adéquation à la politique interne. Avant l’approbation d’une mise à jour, l’équipe doit relier la modification à la provenance du dépôt, au contenu examiné et au besoin réel du workflow. La référence GitHub sur l’utilisation sécurisée des Actions fournit des contrôles complémentaires pour cette revue.
Pour rendre la différence opératoire, nous comparons les options selon leur rôle plutôt que de leur attribuer une note de sécurité absolue :
| Option |
Traçabilité des dépendances |
Charge de maintenance |
Limite principale |
| Référence par tag ou branche |
Faible si la référence peut bouger sans revue |
Faible au départ, mais les changements peuvent surprendre |
La référence n’assure pas à elle seule la stabilité du code exécuté |
| SHA complet dans le workflow |
Le commit visé est visible à la lecture |
Chaque changement de commit doit être examiné et reporté |
Le commit peut être fixe sans être digne de confiance |
| Lockfile de workflow |
Enregistrement centralisé selon les dépendances et règles prises en charge |
Nécessite génération, validation et mises à jour coordonnées |
Ne remplace ni l’examen du code ni les contrôles du Runner |
La bonne mesure est donc la correspondance entre trois éléments : la modification approuvée, l’état consigné par le lockfile et le code effectivement appelé par le workflow. Si l’équipe ne peut pas démontrer cette correspondance, l’ajout d’un fichier ne suffit pas à rendre l’exécution cohérente.