Studji / S18
X’jipproteġu r-rilaxxi immutabbli fil-workflows ta’ GitHub Actions
X’jipproteġu r-rilaxxi immutabbli (immutable releases) ta’ GitHub fil-workflows ta’ Actions tar-repożitorji popolari?
Sommarju
Mit-28 ta’ Ottubru 2025, rilaxx ta’ GitHub jista’ jiġi ppubblikat bħala immutabbli: it-tikketta Git (tag) tiegħu ma tistax tibqa’ tiġi mċaqalqa jew imħassra. Id-dokumentazzjoni ta’ GitHub tgħid ukoll lill-awturi tal-azzjonijiet (actions) li tikketta li jridu jibqgħu jaġġornaw, bħat-tikketta tal-verżjoni ewlenija v1, m’għandhiex tintrabat ma’ rilaxx, u tissuġġerixxi li “jirrakkomandaw lill-utenti tagħhom jispeċifikaw verżjoni ewlenija”. Workflow li jikteb uses: owner/action@v1 isegwi dak l-użu dokumentat u intenzjonat, u r-rilaxxi immutabbli ma jipproteġuhx. Kejjilna x’jipproteġi l-mekkaniżmu fil-prattika, fit-3 ta’ Ottubru 2026, permezz tal-API ta’ GitHub biss:
- A: l-ewwel 1,000 repożitorju skont l-istilel fost ir-repożitorji pubbliċi, li mhumiex forks u mhumiex arkivjati, li rċevew push fl-aħħar 90 jum (limitu: 29,565 stilla);
- B: 500 repożitorju magħżula b’mod każwali (żerriegħa 20261003) mill-20,553 repożitorju bħal dawn b’1,000–5,000 stilla.
Il-workflows tal-fergħa predefinita tagħhom fihom 58,690 referenza remota uses: f’A u 10,472 f’B. Kull waħda ġiet ikklassifikata skont jekk hijiex iffissata bl-SHA tal-commit, bit-tikketta ta’ rilaxx immutabbli, b’tikketta li tista’ tinbidel jew b’fergħa.
Fejn l-awtur diġà jippubblika rilaxxi immutabbli, kważi l-ebda referenza mhi protetta. Mir-referenzi għal tikketti ta’ azzjonijiet li l-aħħar rilaxx tagħhom huwa immutabbli, 312 minn 6,898 (4.5%) jippuntaw lejn tikketta protetta f’A (intervall ta’ 95%: 2.8–7.1%, bootstrap fuq ir-repożitorji), u 76 minn 1,564 (4.9%) f’B. Dawk protetti huma kkonċentrati: repożitorju wieħed fih 68 mit-312, u jekk jitħalla barra kwalunkwe repożitorju wieħed ir-riżultat ikun 3.6–4.6%. Kważi l-bqija kollha huma tikketti tal-verżjoni ewlenija bħal @v7. Għal 3,238 minn 6,586 (49.2%) tar-referenzi mhux protetti f’A (intervall 43.2–56.0%), diġà hemm tikketta ta’ rilaxx immutabbli li tippunta lejn l-istess commit, għalhekk il-qlib għaliha ma jbiddilx il-kodiċi li jitħaddem.
L-azzjonijiet l-aktar użati. 28 minn 50 (56.0%) tar-repożitorji tal-azzjonijiet użati mill-akbar numru ta’ repożitorji f’A jippubblikaw l-aħħar rilaxx tagħhom bħala immutabbli. Dawk ta’ GitHub stess: 12 minn 28 (42.9%) għal actions/* (iva: setup-node, setup-python, setup-go, setup-java; le: checkout, cache, upload-artifact, download-artifact, github-script) u 3 minn 6 (50.0%) għal github/*.
L-iffissar bl-SHA jagħti l-protezzjoni, f’minoranza tar-repożitorji. Flimkien, 32,978 minn 58,690 (56.2%) referenza remota f’A huma ffissati bl-SHA (intervall 50.7–61.7%) u 4,812 minn 10,472 (46.0%) f’B (intervall 29.0–60.1%; 37.7% mingħajr l-akbar repożitorju tiegħu, open-telemetry/opentelemetry-python, li fih 1,392 referenza). Ir-repożitorju tipiku jiffissa ftit: il-medjan tas-sehem SHA għal kull repożitorju huwa 5.0% f’A u 0.0% f’B. Ir-referenzi remoti kollha miktuba fil-fajls tal-workflows huma ffissati bl-SHA f’mhux aktar minn 263 minn 891 repożitorju (29.5%) f’A, u f’174 minn 891 (19.5%) jekk jitħallew barra l-89 li jsejħu wkoll azzjonijiet lokali li ma qrajniex; f’B, f’mhux aktar minn 65 minn 398 (16.3%), jew f’55 minn 398 (13.8%). Tikketti immutabbli: 0.6% tar-referenzi f’A, 0.8% f’B.
L-illokkjar tad-dipendenzi fil-livell tal-workflow (workflow-level dependency locking), imħabbar fis-26 ta’ Marzu 2026 b’“Public preview 3-6 months”, ma kienx għadu ħareġ fit-3 ta’ Ottubru 2026: l-elementi tiegħu fir-roadmap għadhom miftuħa, u l-ebda entrata fil-changelog jew referenza tas-sintassi tal-workflows ma tiddokumentah. Dawn iċ-ċifri jiddeskrivu s-sitwazzjoni qabel ma joħroġ.
Xogħol preċedenti. datosh/pinned-actions isegwi l-iffissar bl-SHA fl-ewwel 10,000 repożitorju skont l-istilel (“7% biss” jiffissaw kollox, April 2026; 506 minn 6,290 repożitorju li jużaw Actions, 8.0%, fl-arkivju tiegħu) u żied kontroll tal-immutabbiltà tal-aħħar rilaxx f’April 2026; joshjohanning/ensure-immutable-actions (minn Novembru 2025) jivverifika jekk ir-referenzi tal-workflows jużawx rilaxxi immutabbli. Artikli xjentifiċi kejlu l-iffissar bl-SHA f’1–2% tar-referenzi fl-2022; NDSS 2026 sab li 16.2% tar-repożitorji jirreferu għal kull azzjoni ta’ parti terza bl-SHA jew b’tikketta ta’ kreatur ivverifikat (verified creator). Id-29.5% tagħna jvarja mit-8.0% ta’ datosh l-aktar minħabba l-popolazzjoni (l-ewwel 1,000 b’attività reċenti, mhux l-ewwel 10,000) u d-data; l-ewwel 1,000 entrata ta’ datosh stess jagħtu 100 minn 781 (12.8%). Safejn stajna nsibu, H1 (kemm referenzi għal tikketti jipproteġu r-rilaxxi immutabbli) u l-49.2% b’tikketta immutabbli fl-istess commit ma kinux ġew imkejla qabel. L-artiklu u s-sorsi: https://easybyte.es/lab/studies/s18/paper/.
Awtomazzjoni u reviżjoni. Aġenti tal-IA wettqu l-istudju u kitbu t-test. Reviżur indipendenti tal-IA ivverifika x-xogħol; is-sejbiet tiegħu ġew applikati (METHOD.md, it-taqsima Deviations).
Interessi konfliġġenti. EasyByte tiżviluppa attest-lint u tista’ toħroġ scripts/uses_check.py, il-klassifikatur użat hawn, bħala għodda b’xejn. B’differenza minn ensure-immutable-actions, li jissuġġerixxi l-iffissar bl-SHA, dan jirrapporta, għal kull tikketta mobbli, it-tikketta tar-rilaxx immutabbli fl-istess commit.
Iċċita dan l-istudju
EasyxLab (2026). What immutable releases protect in GitHub Actions workflows. Study S18. EasyByte Hub S. Coop. Mad. https://github.com/easybytehub/easyxlab/tree/main/studies/s18-actions-immutable-releases@techreport{easyxlab_s18,
title = {What immutable releases protect in GitHub Actions workflows},
author = {{EasyxLab}},
institution = {EasyByte Hub S. Coop. Mad.},
number = {S18},
year = {2026},
url = {https://github.com/easybytehub/easyxlab/tree/main/studies/s18-actions-immutable-releases}
}