Il pinning a SHA di commit completo significa fare riferimento a una dipendenza tramite il suo hash Git esatto, in genere lo SHA a 40 caratteri, invece che tramite il nome di un branch o un tag. Nell'automazione basata su Git, come GitHub Actions, questo blocca un workflow a una versione specifica di un'azione o di un componente riutilizzabile.
Questo è importante perché branch e tag sono modificabili: il loro contenuto può cambiare senza che cambi il nome del riferimento. Se un attaccante compromette un repository, sposta un tag o sostituisce il codice dietro un nome familiare, i workflow che si fidano del riferimento modificabile possono eseguire codice diverso da quello previsto. Il pinning a uno SHA completo rende molto più difficile questo tipo di sostituzione. I difensori lo usano per ridurre il rischio della supply chain, poi aggiornano il pin solo dopo aver esaminato un nuovo commit. È un controllo pratico per trattare le azioni di terze parti come dipendenze eseguibili, non come semplice configurazione statica.


