Projekte и zur Entscheidung, den kollaborativen Entwicklungsdienst Git Forge zu erstellen, der auf der GitLab-Plattform basieren wird. GitLab wird die primäre Plattform für die Interaktion mit Git-Repositories und für das Hosting von Projekten im Zusammenhang mit Distributionen werden. CentOS und Fedora. Zuvor genutzter Dienst wird weiterhin bestehen, aber an die Community übergeben, die an der Weiterentwicklung interessiert ist. Pagure wird aus dem CPE-Team (Community Platform Engineering) von Red Hat entfernt, das die Infrastruktur für die Entwicklung und Veröffentlichung von Fedora-Releases verwaltet. CentOS.
Bei der Bewertung möglicher Lösungen für das neue Git Forge haben wir darüber nachgedacht
Pagure und Gitlab. Basierend auf einer Studie von ca und Wünsche von Teilnehmern des Fedora-Projekts, CentOSFür RHEL und CPE wurden die funktionalen Anforderungen definiert und GitLab ausgewählt. Neben den Standardoperationen im Repository (Zusammenführen, Forken, Hinzufügen von Code usw.) zählten Sicherheit, Benutzerfreundlichkeit und Plattformstabilität zu den wichtigsten Anforderungen.
Zu den Anforderungen gehörten Funktionen wie das Senden von Push-Anfragen über HTTPS, Möglichkeiten zur Beschränkung des Zugriffs auf Zweigstellen, Unterstützung für private Zweigstellen, Trennung des Zugriffs für externe und interne Benutzer (z. B. um an der Beseitigung von Schwachstellen während eines Embargos für die Offenlegung von Informationen über das Problem zu arbeiten). , Vertrautheitsschnittstelle, Vereinheitlichung von Subsystemen für die Arbeit mit Problemberichten, Code, Dokumentation und Planung neuer Funktionen, Verfügbarkeit von Tools für die Integration mit IDE, Unterstützung für Standard-Workflows.
Zu den GitLab-Funktionen, die letztendlich die Entscheidung für diese Plattform beeinflusst haben, wurden folgende genannt: Unterstützung für Untergruppen mit selektivem Zugriff auf Repositories, die Möglichkeit, einen Bot für automatische Merges zu verwenden (erfordert CentOS Stream für die Pflege von Kernel-Paketen), das Vorhandensein integrierter Tools für die Entwicklungsplanung, die Möglichkeit, einen fertigen SaaS-Dienst mit garantierter Verfügbarkeit zu nutzen (wodurch Ressourcen für die Wartung der Serverinfrastruktur frei werden).
Die Entscheidung steht bereits Kritik unter Entwicklern, da die Entscheidung ohne ausführliche vorherige Diskussion getroffen wurde. Es wurden auch Bedenken geäußert, dass der Dienst nicht die kostenlose Comminity-Edition von GitLab nutzen würde. Insbesondere die zur Umsetzung der in der Ankündigung beschriebenen Anforderungen an Git Forge erforderlichen Fähigkeiten sind nur in der proprietären Version verfügbar .
Kritik wurde auch an der Absicht geäußert, den von GitLab bereitgestellten SAAS-Dienst (Application as a Service) zu verwenden, anstatt GitLab auf eigenen Servern bereitzustellen, was den Dienst außer Kontrolle bringt (beispielsweise ist es unmöglich, sicherzustellen, dass alle Schwachstellen im System umgehend behoben werden). Die Infrastruktur wird unterstützt, irgendwann wird sie nicht mehr und Sabotage durch das Personal eines Drittunternehmens ist ausgeschlossen). Die Lösung funktioniert auch nicht mit , die festlegen, dass das Projekt kostenlosen Alternativen den Vorzug geben muss.
Inzwischen GitLab über die Entdeckung von Implementierungen von 18 Funktionalitäten, die bisher nur in proprietären Editionen von GitLab angeboten wurden. Die Funktionen decken verschiedene Bereiche der Verwaltung des gesamten Softwareentwicklungszyklus ab, einschließlich Entwicklungsplanung, Projekterstellung, Überprüfung, Paketverwaltung, Release-Generierung, Konfiguration und Sicherheit.
Folgende Funktionen wurden in den Freilandbereich übertragen:
- Zugehöriges Problem anhängen;
- Problem von GitLab nach CSV exportieren;
- Eine Methode zum Planen, Organisieren und Visualisieren des Entwicklungsprozesses einzelner Funktionen oder Releases;
- Integrierter Dienst zur Verbindung von Projektteilnehmern mit Dritten per E-Mail.
- Webterminal für Web-IDE;
- Möglichkeit zum Synchronisieren von Dateien, um Codeänderungen im Webterminal zu testen;
- Entwerfen Sie Steuerelemente, mit denen Sie Mockups und Assets zur Ausgabe hochladen können, wobei die Ausgabe als zentraler Zugriffspunkt auf alles dient, was Sie zum Entwickeln einer neuen Funktion benötigen.
- Codequalitätsberichte;
- Unterstützung für die Paketmanager Conan (C/C++), Maven (Java), NPM (node.js) und NuGet (.NET);
- Unterstützung für Canary-Bereitstellungen, sodass Sie auf einem kleinen Teil der Systeme eine neue Version der Anwendung installieren können;
- Inkrementelle Verteilungen ermöglichen die Bereitstellung neuer Versionen zunächst nur für eine kleine Anzahl von Systemen und erhöhen die Abdeckung schrittweise auf 100 %.
- Funktionalitätsaktivierungsflags, die es ermöglichen, das Projekt in verschiedenen Editionen bereitzustellen und bestimmte Funktionen dynamisch zu aktivieren;
- Ein Übersichtsmodus für Bereitstellungen, mit dem Sie den Zustand jeder Kubernetes-basierten Continuous-Integration-Umgebung beurteilen können;
- Unterstützung für die Definition mehrerer Kubernetes-Cluster im Konfigurator (Sie können beispielsweise separate Kubernetes-Cluster für Testbereitstellungen und Produktions-Workloads verwenden);
- Unterstützung für die Definition von Sicherheitsrichtlinien für Containernetzwerke, mit denen Sie den Zugriff zwischen Kubernetes-Pods einschränken können.
Darüber hinaus kann darauf hingewiesen werden GitLab-Updates 12.9.1, 12.8.8 und 12.7.8 (Community Edition und Enterprise Edition), die die Sicherheitslücke beheben. Das Problem besteht seit GitLab EE/CE 8.5 und ermöglicht das Lesen des Inhalts beliebiger lokaler Dateien beim Verschieben eines Problems zwischen Projekten.
Einzelheiten zur Sicherheitslücke werden nach 30 Tagen bekannt gegeben.
Source: opennet.ru
