Methode

93 % des Codes wurden nie geprüft. Wir haben die Tür geschlossen.

In neunzig Tagen kamen 855 Commits ohne Merge Request auf den Hauptzweig, gegenüber 63 mit Merge Request. Und dieser Zweig löst die Produktivsetzung aus. Messung, Entscheidung und die vier Fallstricke, auf die wir beim Schließen der Tür gestoßen sind.

Inhalt (8 Abschnitte)
  1. Was schon schützte und was das nicht abdeckte
  2. Die Entscheidung: schließen, ohne Zeremonie hinzuzufügen
  3. Vier Fallstricke, und wir sind auf alle gestoßen
  4. 1. Der Name der Prüfung enthält das Ereignis
  5. 2. Eine übersprungene Stufe ist keine erfolgreiche Stufe
  6. 3. Repositorys ohne CI-Pipeline
  7. 4. Ohne „auf Administratoren anwenden“ ist die Regel nur Dekoration
  8. Was sich für Sie ändert

Bevor wir irgendetwas entschieden haben, haben wir gezählt. Diese Gewohnheit erspart viele Debatten: Bauchgefühle darüber, „wie wir arbeiten“, stimmen selten, und sie lassen sich mit einer Abfrage überprüfen.

In neunzig Tagen, über alle unsere aktiven Repositorys hinweg:

  • 63 Commits kamen über einen Merge Request auf den Hauptzweig,
  • 855 Commits kamen über einen direkten Push dorthin,
  • also 721 direkte Pushes, von denen 41 die CI-Pipeline zum Scheitern brachten.

93 % dessen, was den Hauptzweig erreichte, war nie durch ein Review gegangen. Und dieser Zweig löst die Produktivsetzung aus: Was dort ankommt, geht online.

Was schon schützte und was das nicht abdeckte #

Ganz wirkungslos war der vorhandene Schutzmechanismus nicht. Die Deployment-Stufe hängt von den Stufen Build und Tests ab: Ein kaputter Commit wird nicht ausgeliefert. Von den 41 Pushes, die die Pipeline rot gefärbt haben, ist keiner in die Produktion gegangen.

Aber der Hauptzweig blieb rot, das heißt, die gemeinsame Referenz des Teams war kaputt, manchmal mehrere Stunden lang, bis es jemand bemerkte. Und vor allem schützt dieser Aufbau nur vor Code, der scheitert. Er schützt nicht vor Code, der durchläuft und den man gar nicht pushen wollte.

Die Entscheidung: schließen, ohne Zeremonie hinzuzufügen #

Wir haben den direkten Push auf den Hauptzweig aller aktiven Repositorys verboten, mit der Vorgabe, dass die Tests vor dem Merge grün sein müssen, und die Regel gilt auch für Administratoren.

Dagegen ist keine Freigabe erforderlich. Das verdient eine Erklärung, denn es ist der Reflex, den alle haben, und in kleinen Teams fast immer ein Fehler.

Die meisten Git-Plattformen verbieten es, den eigenen Merge Request freizugeben. Wer in einem Team, in dem eine Person allein an einem Projekt arbeitet, eine Freigabe verlangt, schafft eine Sackgasse: Nichts lässt sich mehr mergen. Der Schutz soll hier sicherstellen, dass die Tests bestanden sind, und kein Peer-Review vortäuschen, das es nicht gibt.

Im Alltag sieht das so aus: Man arbeitet auf einem Zweig, öffnet einen Merge Request, die Tests laufen, man klickt. Kein Warten, keine Abhängigkeit von Dritten. Unmöglich wird nur eines: direkt in das zu schreiben, was in die Produktion geht.

Vier Fallstricke, und wir sind auf alle gestoßen #

Diese Einrichtung gilt als trivial. Sie ist es nicht, und die folgenden vier Fallstricke ähneln sich alle: Sie erzeugen eine Konfiguration, die gut aussieht und nicht tut, was man glaubt.

1. Der Name der Prüfung enthält das Ereignis #

Die Prüfung heißt nicht „tests“, sondern „tests (pull_request)“. Wer den Namen ohne Suffix verlangt, verweist ins Leere: Der Merge Request bleibt für immer blockiert, ohne hilfreiche Meldung. Wir haben die genauen Namen in der Datenbank der Git-Plattform nachgesehen, statt sie zu raten.

