AccueilTechniqueServices → Git

    Git

    Le service Git est un logiciel d’hébergement de code en ligne ou « forge logicielle » qui permet de travailler en collaboration sur des dépôts Git. Il est basé sur le logiciel Gitea.

    Fonctionnement🔗

    Il est réservé à nos membres et nécessite un compte sur la plateforme. Chaque compte connecté à l’espace membre peut créer un maximum de 50 dépôts. Les utilisateur·ices se connectent aux dépôts via SSH ou HTTPS.

    Les comptes non connectés à l’espace membre ne peuvent pas créer de dépôts, mais peuvent participer aux dépôts existants (créer des issues ou pull requests).

    Historique🔗

    Ce service a été inauguré le 12 septembre 2019 avec le service Nitter, avec pour but premier d’héberger les dépôts de l’association (qui n’utilisait auparavant aucun système de dépôt).

    Depuis février 2022, notre service utilise la variante rootless de l’image.

    Installation🔗

    Nous utilisons l’image officielle gitea/gitea, variante rootless sans modification. Sa configuration actuelle se situe sur le dépôt Core.

    Gitea dépend d’un système de gestion de base de données, nous utilisons PostgreSQL à cette fin. Les fichiers de configuration et les dépôts sont conservés dans un volume.

    Le serveur SSH de notre instance est ouvert sur un port non conventionnel (42084).

    Tests🔗

    L’utilisation de git pull sur un dépôt classique permet de tester la connexion HTTPS/SSH au daemon git.

    Divers outils intégrés à Gitea à travers la commande gitea doctor permettent de diagnostiquer des problèmes liés à l’entretien du service.

    Statistiques d’utilisation🔗

    Voici les statistiques d’utilisation du service Git de La Contre-Voie.

    Il s’agit de moyennes journalières mesurées pendant la 5e semaine (calendrier ISO) de chaque année listée.

    AnnéeRequêtesUtilisateur·ice·s uniquesBande passante
    20206 8761490,27 GB
    20216 9864350,56 GB
    202218 8185370,80 GB
    202317 8571 3590,82 GB

    Le service Git reste donc très peu consommateur en bande passante, car relativement peu utilisé.

    En date d’avril 2023, notre instance héberge 152 comptes, 15 comptes « organisation » et 315 dépôts. La base de données PostgreSQL pèse 31 MB et le volume de Gitea pèse 1.3 GB. Le conteneur consomme environ 375 MB de RAM.

    Précautions🔗

    Exposition au spam🔗

    Gitea dispose de peu de fonctionnalités pour lutter contre le spam, en particulier contre la création de comptes. Ces comptes fictifs polluent l’instance et risquent même de porter atteinte à la réputation du serveur mail utilisé pour l’envoi des emails de confirmation d’inscription.

    Si vous pensez pouvoir échapper à ce spam en utilisant la fonctionnalité de captcha intégrée à Gitea, détrompez-vous : elle est totalement inefficace contre la plupart des bots.

    Entretien🔗

    Suppression des comptes bots🔗

    Nous avons constaté plusieurs types de « comptes bots », qui sont des comptes que nous considérons comme illégitimes et créés en abusant de notre service.

    1. Les comptes « SEO », créés à des fins de référencement, sont reconnaissables par la présence d’une description promotionnelle dans leur bio et d’un lien vers le site qui fait l’objet de cette promotion. Ces comptes sont généralement activés (donc créés avec une adresse email valide), et sans avatar. Il est nécessaire de les supprimer manuellement en vérifiant la bio de chaque compte. Ce type de compte est créé environ une fois par semaine.
    2. Les comptes « spam ciblé » qui créent des tickets promotionnels sur des dépôts. Ces comptes sont donc activés et semblent cibler des dépôts en particulier. Ils restent assez rares (nous n’avons recensé qu’un seul cas de ce type).
    3. Les autres comptes, créés avec une adresse qui semble provenir d’un dump d’adresses email public pour lequel notre attaquant·e ne semble pas disposer d’accès. Ces comptes sont donc créés désactivés. La plupart des adresses mail utilisés appartiennent à Yandex ou Gmail. Pour les supprimer, lancer la routine d’administration « Supprimer les comptes inactifs » est une mesure efficace. Plusieurs comptes de ce genre sont créés chaque jour.

    Mise à jour🔗

    Gitea peut être mis à jour simplement en téléchargeant l’image Docker officielle après avoir pris connaissance du changelog pour s’assurer qu’aucun changement important ne risque de casser l’installation actuelle. Ce processus de mise à jour s’applique tout aussi bien pour les versions mineures (1.x) que les versions patch (1.x.y).

    Pour réaliser la mise à jour dans les règles de l’art afin de minimiser les risques d’une mise à jour échouée, un guide de mise à jour complet est disponible ici.

    Évolutions envisagées🔗

    Utiliser l’authentification unifiée🔗

    Pour régler les problèmes de spam, l’utilisation d’une authentification unifiée avec l’espace membre permettrait de désactiver les inscriptions.

    L’inconvénient majeur de cette mesure serait qu’elle pourrait empêcher la création de comptes légitimes pour des personnes qui veulent contribuer à un projet existant sans créer de dépôt (fork, tickets, contribution à un projet existant…), un usage largement recensé sur notre instance. Un Gitea fédéré constituerait un palliatif efficace, mais cette fonctionnalité n’est pas implémentée à ce jour et pourrait prendre du temps.

    Retravailler le thème🔗

    Un thème a été créé spécifiquement pour l’instance Gitea de l’association, basé sur son thème sombre. Une actualisation de ce thème serait la bienvenue.