Opublikowana została wersja platformy współpracy Forgejo 9.0, która umożliwia uruchomienie na własnych serwerach systemu do współpracy z repozytoriami Git, przypominając pod względem zadań GitHub, Bitbucket i Gitlab. Forgejo jest forkiem projektu Gitea, który z kolei wyodrębnił się z platformy Gogs. Odsunięcie Forgejo miało miejsce w 2022 roku po próbach komercjalizacji Gitea i przejęciu zarządzania przez firmę komercyjną. Projekt Forgejo przestrzega zasad niezależnego zarządzania i odpowiedzialności przed społecznością. Z Forgejo przeszedł hosting Git Codeberg.org. Kod projektu napisany jest w języku Go i udostępniany na licencji MIT.
Kluczowymi cechami platformy jest niskie zużycie zasobów (może być używana na płycie Raspberry Pi lub w tanich VPS) oraz prosty proces instalacji. Oferuje standardowe możliwości pracy z projektami, takie jak zarządzanie zadaniami, śledzenie problemów (issues), pull-requesty, wiki, narzędzia do koordynacji grup programistów, przygotowanie wydań, automatyzacja publikacji pakietów w repozytoriach, zarządzanie uprawnieniami dostępu, integracja z platformami CI, przeszukiwanie kodu, autoryzacja przez LDAP i OAuth, dostęp do repozytorium za pomocą protokołów SSH oraz HTTP/HTTPS, połączenie web-huków dla integracji z Slack, Discord i innymi serwisami, wsparcie dla Git-hooks i Git LFS oraz narzędzia do migracji i lustrzania repozytoriów. Szczególnie wyróżnia się możliwość wykorzystania protokołu ActivityPub do łączenia w federacyjną sieć poszczególnych serwerów programistów.
Główne zmiany:
- Dokonano przejścia z licencji MIT na licencję copyleft GPLv3+ dla nowego kodu. Zmiana licencji uprości wykorzystanie w projekcie kodu, który jest udostępniany na licencjach copyleft, niekompatybilnych z MIT, a także zmniejszy ryzyko stosowania nieuczciwych praktyk biznesowych, takich jak uzależnienie użytkownika od konkretnego dostawcy czy tworzenie zmodyfikowanych wersji Forgejo, rozpowszechnianych z dodatkowymi ograniczeniami.
- Dodano początkową realizację systemu konfigurowalnych limitów, które pozwalają na ograniczenie rozmiaru danych użytkowników na serwerze. Realizacja oparta jest na wprowadzeniu miękkich limitów (soft quota), których przekroczenie jest sprawdzane tylko przed wykonaniem operacji, ale nie jest ograniczane w przypadku przekroczenia limitu w trakcie ich wykonywania.
- Zezwolono na użycie kluczy SSH zamiast haseł do uwierzytelniania operacji lustrzanych.
- Dla pracy z Git pozostawiono tylko backend oparty na standardowym narzędziu Git. Usunięto backend go-git z realizacją Gita w języku Go, co uprości utrzymanie, pozwoli rozwijać Forgejo bez względu na funkcjonalność go-git i wyeliminować problemy z uszkodzeniem repozytoriów, które występowały w go-git.
- Usunięto dostawcę sesji oparty na bazie danych Couchbase, ponieważ jest on związany z oprogramowaniem o ograniczonej dostępności, którego możliwości testowania są ograniczone.
Źródło: opennet.ru
