programmatūra · 5 min · 18.07.2026

Forgejo 16.0 pārvieto koda recenzijas komentārus līdzi rindai — ar git blame –reverse

Forgejo 16.0, kas iznāca 16. jūlijā, atrisina vecu problēmu, kas kaitināja katru, kas kādreiz recenzējis lielu izmaiņu kopu: koda recenzijas komentārs, kas piesiets pie konkrētas rindas, pēc dažiem commit vairs nerādās tur, kur vajag. Jaunā versija tagad izmanto git blame --reverse, lai izsekotu, kur rinda aizceļojusi, un pārvieto komentāru līdzi. Ja rinda vispār pazudusi, komentārs tiek atzīmēts kā novecojis.

Forgejo ir pašmitināma Git repozitoriju platforma — atzars no Gitea, ko uztur Codeberg kopiena. To izvēlas komandas, kas negrib savu kodu turēt GitHub vai GitLab mākonī. Versija 16.0 nav LTS laidiens; tās atbalsts beidzas 29. oktobrī. Kam vajag stabilitāti ilgākam laikam, paliek pie iepriekšējā LTS laidiena 15.0, ko atbalstīs līdz 2027. gada 15. jūlijam.

Forgejo radās 2022. gada beigās kā Gitea atzars pēc tam, kad Gitea pārgāja privāta uzņēmuma pārziņā un daļa kopienas gribēja platformu, ko pārvalda bezpeļņas struktūra. Projektu tagad uztur Codeberg e.V., un laidieni iznāk regulāri: LTS versijas ar garāku atbalstu un starplaidieni kā 16.0, kur jaunās funkcijas parādās ātrāk, bet atbalsts ir īsāks. Kods rakstīts Go valodā, un visu platformu var palaist no viena bināra faila.

Recenzijas komentāri, kas paliek pie savas rindas

Vecā uzvedība bija paredzama un nepatīkama. Recenzents atstāj piezīmi pie 40. rindas, autors pievieno commit, kas ievieto desmit rindas augstāk, un piezīme pēkšņi karājas pie pavisam cita koda. Forgejo 16.0 to risina ar apgriezto blame: sistēma noskaidro, kurp rinda pārcēlusies vēlākajos commit, un pārliek komentāru uz tās jauno vietu. Ja kāds rindu izdzēsis, komentārs kļūst novecojis, nevis maldinošs.

Klāt nācis arī vienkāršs, bet gaidīts uzlabojums: recenzents var piesiet vienu komentāru vairākām rindām, turot Shift un iezīmējot rindu diapazonu. Līdz šim komentāru varēja piesiet tikai vienai rindai. PR skatā pārstrādāts arī commit saraksts — jaunais izkārtojums labāk pielāgojas šauriem ekrāniem, un izstrādātāji plāno to pārnest arī uz pārējām vietām, kur rādās commit saraksti.

Paziņojumi pa kategorijām

Līdz šim repozitorija sekošana nozīmēja visu — katru problēmu, katru PR, katru laidienu. Forgejo 16.0 ļauj izvēlēties, ko tieši saņemt: problēmas, pull request, laidienus vai jebkuru šo kombināciju. Aizmugure pārrakstīta tā, lai vēlāk varētu pievienot vēl smalkāku dalījumu.

Konteineru attēli vairs automātiski neuzticas katrai starpniekservera adresei — administratoram tagad pašam jānorāda, no kurām adresēm vai tīkliem nāk uzticamā reverse proxy plūsma.

Šis drošības pārkārtojums ir svarīgs ikvienam, kas Forgejo laiž konteinerā aiz reverse proxy ar starpniekservera autentifikāciju. Agrāk REVERSE_PROXY_TRUSTED_PROXIES pēc noklusējuma bija *, kas nozīmē — jebkurš, kas var aizsniegt konteineru, spēja viltot autentifikācijas galvenes. Tagad noklusējums ir slēgts, un pēc jaunināšanas šī iestatījuma norādīšana ir obligāta, citādi proxy autentifikācija nestrādās.

Forgejo Actions: rindas kārtība un tīrīšana

CI dzinējs saņēma vairākus praktiskus labojumus. Atsevišķu workflow palaišanu tagad var manuāli izcelt rindā — prioritizētie darbi nostājas parasto gaidošo palaišanu priekšā. Nosacījumi, kas nosaka, vai workflow vispār jāpalaiž, tiek pārbaudīti, pirms darbu nosūta Runner, tāpēc atkrīt liekas palaišanas, kas tik un tā uzreiz beigtos.

Pabeigtās workflow palaišanas kopā ar to žurnāliem un artefaktiem tagad var dzēst gan tīmekļa saskarnē, gan caur HTTP API — līdz šim vecās palaišanas krājās bez ērta veida, kā tās aizvākt. Pievienoti arī jauni API galapunkti pilna vai atsevišķa darba žurnāla iegūšanai, un cron izteiksmes tagad saprot laika joslas.

JWT autentifikācija statisko žetonu vietā

Jauna funkcija Authorized Integrations ļauj ārējām sistēmām un lokāliem Forgejo Actions workflow autentificēt API un Git darbības ar parakstītiem JSON Web Token, nevis ar statiskiem piekļuves žetoniem. Statiskais žetons, ja tas noplūst, der uzbrucējam tik ilgi, kamēr kāds to atsauc; JWT ir īslaicīgs un piesiets konkrētam kontekstam, tāpēc noplūdušam žetonam ir mazāka vērtība.

Migrācijas ekrāns tagad rāda, cik problēmu un pull request jau pārnests no avota repozitorija. Skaitītājs parādās pēc noklusējuma migrācijām, kurās ir vismaz 45 vienumi — pietiekami, lai redzētu, ka gara migrācija tiešām virzās uz priekšu, nevis iestrēgusi. Sīkāki uzlabojumi ietver samazinātus avatāru attēlus mazākai joslas slodzei un Git konfigurāciju, kas noraida nekonsekventus objektus. Git āķu paraugu faili izņemti no katra jauna repozitorija — tas ietaupa ap 20 KiB uz repozitoriju.

Kam Forgejo jau darbojas produkcijā un stabilitāte ir svarīgāka par jaunākajām funkcijām, jāpaliek pie 15.0 LTS līdz nākamajam LTS laidienam. Kas grib apgrieztā blame komentāru izsekošanu un JWT autentifikāciju jau tagad, tam 16.0 der — ar nosacījumu, ka pirms jaunināšanas tiek nokonfigurēts REVERSE_PROXY_TRUSTED_PROXIES.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie