A Pull-Anfrage – auch als Merge Request bezeichnet – ist ein Ereignis, das bei der Softwareentwicklung stattfindet, wenn ein Mitwirkender/Entwickler bereit ist, mit dem Zusammenführen neuer Codeänderungen mit dem Hauptprojekt-Repository zu beginnen.
Im Repository eines Projekts (oder „Repo“) werden der gesamte Projektcode, das Produktwissen, Metadaten und viele weitere Daten/Informationen gespeichert. Ein Repository-Betreuer/-Manager ist jemand auf einem DevOps- oder Betriebsteam Wer ist für die Pflege des Repositorys verantwortlich? Er ist dafür verantwortlich, welche Updates in das endgültige Projekt integriert und den Endbenutzern zur Verfügung gestellt werden können.
Bei einem Pull Request prüft der Repository-Betreuer neue Code-Updates eines Entwicklers, um festzustellen, ob diese zur Veröffentlichung bereit sind. Ohne Pull Requests könnten unfertige oder fehlerhaft geschriebene Code-Updates vorzeitig mit dem Hauptrepository zusammengeführt werden und das Live-Produkt beschädigen oder Probleme verursachen. Pull Requests gewährleisten die Integrität und Benutzerfreundlichkeit des Produkts, indem nur ordnungsgemäß geprüfter und freigegebener Code zusammengeführt wird.
Pull Requests schützen nicht nur das Haupt-Projektrepository, sondern fördern auch die Zusammenarbeit und offene Kommunikation bei der Arbeit an neuen Produktupdates. Sie tragen außerdem zur Motivation der Teams bei, indem sie die Fertigstellung einer neuen Funktion hervorheben und das Team benachrichtigen.
Wie funktionieren Pull Requests?
Ein Pull Request ermöglicht es Entwicklern, neue Funktionen zu erstellen oder Fehler zu beheben, ohne den Hauptprojektcode oder die Benutzeransichten zu beeinträchtigen. So können sie Codeänderungen lokal schreiben und testen, ohne das Gesamtprodukt zu beschädigen.
Pull Requests folgen einem grundlegenden fünfstufigen Prozess:
- Forken Sie das Hauptrepository und erstellen Sie einen lokalen Klon. Zuerst erstellt der Entwickler einen Fork des Haupt-Repositorys und klont diesen dann auf seinen lokalen Computer.
- Nehmen Sie die erforderlichen Änderungen lokal vor. Der Entwickler kann dann die erforderlichen Änderungen oder Ergänzungen am Code vornehmen, unabhängig davon, ob er an der Lösung eines Problems oder an einer neuen Funktion arbeitet.
- Lokale Änderungen in das gegabelte Repository übertragen . Sobald der Entwickler die neuen Codeänderungen abgeschlossen und getestet hat, überträgt er diese Änderungen zurück in das gegabelte Repository, das er in Schritt 1 erstellt hat.
- Erstellen einer Pull-Anfrage Hier findet der eigentliche Pull Request statt! Nach der Anforderung eines Pull Requests wird der Haupt-Repository-Betreuer zur Überprüfung benachrichtigt. Der Betreuer überprüft dann die im geforkten Repository des Entwicklers geleistete Arbeit und macht anschließend Kommentare oder fordert Änderungen an, die zur Genehmigung erforderlich sind.
- Alle Änderungen werden dann an den Entwickler zurückgesendet, damit dieser gegebenenfalls weitere Commits (Änderungen am Code) vornehmen kann.
- Wenn keine Änderungen erforderlich sind, wird die Pull-Anfrage vom Betreuer genehmigt.
- Mit Hauptprojekt zusammenführen. Sobald der Repository-Betreuer einen Pull Request genehmigt hat, werden die neuen Updates des Entwicklers im geforkten Repository mit dem Hauptprojekt-Repository zusammengeführt. Das Produkt wird dann mit der neuen Funktion oder Fehlerbehebung aktualisiert und kann nun von Endbenutzern angezeigt werden.
In manchen Fällen kann ein Entwickler auch einen Pull Request für eine noch nicht fertiggestellte Funktion oder ein Update stellen. So kann ein Entwickler, der bei einem neuen Update, an dem er arbeitet, nicht weiterkommt, Feedback von anderen Teammitgliedern einholen und mögliche Lösungen erarbeiten.
In beiden Fällen stellt die Verwendung von Pull Requests sicher, dass jedes neue Update für ein bestimmtes Projekt gründlich geprüft und freigegeben wurde, bevor es mit dem Hauptrepository zusammengeführt wird. Dies hilft, zukünftige Probleme zu vermeiden und gewährleistet eine nahtlose Benutzererfahrung mit minimalem Aufwand. Ausfallzeit .
Erstellen einer Pull-Anforderung
Das Erstellen von Pull Requests kann von Organisation zu Organisation unterschiedlich sein, basierend auf verwendete Werkzeuge und den Repository-Typ (z. B. GitHub, BitBucket usw.). Das Erstellen eines Pull Requests umfasst jedoch häufig dieselben drei Elemente:
Abfassung
Beim Erstellen eines Pull Requests beginnt der Entwickler zunächst mit einem Entwurf. Hier kann er seine Codeänderungen betiteln und kurz beschreiben. Er muss Informationen zur Art des Updates (ob es sich um eine neue Funktion oder einen Bugfix handelt) sowie zum Quell-Repository/-Branch und Ziel-Repository/-Branch angeben.
Ein Pull Request-Entwurf kann erst zusammengeführt werden, wenn der Entwickler ihn als zur Überprüfung bereit markiert hat.
Zusammenführen
Die Zusammenführung erfolgt, sobald der eingereichte Pull Request eines Entwicklers vom Repository-Betreuer genehmigt wurde. Vor der Zusammenführung überprüft der Repository-Betreuer die abgeschlossene Arbeit des Entwicklers. Er kommentiert etwaige Probleme und fordert den Entwickler bei Bedarf zu Änderungen auf. Sobald alle Aktualisierungen vorgenommen wurden, kann der Repository-Betreuer diese sicher mit dem Haupt-Repository des Projekts zusammenführen und es so für Endbenutzer verfügbar machen.
Aktualisierung
Wenn der Repository-Betreuer vor dem Merge Änderungen an den Code-Updates benötigt, wird der Entwickler benachrichtigt und erhält Kommentare und Feedback zur Behebung des Problems. Sobald der Entwickler das Problem behoben hat, kann er den Pull Request mit seinen neuen Commits zur weiteren Überprüfung und Freigabe aktualisieren.
Pull Request-Vorlagen
Pull-Request-Vorlagen können erstellt und gespeichert werden, um den Prozess zu beschleunigen und die Konsistenz aller Teammitglieder sicherzustellen. Beim Erstellen Ihrer Pull-Request-Vorlage ist es wichtig, Folgendes zu berücksichtigen:
- Zusammenfassung der Codeaktualisierung: Handelte es sich hierbei um eine Fehlerbehebung oder eine neue Funktion? Fassen Sie zusammen, was mit diesem neuen Code-Update erreicht wurde.
- Unit-Testfälle: Wurde dieses Code-Update auf allen Geräten und Browsern getestet?
Die Details Ihrer Pull-Request-Vorlage variieren je nach dem von Ihrer Organisation verwendeten Repository. Verschiedene Tools bieten unterschiedliche Funktionen und Optionen, um Pull-Requests für Ihr Team zum Kinderspiel zu machen.
Ein Beispiel für eine Pull-Anfrage
Nachdem wir nun besprochen haben, was ein Pull Request ist und wie er funktioniert, schauen wir uns einen möglichen Pull Request in Aktion an.
- Russell ist Entwickler bei einem Softwareunternehmen, das eine mobile Anwendung anbietet, mit der Benutzer verschiedene Weine bewerten und rezensieren können.
- Russell muss eine neue Funktion entwickeln, die es dem Benutzer ermöglicht, seine „Fünf Lieblingsweine“ hervorzuheben.
- Um mit der Arbeit an dieser neuen Funktion zu beginnen, erstellt Russell zunächst einen Fork des Haupt-Repositorys und klont diesen auf seinen lokalen Computer.
- Russell entwickelt diese neue Funktion dann lokal.
- Sobald dies abgeschlossen ist, kann Russell seine Code-Updates in das von ihm erstellte gegabelte Repository übertragen.
- Jetzt kann Russell eine Pull-Anfrage erstellen!
- Sobald die Pull-Anfrage übermittelt wurde, wird Erica (die Repository-Betreuerin) benachrichtigt, mit der Überprüfung von Russells neuem Code-Update zu beginnen.
- Erica kann dann bei Bedarf Folgeverpflichtungen von Russell anfordern.
- Wenn alle Änderungsanforderungen vorliegen, genehmigt Erica Russells Pull-Anforderung.
- Das neue Update von Russell wird dann mit dem Haupt-Projekt-Repository zusammengeführt und Anwendungsbenutzer können jetzt mit der Verwendung der neuen Anwendungsfunktion beginnen.
Um mehr darüber zu erfahren, wie PagerDuty Ihren Softwareentwicklungszyklus verbessern kann, rufen Sie uns an Und Starten Sie eine 14-tägige kostenlose Testversion – keine Kreditkarte erforderlich.