I tag mutabili rompono la fiducia nei workflow GitHub Actions
In GitHub Actions la fiducia non sta nel nome del repository, ma nel riferimento che lo punta: se è un tag o un branch, quel punto può essere spostato e il workflow finisce per eseguire codice diverso senza cambiare sintassi. Dopo il caso tj-actions/changed-files, Semgrep ha esteso il pinning a livello organizzativo su circa 350 repository, perché il problema reale è la mutabilità della reference, non il singolo action esterno.
Il controllo “Require actions to be pinned to a full-length commit SHA” blocca l’esecuzione quando trova tag, branch o dipendenze transitive non pinnate. In pratica, un `@v4` o un `@main` resta un bersaglio mobile; solo un commit SHA a 40 caratteri congela la revisione esatta che si intendeva eseguire.
Per chi gestisce più repository, la difficoltà non è la sintassi ma il rollout coordinato: una enforcement org-wide può fermare in blocco molti job CI che sembrano innocui. Il punto non è solo proteggere l’action noto, ma togliere fiducia a tutto ciò che può essere ritargettato lungo la catena.