Gitea

Gitea

Forge Git en Go avec tickets, kanban et Gitea Actions

Gitea est une forge Git à installer sur son propre serveur, écrite en Go : dépôts, pull requests avec revue de code, tickets, tableaux kanban, wiki, registre de paquets et intégration continue (Gitea Actions). Le serveur tient dans un binaire ou une image Docker. D'après sa documentation, deux cœurs et 1 Go de RAM suffisent en général à une petite équipe.

Gitea est issu d'un fork de Gogs, dont il garde la licence MIT ; sa documentation précise que presque tout le code a changé depuis. Le comparatif des forges Git auto-hébergées met sa gouvernance et ses fonctions en regard de celles des autres forges.

Syntaxe GitHub Actions et registre de 23 formats de paquets

  • Des workflows au format GitHub Actions : Gitea Actions lit la syntaxe de GitHub et réutilise les actions écrites pour lui, comme actions/checkout. Gitea accepte en plus une URL complète dans uses:, des actions écrites en Go et des planifications @daily ou @weekly.
  • 23 formats de paquets à côté du code : npm, PyPI, Maven, Cargo, Go, Composer, NuGet, Helm, Debian, RPM, Alpine, Arch et images de conteneurs, entre autres.
  • Fournisseur OAuth 2.0 et annuaires LDAP : d'autres applications peuvent déléguer leur connexion à Gitea, qui lit lui-même ses comptes dans un ou plusieurs annuaires LDAP ou Active Directory.
  • Bots, jetons de déploiement et journal d'audit depuis la 28.0.0 : comptes bots gérés depuis l'administration, l'API ou la ligne de commande, jetons de déploiement pour les accès HTTPS, et journal d'audit désactivé par défaut, exportable en JSONL.

Direction partagée avec une société, SAML en édition payante

Une société partage la direction du projet depuis 2023. Un billet du 24 octobre 2022 annonce la création de Gitea Limited, à qui Lunny Xiao, l'un des owners du projet depuis 2016, a transféré les domaines et la marque. Début 2023, l'équipe des trois owners élus a cédé la place à un comité technique (TOC) de six sièges : trois élus pour un an parmi les mainteneurs sans lien avec la société, trois nommés par elle. Lors d'un vote, la voix des élus pèse « légèrement plus ».

Forgejo est né de ce transfert. Le fork Forgejo date d'octobre 2022. Son site affirme que les domaines et la marque sont passés à une société à but lucratif à l'insu de la communauté et sans son accord, et qualifie Gitea d'« open core ». Fork dur depuis début 2024, Forgejo est développé sous l'égide de Codeberg e.V., l'association qui opère Codeberg.

Le dépôt est sous MIT, SAML est payant. Le tableau comparatif de la documentation marque SAML absent de la version libre. L'édition Enterprise, auto-hébergée et facturée par utilisateur et par mois, l'ajoute avec l'héritage des protections de branche par organisation, l'analyse des dépendances, une liste blanche d'IP et la 2FA obligatoire. Sa page cite encore le journal d'audit, entré dans la version libre avec la 28.0.0. Gitea Cloud, l'offre gérée, donne à chaque client une instance dédiée dans la région de son choix ; la page des prix n'en affiche pas le tarif.

Gitea Actions demande un runner à part. Les jobs tournent sur Gitea Runner, un binaire distinct à enregistrer auprès de l'instance, et la documentation conseille Docker pour les isoler. Une action sans hôte, comme actions/checkout@v4, se télécharge depuis GitHub sauf configuration contraire. La documentation liste aussi les écarts avec GitHub : environment et les annotations d'erreur sont ignorés, et le jeton du job a des droits plus étroits.

SQLite ne suit pas la croissance. SQLite est intégré, mais la documentation prévient qu'il ne passe pas à l'échelle : une instance appelée à grandir prendra PostgreSQL 12, MySQL 8.0, MariaDB 10.4 ou SQL Server 2012 SP4, au minimum.

Six versions en moins de deux ans, puis une numérotation qui saute. De la 1.23.0 (janvier 2025) à la 28.0.0 (29 septembre 2026), six versions de fonctionnalités sont sorties, chacune suivie de correctifs. La 28.0.0 aurait été la 1.28.0 : le projet a retiré le préfixe « 1. ». Elle désactive par défaut l'inscription libre, refuse de démarrer avec un Git antérieur à 2.25.0 et supprime les runs Actions terminés au bout de 400 jours.