Projets et sur la solution de création d'un service de développement collaboratif Git Forge, qui sera construit en utilisant la plateforme GitLab. GitLab sera la plateforme principale pour interagir avec les référentiels Git et pour héberger des projets liés aux distributions CentOS et Fedora. Le service précédemment utilisé continuera d'exister, mais sera confié à la communauté intéressée par la poursuite du développement. Pagure sera retiré sous le soutien de l'équipe CPE (Community Platform Engineering) employée par Red Hat, qui s'occupe de la maintenance de l'infrastructure pour le développement et la publication des versions de Fedora et CentOS.
Lors de l'évaluation des solutions possibles pour le nouveau Git Forge, les options suivantes ont été examinées
Pagure et GitLab. Sur la base de l'examen d'environ et souhaits des participants des projets Fedora, CentOS, RHEL et CPE, des exigences fonctionnelles ont été établies et le choix s'est porté sur GitLab. En plus des opérations standard sur les référentiels (fusion, création de forks, ajout de code, etc.), des exigences clés ont été déclarées telles que la sécurité, la facilité d'utilisation et la stabilité de la plateforme.
Les exigences comprenaient des capacités telles que l'envoi de demandes push via HTTPS, des moyens de restreindre l'accès aux branches, le support des branches privées, la séparation de l'accès pour les utilisateurs externes et internes (par exemple, pour travailler sur la correction de vulnérabilités pendant l'embargo sur la divulgation des informations concernant le problème), la familiarité de l'interface, l'unification des sous-systèmes pour le travail avec les rapports de problèmes, le code, la documentation et la planification de nouvelles fonctionnalités, ainsi que la disponibilité d'outils pour l'intégration avec les IDE et le support des flux de travail standard.
Parmi les fonctionnalités de GitLab qui ont finalement influencé la décision de choisir cette plateforme, on mentionne le support des sous-groupes avec accès sélectif aux référentiels, la possibilité d'utiliser un bot pour des fusions automatiques (nécessitant CentOS Stream pour la maintenance des paquets du noyau), la présence d'outils intégrés pour la planification du développement, et la possibilité d'utiliser un service SAAS prêt à l'emploi avec un niveau de disponibilité garanti (permettant de libérer des ressources pour la maintenance de l'infrastructure serveur).
La décision a déjà la critique parmi les développeurs concernant le fait que la décision a été prise sans discussion préalable large. Des préoccupations ont également été exprimées quant au fait que le service ne va pas utiliser l'édition communautaire libre de GitLab. En particulier, les fonctionnalités nécessaires à la mise en œuvre des exigences décrites dans l'annonce ne sont disponibles que dans la version propriétaire. .
La critique a également été faite sur l'intention de profiter du service SAAS (application en tant que service) fourni par GitLab, au lieu de déployer GitLab sur ses propres serveurs, ce qui sort le service du contrôle (par exemple, il n'est pas possible d'être sûr que toutes les vulnérabilités du système sont corrigées rapidement, l'infrastructure est maintenue, à un moment donné, elle ne sera pas et exclusion de la déviation de la part du personnel d'une entreprise tierce). La décision n'est pas non plus en accord avec , qui stipulent que le projet doit privilégier les alternatives libres.
En attendant, GitLab a annoncé le déploiement de 18 fonctionnalités qui étaient précédemment proposées uniquement dans les éditions propriétaires de GitLab. Les fonctionnalités couvrent divers domaines de la gestion du cycle de vie du développement logiciel, y compris la planification du développement, la création de projets, la vérification, la gestion des paquets, la génération de versions, la configuration et la sécurité.
Les fonctions traduites en libre comprennent les suivantes :
- Attachement des issues liées ;
- Exportation des issues de GitLab vers CSV ;
- Mode de planification, d'organisation et de visualisation du processus de développement de fonctionnalités ou de versions spécifiques ;
- Service intégré pour relier les participants au projet avec des tiers par email.
- Terminal Web pour Web IDE ;
- Possibilité de synchroniser les fichiers pour tester les modifications de code dans le terminal Web ;
- Outils de gestion de design permettant de télécharger des maquettes et des ressources dans les issues, en utilisant les issues comme point d'accès unique à tout ce qui est nécessaire pour développer une nouvelle fonctionnalité ;
- Rapports de qualité du code ;
- Support des gestionnaires de paquets Conan (C/C++), Maven (Java), NPM (node.js) et NuGet (.NET) ;
- Support des déploiements canari permettant d'installer une nouvelle version de l'application sur une petite partie des systèmes ;
- Des déploiements incrémentiels permettant dans un premier temps de livrer de nouvelles versions uniquement à un petit nombre de systèmes, tout en augmentant progressivement la couverture jusqu'à 100%;
- Des drapeaux d'activation des fonctionnalités, permettant de livrer le projet dans différentes éditions tout en activant dynamiquement certaines fonctionnalités;
- Un mode d'analyse des déploiements, permettant d'évaluer l'état de chaque environnement d'intégration continue basé sur Kubernetes;
- Prise en charge de la définition de plusieurs clusters Kubernetes dans le configurateur (par exemple, il est possible d'utiliser des clusters Kubernetes distincts pour des déploiements d'essai et des charges de travail);
- Prise en charge de la définition de politiques de sécurité réseau des conteneurs, permettant de restreindre l'accès entre les pods Kubernetes.
Il convient également de noter des mises à jour GitLab 12.9.1, 12.8.8 et 12.7.8 (Community Edition et Enterprise Edition), qui corrigent une vulnérabilité. Le problème se manifeste à partir de la version GitLab EE/CE 8.5 et permet de lire le contenu de n'importe quel fichier local lors du déplacement d'une issue entre projets.
Les détails de la vulnérabilité seront révélés dans 30 jours.
Source : opennet.ru
