EasyxLab
Jezik: HR Hrvatski

Prijevod engleskog izvornika izrađen s pomoću UI-ja; referentna verzija je izvornik. Pročitaj na engleskom

Studije / S18

Što štite nepromjenjiva izdanja u tijekovima rada GitHub Actions

Što GitHubova nepromjenjiva izdanja štite u tijekovima rada (workflows) GitHub Actions popularnih repozitorija?

Radna verzijaObjavljeno 2026-10-03

Sažetak

Od 2025-10-28 izdanje (release) na GitHubu može se objaviti kao nepromjenjivo (immutable): njegova se oznaka (tag) u Gitu više ne može pomaknuti ni izbrisati. GitHubova dokumentacija autorima akcija također kaže da oznaka koju žele nastaviti ažurirati, poput oznake glavne verzije v1, ne smije biti vezana uz izdanje, i predlaže im da „preporuče korisnicima da navode glavnu verziju“. Tijek rada (workflow) u kojem piše uses: owner/action@v1 slijedi tu dokumentiranu, predviđenu upotrebu, a nepromjenjiva izdanja ga ne štite. Izmjerili smo što taj mehanizam štiti u praksi, 2026-10-03, isključivo putem API-ja GitHuba:

  • A: 1.000 repozitorija s najviše zvjezdica među javnim repozitorijima koji nisu forkovi ni arhivirani i u koje je pushano u posljednjih 90 dana (prag 29.565 zvjezdica);
  • B: 500 repozitorija nasumično odabranih (sjeme 20261003) iz 20.553 takva repozitorija s 1.000–5.000 zvjezdica.

Njihovi tijekovi rada na zadanoj grani sadržavaju 58.690 udaljenih referenci uses: u A i 10.472 u B. Svaka je razvrstana kao fiksirana (pinned) SHA-om commita, oznakom nepromjenjivog izdanja, promjenjivom oznakom ili granom.

Ondje gdje autor već objavljuje nepromjenjiva izdanja, gotovo nijedna referenca nije zaštićena. Od referenci na oznake akcija čije je najnovije izdanje nepromjenjivo, 312 od 6.898 (4,5 %) upućuje na zaštićenu oznaku u A (95 % interval 2,8–7,1 %, bootstrap po repozitorijima), a 76 od 1.564 (4,9 %) u B. Zaštićene su koncentrirane: jedan repozitorij sadržava 68 od tih 312, a izostavljanje bilo kojeg pojedinačnog repozitorija daje 3,6–4,6 %. Gotovo sve ostale su oznake glavne verzije poput @v7. Za 3.238 od 6.586 (49,2 %) nezaštićenih referenci u A (interval 43,2–56,0 %) oznaka nepromjenjivog izdanja već upućuje na isti commit, pa prelazak na nju ne bi promijenio kôd koji se izvršava.

Najkorištenije akcije. 28 od 50 (56,0 %) repozitorija akcija koje upotrebljava najveći broj repozitorija u A objavljuje svoje najnovije izdanje kao nepromjenjivo. Vlastite akcije GitHuba (first party): 12 od 28 (42,9 %) za actions/* (da: setup-node, setup-python, setup-go, setup-java; ne: checkout, cache, upload-artifact, download-artifact, github-script) i 3 od 6 (50,0 %) za github/*.

Zaštitu nosi fiksiranje SHA-om, i to u manjini repozitorija. Zbirno je u A SHA-om fiksirano 32.978 od 58.690 (56,2 %) udaljenih referenci (interval 50,7–61,7 %), a u B 4.812 od 10.472 (46,0 %) (interval 29,0–60,1 %; 37,7 % bez njegova najvećeg repozitorija, open-telemetry/opentelemetry-python, koji sadržava 1.392 reference). Tipičan repozitorij fiksira malo referenci: medijan udjela SHA po repozitoriju iznosi 5,0 % u A i 0,0 % u B. Svaka udaljena referenca zapisana u datotekama tijekova rada fiksirana je SHA-om u najviše 263 od 891 (29,5 %) repozitorija u A, odnosno u 174 od 891 (19,5 %) ako se izostavi 89 repozitorija koji pozivaju i lokalne akcije koje nismo pročitali; u B u najviše 65 od 398 (16,3 %), odnosno 55 od 398 (13,8 %). Nepromjenjive oznake: 0,6 % referenci u A, 0,8 % u B.

Zaključavanje ovisnosti na razini tijeka rada (workflow-level dependency locking), najavljeno 2026-03-26 uz „Public preview 3-6 months“, na dan 2026-10-03 još nije bilo objavljeno: njegove su stavke na planu razvoja (roadmap) otvorene, a ne dokumentira ga nijedan unos u changelogu ni referenca sintakse tijeka rada. Ove brojke opisuju stanje prije njegove objave.

Prethodni radovi. datosh/pinned-actions prati fiksiranje SHA-om u 10.000 repozitorija s najviše zvjezdica („samo 7 %“ fiksira u potpunosti, travanj 2026.; u njegovoj arhivi 506 od 6.290 repozitorija koji upotrebljavaju Actions, 8,0 %) i u travnju 2026. dodao je provjeru nepromjenjivosti najnovijeg izdanja; joshjohanning/ensure-immutable-actions (od 2025-11) provjerava upotrebljavaju li reference u tijekovima rada nepromjenjiva izdanja. Radovi iz 2022. izmjerili su fiksiranje SHA-om u 1–2 % referenci; rad na NDSS 2026 utvrdio je da 16,2 % repozitorija upućuje na svaku akciju treće strane SHA-om ili oznakom provjerenog autora (verified creator). Naših 29,5 % razlikuje se od 8,0 % kod datosha ponajprije zbog populacije (prvih 1.000 s nedavnom aktivnošću, a ne prvih 10.000) i datuma; prvih 1.000 unosa samog datosha daje 100 od 781 (12,8 %). Koliko smo mogli utvrditi, H1 (koliko referenci na oznake štite nepromjenjiva izdanja) i 49,2 % s nepromjenjivom oznakom na istom commitu dosad nisu bili izmjereni. Rad i izvori: https://easybyte.es/lab/studies/s18/paper/.

Automatizacija i pregled. Studiju su proveli agenti UI-ja i napisali tekst. Rad je provjerio neovisni recenzent UI-ja; njegovi su nalazi primijenjeni (METHOD.md, odjeljak Deviations).

Sukob interesa. EasyByte razvija attest-lint i mogao bi objaviti scripts/uses_check.py, ovdje upotrijebljeni klasifikator, kao besplatni alat. Za razliku od ensure-immutable-actions, koji predlaže fiksiranje SHA-om, on za svaku pomičnu oznaku navodi oznaku nepromjenjivog izdanja na istom commitu.

Citirajte ovu studiju

Citiranje
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}
}