EasyxLab
Keel: ET Eesti

Tehisintellekti tehtud tõlge ingliskeelsest originaalist, mis on viiteversioon. Loe inglise keeles

Uuringud / S18

Tarkvara tarneahelÜlemaailmne

Mida kaitsevad muutumatud väljalasked GitHub Actionsi töövoogudes

Mida kaitsevad GitHubi muutumatud väljalasked (immutable releases) populaarsete hoidlate Actionsi töövoogudes?

TöömustandAvaldatud 2026-10-03

Kokkuvõte

Alates 2025-10-28 saab GitHubi väljalaske avaldada muutumatuna: selle Git-silti (tag) ei saa enam liigutada ega kustutada. GitHubi dokumentatsioon ütleb toimingute (actions) autoritele ka, et silti, mida nad soovivad edasi uuendada, näiteks peaversiooni silti v1, ei tohi siduda väljalaskega, ning soovitab neil „soovitada oma kasutajatel määrata peaversioon“. Töövoog, milles on kirjas uses: owner/action@v1, järgib seda dokumenteeritud ja ettenähtud kasutusviisi ning muutumatud väljalasked seda ei kaitse. Mõõtsime 2026-10-03 ainult GitHubi API kaudu, mida see mehhanism praktikas kaitseb:

  • A: 1 000 enim tähti saanud hoidlat avalike, arhiveerimata hoidlate seas, mis ei ole fork'id ja kuhu on viimase 90 päeva jooksul tehtud push (lävi 29 565 tähte);
  • B: 500 juhuslikult valitud hoidlat (seeme 20261003) 20 553 sellise hoidla seast, millel on 1 000–5 000 tähte.

Nende vaikeharu töövoogudes on A-s 58 690 ja B-s 10 472 kaugviidet uses:. Iga viide liigitati selle järgi, kas see on fikseeritud commit'i SHA, muutumatu väljalaske sildi, muudetava sildi või haru abil.

Kui autor juba avaldab muutumatuid väljalaskeid, ei ole peaaegu ükski viide kaitstud. Sildiviidetest toimingutele, mille uusim väljalase on muutumatu, osutab kaitstud sildile A-s 312 viidet 6 898-st (4,5%; 95% vahemik 2,8–7,1%, bootstrap hoidlate kaupa) ja B-s 76 viidet 1 564-st (4,9%). Kaitstud viited on koondunud: ühes hoidlas on neist 312-st 68 ja ükskõik millise üksiku hoidla väljajätmisel on tulemus 3,6–4,6%. Peaaegu kõik ülejäänud on peaversiooni sildid, näiteks @v7. A kaitsmata viidetest 3 238 puhul 6 586-st (49,2%; vahemik 43,2–56,0%) osutab samale commit'ile juba muutumatu väljalaske silt, nii et sellele üleminek ei muudaks käivitatavat koodi.

Enim kasutatud toimingud. A-s kõige rohkemate hoidlate kasutatud 50 toimingute hoidlast 28 (56,0%) avaldavad oma uusima väljalaske muutumatuna. GitHubi enda toimingud: actions/* puhul 12 28-st (42,9%) (jah: setup-node, setup-python, setup-go, setup-java; ei: checkout, cache, upload-artifact, download-artifact, github-script) ja github/* puhul 3 6-st (50,0%).

Kaitset pakub SHA-fikseerimine, kuid vähemuses hoidlatest. Koondatult on A-s SHA-ga fikseeritud 32 978 kaugviidet 58 690-st (56,2%; vahemik 50,7–61,7%) ja B-s 4 812 viidet 10 472-st (46,0%; vahemik 29,0–60,1%; 37,7% ilma B suurima hoidlata open-telemetry/opentelemetry-python, milles on 1 392 viidet). Tüüpiline hoidla fikseerib vähe: hoidlapõhise SHA-osakaalu mediaan on A-s 5,0% ja B-s 0,0%. Kõik töövoofailidesse kirjutatud kaugviited on SHA-ga fikseeritud A-s kõige rohkem 263 hoidlas 891-st (29,5%) ja 174 hoidlas 891-st (19,5%), kui jätta välja 89 hoidlat, mis kutsuvad lisaks kohalikke toiminguid, mida me ei lugenud; B-s kõige rohkem 65 hoidlas 398-st (16,3%) või 55 hoidlas 398-st (13,8%). Muutumatud sildid: A-s 0,6% ja B-s 0,8% viidetest.

Töövoo tasemel sõltuvuste lukustamine, millest teatati 2026-03-26 märkega „Public preview 3-6 months“, ei olnud 2026-10-03 seisuga välja antud: selle teekaardi kirjed on avatud ning ükski muudatuslogi kirje ega töövoo süntaksi dokumentatsioon seda ei kirjelda. Need arvud kirjeldavad olukorda enne selle väljaandmist.

Varasemad tööd. datosh/pinned-actions jälgib SHA-fikseerimist 10 000 enim tähti saanud hoidlas („ainult 7%“ fikseerib täielikult, aprill 2026; selle arhiivis 506 Actionsi kasutavat hoidlat 6 290-st, 8,0%) ning lisas 2026. aasta aprillis uusima väljalaske muutumatuse kontrolli; joshjohanning/ensure-immutable-actions (alates 2025-11) kontrollib, kas töövoogude viited kasutavad muutumatuid väljalaskeid. Teadusartiklid mõõtsid 2022. aastal SHA-fikseerimise osakaaluks 1–2% viidetest; NDSS 2026 leidis, et 16,2% hoidlatest viitab igale kolmanda osapoole toimingule SHA või kinnitatud looja (verified creator) sildi kaudu. Meie 29,5% erineb datoshi 8,0%-st peamiselt populatsiooni (1 000 tipphoidlat hiljutise tegevusega, mitte 10 000 tipphoidlat) ja kuupäeva poolest; datoshi enda esimesed 1 000 kirjet annavad 100 hoidlat 781-st (12,8%). Niipalju kui leida suutsime, ei olnud H1 (mitut sildiviidet muutumatud väljalasked kaitsevad) ega 49,2%, millel on samal commit'il muutumatu silt, varem mõõdetud. Artikkel ja allikad: https://easybyte.es/lab/studies/s18/paper/.

Automatiseerimine ja ülevaatus. Uuringu viisid läbi ja teksti kirjutasid TI-agendid. Tööd kontrollis sõltumatu TI-ülevaataja; selle leiud on arvesse võetud (METHOD.md, jaotis Deviations).

Huvide konflikt. EasyByte arendab tööriista attest-lint ja võib avaldada siin kasutatud klassifikaatori scripts/uses_check.py tasuta tööriistana. Erinevalt tööriistast ensure-immutable-actions, mis soovitab SHA-fikseerimist, näitab see iga liigutatava sildi kohta muutumatu väljalaske silti, mis osutab samale commit'ile.

Viita sellele uuringule

Viide
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
BibTeX
@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}
}