2. Eine übersprungene Stufe ist keine erfolgreiche Stufe #

Die Deployment-Stufe wird bei einem Merge Request absichtlich übersprungen. Sie meldet also den Status „übersprungen“, nicht „erfolgreich“. Wer sie in der Liste der Prüfungen verlangt, blockiert alle Merges, endgültig.

3. Repositorys ohne CI-Pipeline #

Nicht jedes Repository hat eine CI-Pipeline: interne Werkzeuge, gemeinsame Bibliothek, Dokumentations-Repository. Dort eine grüne Prüfung zu verlangen, hieße, es einzufrieren. Diese Repositorys werden ohne Testvorgabe geschützt: Der direkte Push wird abgelehnt, der Merge erfolgt sofort. Der Schutz passt sich dem Repository an, sonst wendet er sich gegen das, was er schützen soll.

4. Ohne „auf Administratoren anwenden“ ist die Regel nur Dekoration #

Das ist der teuerste Fallstrick, weil er unsichtbar ist. Ohne dieses Häkchen gilt der Schutz nicht für Administratorkonten, also genau für die Konten, die am meisten pushen. Man glaubt, die Tür geschlossen zu haben; für die, die am häufigsten hindurchgehen, steht sie offen.

Was sich für Sie ändert #

Für einen Kunden ist diese Entscheidung kein Detail der internen Organisation. Sie hat drei direkte Auswirkungen:

  • Nichts kann mehr in die Produktion gehen, ohne dass die Tests vorher bestanden sind. Früher liefen sie erst, als der Code schon unterwegs war: Sie stellten fest, sie schützten nicht.
  • Jede Änderung hinterlässt eine Spur. Ein Merge Request trägt einen Titel, eine Beschreibung, ein Testergebnis und ein Datum. Genau das will ein Audit (oder eine Zertifizierung) sehen, und genau das liefert eine Historie direkter Pushes nicht.
  • Ein Unfall durch einen versehentlichen Push ist unmöglich geworden. Das ist keine Frage individueller Wachsamkeit mehr, sondern eine Ablehnung durch den Server.

Und all das kostet das Team einen zusätzlichen Klick pro Änderung. Von allem, was wir in diesem Quartal eingeführt haben, hat diese Maßnahme das beste Verhältnis von Nutzen und Aufwand.

Über uns
01/Als Nächstes lesenDrei Artikel

Verwandte Artikel

Praxis

Warum wir mehr tun als der regionale Standard (und was das kostet)

26 % der französischen Kleinst- und mittleren Unternehmen schützen ihre Fernzugänge mit einem zweiten Faktor, 16 % haben eine Angriffserkennung, 31 % ein Verfahren für Vorfälle. Im Elsass wurden die Region, die Europäische Gebietskörperschaft Elsass und eine Straßburger Klinikgruppe bereits getroffen. Der Marktstandard bei Hosting und Managed Services ist der Bedrohung von 2026 nicht gewachsen. Hier lesen Sie, was wir zusätzlich tun, warum, und was es wirklich kostet.

kmuelsass
Sicherheit

Eine veraltete Lock-Datei ist ein Scan, der lügt

Lock-Dateien für Abhängigkeiten sind die maßgebliche Quelle für Sicherheitsanalysen. Wenn eine CI-Pipeline sie stillschweigend umschreibt, statt zu scheitern, liest die Analyse falsche Versionen und liefert ein beruhigendes Urteil. Wie wir das entdeckt haben und was wir geändert haben.

abhängigkeitensoftware-lieferkette
Sicherheit

446 Schwachstellen, dann null: was ein Inventar ändert, das die Wahrheit sagt

Jede Maschine scannte ihre eigenen Images, niemand sah den ganzen Bestand. Mit einer zentralen Analyse auf Basis des tatsächlichen Inventars (111 eindeutige Images statt 25 lokaler Datenbanken) fiel der Zähler an einem Abend von 446 auf 0. Bericht über eine Messaktion, nicht über eine Korrektur.

schwachstellencontainer

Und jetzt

Managed Services, die über den Standard hinausgehen?

Was wir tun, Punkt für Punkt, und was es kostet. Erstgespräch kostenlos.

Ihr Projekt besprechen

Antwort binnen 24 Stunden an Werktagen, von einem der beiden Gründer. Oder telefonisch: +33 7 59 96 14 99.