Als Code Stream-Administrator oder -Entwickler können Sie Code Stream mithilfe des Git-Auslösers in den Git-Lebenszyklus integrieren. Wenn Sie eine Codeänderung in GitHub, GitLab oder Bitbucket Enterprise vornehmen, kommuniziert das Ereignis mit Code Stream über einen Webhook und löst eine Pipeline aus. Der Webhook ist mit GitLab, GitHub und lokalen Bitbucket-Unternehmensversionen kompatibel, wenn sowohl Cloud Assembly als auch die Unternehmensversion im selben Netzwerk erreichbar sind.

Wenn Sie den Webhook für Git in Code Stream hinzufügen, erstellt er auch einen Webhook im GitHub-, GitLab- oder Bitbucket-Repository. Wenn Sie den Webhook später aktualisieren oder löschen, wird mit dieser Aktion auch der Webhook in GitHub, GitLab oder Bitbucket aktualisiert oder gelöscht.

Ihre Webhook-Definition muss einen Git-Endpoint auf dem Branch des Repositorys enthalten, das Sie überwachen. Zum Erstellen des Webhooks verwendet Code Stream den Git-Endpoint. Wenn der Endpoint nicht vorhanden ist, können Sie ihn erstellen, wenn Sie den Webhook hinzufügen. In diesem Beispiel wird vorausgesetzt, dass Sie über einen vordefinierten Git-Endpoint in GitHub verfügen.

Hinweis: Um einen Webhook zu erstellen, muss Ihr Git-Endpoint ein privates Token für die Authentifizierung verwenden, er kann kein Kennwort verwenden.

Sie können mehrere Webhooks für verschiedene Zweige erstellen, indem Sie denselben Git-Endpoint verwenden und verschiedene Werte für den Namen des Zweigs auf der Konfigurationsseite des Webhooks bereitstellen. Zum Erstellen eines weiteren Webhooks für einen anderen Zweig im selben Git-Repository muss der Git-Endpoint nicht mehrmals für mehrere Zweige geklont werden. Stattdessen geben Sie den Namen des Zweigs im Webhook an, wodurch Sie den Git-Endpoint wiederverwenden können. Wenn der Zweig im Git-Webhook mit dem Zweig im Endpoint übereinstimmt, müssen Sie den Namen des Zweigs nicht auf der Seite des Git-Webhooks angeben.

In diesem Beispiel wird die Verwendung des Git-Auslösers mit einem GitHub-Repository gezeigt. Zu den Voraussetzungen gehören jedoch Vorbereitungen, die bei Verwendung eines anderen Git-Servertyps erforderlich sind.

Voraussetzungen

  • Vergewissern Sie sich, dass Sie Mitglied eines Projekts in Code Stream sind. Falls nicht, bitten Sie einen Code Stream-Administrator, Sie als Mitglied eines Projekts hinzuzufügen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Hinzufügen eines Projekts in Code Stream.
  • Vergewissern Sie sich, dass Sie über einen Git-Endpoint auf dem GitHub-Branch verfügen, den Sie überwachen möchten. Weitere Informationen hierzu finden Sie unter Wie integriere ich Code Stream in Git?.
  • Stellen Sie sicher, dass Sie über Rechte zum Erstellen eines Webhooks im Git-Repository verfügen.
  • Wenn Sie einen Webhook in GitLab konfigurieren, ändern Sie die Standardnetzwerkeinstellungen in GitLab Enterprise, um ausgehende Anforderungen zu aktivieren und die Erstellung lokaler Webhooks zuzulassen.
    Hinweis: Diese Änderung ist nur für GitLab Enterprise erforderlich. Diese Einstellungen gelten nicht für GitHub oder Bitbucket.
    1. Melden Sie sich bei der GitLab Enterprise-Instanz als Administrator an.
    2. Navigieren Sie zu den Netzwerkeinstellungen, indem Sie eine URL wie http://{gitlab-server}/admin/application_settings/network verwenden.
    3. Erweitern Sie Ausgehende Anforderungen und klicken Sie auf:
      • Anforderung an das lokale Netzwerk aus Webhooks und Diensten zulassen.
      • Anforderung an das lokale Netzwerk aus Systemhook zulassen.
  • Für die Pipelines, die Sie auslösen möchten, müssen Sie die Eingabeeigenschaften für das Einfügen von Git-Parametern bei der Ausführung der Pipeline festgelegt haben.

    Wenn Sie Ihre Pipeline für die Verwendung des Auslösers für Git konfigurieren, konfigurieren Sie die Eingabeparameter auf der Registerkarte Eingabe.

    Informationen über Eingabeparameter finden Sie unter Planen eines nativen CICD-Builds in Code Stream vor dem manuellen Hinzufügen von Aufgaben.

Prozedur

  1. Klicken Sie in Code Stream auf Auslöser > Git.
  2. Klicken Sie auf die Registerkarte Webhooks für Git und dann auf Neuer Webhook für Git.
    1. Wählen Sie ein Projekt aus.
    2. Geben Sie einen Namen und eine Beschreibung für den Webhook ein.
    3. Wählen Sie einen Git-Endpoint aus, der für den zu überwachenden Branch konfiguriert ist.
      Wenn Sie Ihren Webhook erstellen, enthält die Webhook-Definition die aktuellen Endpoint-Details.
      • Wenn Sie den Git-Typ, den Git-Servertyp oder die URL des Git-Repositorys zu einem späteren Zeitpunkt im Endpoint ändern, kann der Webhook keine Pipeline mehr auslösen, da er unter Verwendung der ursprünglichen Endpoint-Details auf das Git-Repository zugreift. Sie müssen den Webhook löschen und ihn erneut mit dem Endpoint erstellen.
      • Wenn Sie den Authentifizierungstyp, den Benutzernamen oder das private Token zu einem späteren Zeitpunkt im Endpoint ändern, wird der Webhook weiterhin ausgeführt.
      • Bei Verwendung eines BitBucket-Repositorys muss die URL für das Repository in einem der folgenden Formate vorliegen: https://api.bitbucket.org/{user}/{repo name} oder http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name}.
      Hinweis: Wenn Sie zuvor einen Webhook mit einem Git-Endpoint erstellt haben, der ein Kennwort für die Standardauthentifizierung nutzt, müssen Sie den Webhook löschen und mit einem Git-Endpoint neu definieren, der ein privates Token für die Authentifizierung verwendet.
      Weitere Informationen hierzu finden Sie unter Wie integriere ich Code Stream in Git?.
    4. (Optional) Geben Sie den Branch ein, der vom Webhook überwacht werden soll.
      Wenn Sie keinen Branch eingeben, überwacht der Webhook den für den Git-Endpoint konfigurierten Branch.
    5. (Optional) Generieren Sie ein geheimes Token für den Webhook.
      Wenn Sie ein geheimes Token verwenden, generiert Code Stream ein zufälliges Zeichenfolgen-Token für den Webhook. Wenn der Webhook dann Git-Ereignisdaten empfängt, sendet er die Daten mit dem geheimen Token. Code Stream verwendet die Informationen, um zu ermitteln, ob die Aufrufe von der erwarteten Quelle stammen, z. B. von der konfigurierten GitHub-Instanz, dem Repository und dem Branch. Das geheime Token bietet eine zusätzliche Sicherheitsebene, die verwendet wird, um zu überprüfen, ob die Git-Ereignisdaten aus der richtigen Quelle stammen.
    6. (Optional) Geben Sie Dateieinschlüsse oder -ausschlüsse als Bedingungen für den Auslöser an.
      • Dateieinschlüsse. Wenn eine der Dateien in einem Commit mit den in den Einschlusspfaden oder dem Regex angegebenen Dateien übereinstimmt, werden mit dem Commit die Pipelines ausgelöst. Im Fall eines angegebenen Regex löst Code Stream die Pipelines nur dann auf, wenn Dateinamen im Änderungssatz mit dem angegebenen Ausdruck übereinstimmen. Der Regex-Filter ist nützlich, wenn ein Auslöser für mehrere Pipelines in einem einzelnen Repository konfiguriert wird.
      • Dateiausschlüsse. Wenn alle Dateien in einem Commit mit den angegebenen Dateien in den Ausschlusspfaden oder dem Regex übereinstimmen, werden die Pipelines nicht ausgelöst.
      • Ausschlüsse priorisieren. Wenn diese Option aktiviert ist, wird durch die Priorisierung des Ausschlusses sichergestellt, dass Pipelines nicht ausgelöst werden, selbst wenn eine der Dateien in einem Commit mit den angegebenen Dateien in den Ausschlusspfaden oder im Regex übereinstimmt. Die Standardeinstellung ist „Aus“.
      Wenn die Bedingungen sowohl die Dateieinschlüsse als auch die Dateiausschlüsse umfassen, werden Pipelines nicht ausgelöst.

      Im folgenden Beispiel sind sowohl Dateieinschlüsse als auch Dateiausschlüsse Bedingungen für den Auslöser.

      Dateieinschlüsse und -ausschlüsse und ihre Werte werden auf der Registerkarte Webhooks für Git im Auslöser für Git angezeigt und können in Klartext oder als Regex vorliegen.

      • Bei Dateieinschlüssen löst ein Commit mit einer Änderung in runtime/src/main/a.java oder einer beliebigen Java-Datei Pipelines aus, die in der Ereigniskonfiguration konfiguriert sind.
      • Bei Dateiausschlüssen werden bei einem Commit mit Änderungen nur in beiden Dateien die in den Ereigniskonfigurationen konfigurierten Pipelines nicht ausgelöst.
    7. Wählen Sie für das Git-Ereignis eine Push- oder Pull-Anforderung aus.
    8. Geben Sie das API-Token ein.
      Das CSP-API-Token authentifiziert Sie für externe API-Verbindungen mit Code Stream. So rufen Sie das API-Token ab:
      1. Klicken Sie auf Token generieren.
      2. Geben Sie die E-Mail-Adresse ein, die mit Ihrem Benutzernamen und Kennwort verknüpft ist, und klicken Sie auf Generieren.
        Das von Ihnen generierte Token ist sechs Monate lang gültig. Es wird auch als Aktualisierungstoken bezeichnet.
        • Um das Token als Variable für die spätere Verwendung beizubehalten, klicken Sie auf Variable erstellen, geben Sie einen Namen für die Variable ein und klicken Sie auf Speichern.
        • Um das Token als Textwert für die spätere Verwendung beizubehalten, klicken Sie auf Kopieren und fügen Sie das Token in eine Textdatei ein, um es lokal zu speichern.
        Sie haben die Möglichkeit, eine Variable zu erstellen und das Token in einer Textdatei zur späteren Verwendung zu speichern.
      3. Klicken Sie auf Schließen.
    9. Wählen Sie die Pipeline aus, die der Webhook auslösen soll.
      Wenn die Pipeline benutzerdefinierte hinzugefügte Eingabeparametern enthält, werden in der Liste der Eingabeparameter Parameter und Werte angezeigt. Sie können Werte für Eingabeparameter eingeben, die mit dem Auslöserereignis an die Pipeline übergeben werden. Alternativ können Sie auf die Eingabe von Werten verzichten oder die Standardwerte verwenden, sofern welche definiert sind.

      Informationen zum automatischen Einfügen von Eingabeparametern für Git-Auslöser finden Sie unter Voraussetzungen.

    10. Klicken Sie auf Erstellen.
      Der Webhook wird als neue Karte angezeigt.
  3. Klicken Sie auf die Webhook-Karte.
    Wenn das Webhook-Datenformular erneut angezeigt wird, wird im oberen Bereich des Formulars eine Webhook-URL hinzugefügt. Der Git-Webhook wird über die Webhook-URL mit dem GitHub-Repository verbunden.

    Die Git-Webhook-URL, die Sie kopieren und in Ihrem Git-Repository verwenden, wird auf der Registerkarte Webhooks für Git im Auslöser für Git angezeigt.

  4. Öffnen Sie in einem neuen Browserfenster das GitHub-Repository, das eine Verbindung über den Webhook herstellt.
    1. Um den Webhook anzuzeigen, den Sie in Code Stream hinzugefügt haben, klicken Sie auf der Registerkarte Einstellungen auf Webhooks.
      Im unteren Bereich der Webhooks-Liste wird die gleiche Webhook-URL angezeigt.

      In Ihrem GitHub-Repository zeigt die Liste der Webhooks am Ende der Liste dieselbe Git-Webhook-URL an.

    2. Wenn Sie den Code ändern möchten, klicken Sie auf die Registerkarte Code und wählen Sie eine Datei im Branch aus. Nachdem Sie die Datei bearbeitet haben, übergeben Sie die Änderung.
    3. Um zu überprüfen, ob die Webhook-URL funktioniert, klicken Sie auf der Registerkarte Einstellungen erneut auf Webhooks.
      Im unteren Bereich der Webhooks-Liste wird neben der Webhook-URL ein grünes Häkchen angezeigt. Wenn der Webhook in GitHub gültig ist, wird ein grünes Häkchen angezeigt.
  5. Kehren Sie zu Code Stream zurück, um die Aktivität auf dem Git-Webhook anzuzeigen. Klicken Sie auf Auslöser > Git > Aktivität.
    Stellen Sie unter „Ausführungsstatus“ sicher, dass die Pipeline-Ausführung gestartet wurde.

    Wenn ein Benutzer eine Datei übergibt, wird der Auslöser für Git aktiviert, und auf der Registerkarte Aktivität wird der Status für den Auslöser als GESTARTET angezeigt.

  6. Klicken Sie auf Ausführungen und verfolgen Sie Ihre Pipeline während der Ausführung.
    Um die Ausführung der Pipeline zu beobachten, können Sie „Aktualisieren“ drücken.

    Nach dem Auslösen der Pipeline zeigt die Pipeline-Ausführung den Status als WIRD AUSGEFÜHRT an.

Ergebnisse

Herzlichen Glückwunsch! Sie haben den Auslöser erfolgreich für Git verwendet.