IBM Cloud Docs
Fehlerbehebung für GitHub, GitLab und Git Repos and Issue Tracking

Fehlerbehebung für GitHub, GitLab und Git Repos and Issue Tracking

Zu den allgemeinen Problemen bei der Verwendung von GitHub, GitLab und Git Repos and Issue Tracking können Probleme bei der GitHub-Authentifizierung und Toolintegrationskonfigurationsprobleme gehören. In vielen Fällen können Sie diese Probleme beheben, indem Sie eine Reihe einfacher Schritte ausführen.

Beim Versuch, die GitHub-Toolintegration zu meiner Toolchain hinzuzufügen, wurde die Toolintegration nicht hinzugefügt. Warum?

Sie müssen sich bei GitHub authentifizieren, sodass IBM Cloud autorisiert ist, auf Ihr GitHub-Konto zuzugreifen.

Die GitHub-Toolintegration wurde nicht zu Ihrer Toolchain hinzugefügt. Wenn Sie Terraform oder die API verwenden, um die GitHub Tool-Integration zu erstellen, schlägt der Versuch mit der User is not authorized with https://api.github.com Fehlermeldung fehl.

Wenn IBM Cloud nicht für den Zugriff auf Ihr GitHub-Konto autorisiert ist, kann die Toolintegration nicht zur Toolchain hinzugefügt werden.

Wenn Sie die GitHub Tool-Integration mithilfe der Konsole konfigurieren, während Sie Ihre Toolchain erstellen, führen Sie die folgenden Schritte aus, um die Autorisierung mit GitHub:

  1. Klicken Sie im Abschnitt mit den konfigurierbaren Integrationen auf GitHub.

  2. Wenn Sie die Toolchain auf IBM Cloud Public erstellen und IBM Cloud nicht zugriffsberechtigt ist GitHub, wählen Sie die Authentifizierungsmethode, die für den Zugriff auf Github verwendet wird.

    • Wenn Sie OAuth auswählen, klicken Sie auf Authorize, um die GitHub-Website aufzurufen. Wenn keine aktive GitHub-Sitzung existiert, werden Sie aufgefordert, sich anzumelden. Klicken Sie auf „Autorisieren IBM – Cloud“, um den Zugriff auf Ihr GitHub IBM Cloud Konto zu ermöglichen.
    • Wenn Sie Personal Access Token auswählen, geben Sie ein gültiges persönliches Zugriffstoken für GitHuban.

Wenn Sie die Konsole verwenden und bereits über eine Toolchain verfügen, aktualisieren Sie die Konfiguration der GitHub-Toolintegration:

  1. Klicken Sie in der Konsole IBM Cloud auf das Hamburger-Symbol im Menü > Plattformautomatisierung > Toolchains. Klicken Sie auf der Seite 'Toolchains' auf die Toolchain, um die zugehörige Übersichtsseite zu öffnen.

  2. Suchen Sie auf der Übersichtsseite der Toolchain auf der Karte Repositorys nach der GitHub-Toolintegration.

  3. Klicken Sie auf das Menü, um auf die Konfigurationsoptionen zuzugreifen, und aktualisieren Sie die Konfigurationseinstellungen, um IBM Cloud für den Zugriff auf GitHub zu berechtigen.

    • Wenn Sie OAuth auswählen, klicken Sie auf Authorize, um die GitHub-Website aufzurufen. Wenn keine aktive GitHub-Sitzung existiert, werden Sie aufgefordert, sich anzumelden. Klicken Sie auf „Autorisieren IBM – Cloud“, um den Zugriff auf Ihr GitHub IBM Cloud Konto zu ermöglichen.
    • Wenn Sie Personal Access Token auswählen, geben Sie ein gültiges persönliches Zugriffstoken für GitHuban.
  4. Wenn Sie die Aktualisierung der Einstellungen abgeschlossen haben, klicken Sie auf Integration speichern.

Wenn Sie Terraform oder die API mit der Authentifizierungsmethode OAuth verwenden, wechseln Sie zur Verwendung eines persönlichen Zugriffstokens (PAT), um einen differenzierten Zugriff für einen bestimmten Benutzer oder ein bestimmtes Repository bereitzustellen. Die Berechtigung mit einem PAT wird empfohlen, wenn Sie Terraform oder die API verwenden. Andernfalls können Sie die Konsole verwenden, um IBM Cloud für den Zugriff auf Ihr GitHub-Konto zu berechtigen:

  1. Klicken Sie in der Konsole IBM Cloud auf das Hamburger-Symbol im Menü > Plattformautomatisierung > Toolchains. Suchen Sie auf der Seite Toolchains die Toolchain, zu der Sie die GitHub hinzufügen möchten. Klicken Sie auf die Toolchain, um die Übersichtsseite zu öffnen.
  2. Klicken Sie auf der Übersichtsseite der Toolchain auf „ Hinzufügen “.
  3. Klicken Sie auf der Seite Toolintegration hinzufügen auf die Toolkarte GitHub.
  4. Klicken Sie auf der Seite GitHub auf Berechtigen, um die Website GitHub aufzurufen. Wenn keine aktive GitHub-Sitzung existiert, werden Sie aufgefordert, sich anzumelden. Klicken Sie auf „Autorisieren IBM – Cloud“, um den Zugriff auf Ihr GitHub IBM Cloud Konto zu ermöglichen. Sie werden zur Seite GitHub „Konfigurieren“ weitergeleitet.
  5. Schließen Sie die Seite, ohne weitere Aktionen in der Konsole auszuführen, und versuchen Sie anschließend erneut, die GitHub-Toolintegration mit Terraform oder der API zu erstellen.

Warum kann ich die Git Repos and Issue Tracking-Toolintegration aus meiner Toolchain in einer Region nicht in einer Toolchain einer anderen Region verwenden?

Sie können nicht dieselbe Instanz von Git Repos and Issue Tracking in mehreren Regionen verwenden.

Wenn ich versuche, die Git Repos and Issue Tracking-Toolintegration zu meiner Toolchain hinzuzufügen, wird die folgende Fehlernachricht angezeigt:

Repository URL is not valid. The repository must be on {local GitLab URL}.

Dabei ist {local GitLab URL} die URL der Git Repos and Issue Tracking-Toolintegration in der Region, in der sich die Toolchain befindet.

Da Git Repos and Issue Tracking nahtlos mit dem Continuous Delivery-Service in der Region integriert ist, in der sie ausgeführt werden, können Sie eine Instanz von Git Repos and Issue Tracking nicht in mehreren Regionen verwenden.

Erstellen Sie statt einer Git Repos and Issue Tracking-Toolintegration eine generische GitLab-Integration und verwenden Sie diese Integration, um auf das Git Repos and Issue Tracking-Repository in einer anderen Region zu verweisen.

  1. Klicken Sie in der Konsole IBM Cloud auf das Hamburger-Symbol im Menü > Plattformautomatisierung > Toolchains. Klicken Sie auf der Seite 'Toolchains' auf die Toolchain, zu der Sie diese Integration hinzufügen wollen.

  2. Klicken Sie auf Tool hinzufügen.

  3. Klicken Sie im Abschnitt mit den Toolintegrationen auf GitLab.

  4. Klicken Sie auf den GitLab-Server, den Sie verwenden wollen. Wenn der GitLab-Server, auf dem sich das Repository befindet, auf das Sie zugreifen möchten, in dieser Liste nicht angezeigt wird, fügen Sie einen angepassten Server hinzu:

    a. Klicken Sie auf „ Benutzerdefinierter Server “.

    b. Geben Sie einen Namen für den Server ein. Dieser Servername wird in der Liste verfügbarer GitLab-Server angezeigt.

    c. Geben Sie die Root-URL des angepassten GitLab-Servers ein.

    d. Geben Sie ein persönliches Zugriffstoken für Ihren angepassten GitLab-Server ein. Wenn Sie kein persönliches Zugriffstoken haben, erstellen Sie eines.

  5. Falls Sie über ein GitLab-Repository verfügen und dieses verwenden möchten, klicken Sie beim Repository-Typ auf Vorhanden und geben Sie die URL ein.

  6. Falls Sie ein neues GitLab-Repository verwenden möchten, geben Sie einen Namen für das Repository ein, geben Sie die URL für das Repository ein, das Sie klonen oder verzweigen, und wählen Sie den Repository-Typ aus:

    a. Klicken Sie auf Neu, um ein leeres Repository zu erstellen.

    b. Klicken Sie auf Klonen, um eine Kopie eines GitLab-Repositorys zu erstellen.

    c. Klicken Sie auf Verzweigen, um ein GitLab-Repository zu verzweigen, sodass Sie Änderungen per Zusammenführungsanforderungen (Merge) beitragen können.

  7. Wenn Sie ein öffentliches Repository auf dem Server erstellen wollen, inaktivieren Sie das Kontrollkästchen Repository als privat definieren.

  8. Wenn Sie GitLab Issues für die Verfolgung von Problemen verwenden möchten, wählen Sie das Kontrollkästchen GitLab Issues aktivieren aus.

  9. Wenn Sie die Bereitstellung von Codeänderungen bei Commits durch Erstellen von Tags und Kommentaren und bei Problemen, die über die Commits referenziert werden, mit Bezeichnungen und Kommentaren verfolgen wollen, wählen Sie das Kontrollkästchen Bereitstellung von Codeänderungen verfolgen aus. Weitere Informationen finden Sie unter Verfolgen Sie, wo Ihr Code mit Toolchains bereitgestellt wird.

  10. Klicken Sie auf Integration erstellen.

Weitere Informationen zur Konfiguration einer GitLab-Toolintegration finden Sie unter GitLab konfigurieren.

Warum kann ich mein Git Repos and Issue Tracking-Repository nicht über HTTPS klonen?

Sie müssen ein persönliches Zugriffstoken oder einen SSH-Schlüssel verwenden, um Git-Operationen durchzuführen.

Sie versuchen, ein Repository über die Befehlszeile zu klonen oder per Push-Operation bereitzustellen, indem Sie HTTPS verwenden, und können keine Authentifizierung durchführen, obwohl Sie das korrekte Kennwort eingegeben haben.

Git Repos and Issue Tracking verwendet einen Single Sign-on-Mechanismus, der eine Git-Authentifizierung anhand eines Benutzernamens und eines Kennworts über die Befehlszeile nicht unterstützt.

Wenn Sie Git-Operationen, wie z. B. Klon- oder Push-Operationen, durchführen möchten, müssen Sie ein persönliches Zugriffstoken oder einen SSH-Schlüssel verwenden. Weitere Informationen zum Erstellen eines persönlichen Zugriffstokens oder eines SSH-Schlüssels finden Sie im Lernprogramm zur Einführung.

Warum werde ich aufgefordert, mich zu authentifizieren, wenn ich versuche, mein Git Repos and Issue Tracking-Repository mithilfe von SSH zu klonen?

Möglicherweise gibt es Probleme mit der Position oder den Berechtigungen für Ihren privaten SSH-Schlüssel, oder die Git-Befehlszeile verwendet nicht Ihren privaten SSH-Schlüssel für die Authentifizierung bei Git Repos and Issue Tracking.

Ich habe meinen öffentlichen SSH-Schlüssel über die Git Repos and Issue Tracking-Benutzerschnittstelle hinzugefügt. Wenn ich versuche, ein Repository mithilfe von SSH zu klonen, werde ich aufgefordert, ein Kennwort oder einen Sicherheitscode einzugeben, oder es wird eine Fehlernachricht angezeigt, die besagt, dass die Authentifizierung fehlgeschlagen ist.

Alle folgenden SSH-Probleme können dazu führen, dass Sie sich authentifizieren müssen oder dass eine Fehlernachricht angezeigt wird.

  • Die Git-Befehlszeile verwendet möglicherweise nicht Ihren privaten SSH-Schlüssel zur Authentifizierung bei Git Repos and Issue Tracking.

  • Ihr privater SSH-Schlüssel befindet sich möglicherweise nicht an der Standardposition '~/.ssh/id_rsa'.

  • Ihr privater SSH-Schlüssel verfügt möglicherweise nicht über die korrekten Berechtigungen (600).

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu lösen:

  • Wenn Sie die Standardposition für den privaten SSH-Schlüssel verwenden, überprüfen Sie die Berechtigungen für den Ordner '~/.ssh/' und für die private Schlüsseldatei '~/.ssh/id_rsa'. Wenn die Berechtigungen zu unspezifisch sind, verwendet SSH standardmäßig keinen privaten Schlüssel. Stellen Sie sicher, dass die Berechtigungen für den Ordner '~/.ssh/' auf 700 und die Berechtigungen für den Ordner '~/.ssh/id_rsa' auf 600 festgelegt sind.

  • Wenn sich Ihr privater Schlüssel nicht an der Standardposition befindet, verwenden Sie den folgenden Befehl, um ihn in einer Umgebungsvariablen anzugeben.

  GIT_SSH_COMMAND='ssh -i/path/to/private_key_file' git clone git@host:owner/repo.git
  • Um dieses Problem anhand von Verbindungsinformationen zu debuggen, fügen Sie das Flag '-v' oder '-vvv' zur Umgebungsvariablen GIT_SSH_COMMAND hinzu:
  GIT_SSH_COMMAND='ssh -vvv git clone git@host:owner/repo.git
  GIT_SSH_COMMAND='ssh -vvv -i/path/to/private_key_file' git clone git@host:owner/repo.git

Warum wird beim Abrufen von Änderungen von meinem Git Repos and Issue Tracking-Repository der Fehler 504 Gateway Time-out gemeldet?

Die Größe Ihres Repositorys überschreitet 1 GB. Das Git-Quellcodeverwaltungssystem ist nicht für das Speichern großer Binärdateien konzipiert.

Beim Versuch, eine Operation für ein Git Repos and Issue Tracking-Repository durchzuführen (z. B. Abrufen oder Klonen) wird die folgende Fehlernachricht ausgegeben:

git fetch error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504 Gateway Time-out fatal: The remote end hung up unexpectedly

Die Größe Ihres Repositorys überschreitet 1 GB. Darüber hinaus enthält das Repository möglicherweise Binärdateien, für die mehr Speicherplatz erforderlich ist als für Textdateien, die in einem komprimierten Format gespeichert werden.

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu lösen:

  • Verkleinern Sie Ihr Git Repos and Issue Tracking-Repository. Weitere Informationen zum Verkleinern Ihres Repositorys finden Sie unter Verkleinern des Repositorys mit Git.

  • Verwenden Sie SSH, um das Standardzeitlimit von 180 Sekunden für Klonoperationen zu umgehen.

  • Wenn Sie ein Repository klonen möchten, erstellen Sie einen flachen Klon (git clone --depth). Dadurch wird die übertragene Datenmenge reduziert, indem das Commitprotokoll gekürzt wird. Weitere Informationen zum Ausführen eines Shallow-Klons finden Sie in der Git Referenzdokumentation.

Ich habe versucht, meinem GitLab-Projekt einen Benutzer per E-Mail hinzuzufügen, aber er hat die Einladung nicht erhalten. Wie füge ich ihn zu meinem Projekt hinzu?

Möglicherweise wurde die Einladung vom E-Mail-Programm des Benutzers blockiert.

Ich habe einen Benutzer zu meinem GitLab-Projekt eingeladen, indem ich eine E-Mail an seine in Git Repos and Issue Tracking aufgelistete E-Mail-Adresse gesendet habe, aber er hat die E-Mail nicht erhalten.

Die E-Mail wurde möglicherweise vom Posteingang des Benutzers als Spam erkannt.

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu lösen:

  • Prüfen Sie in Ihrem E-Mail-Spamordner, ob die E-Mail-Einladung als Spam markiert wurde. E-Mails werden von einer noreply@-Adresse gesendet. Aktualisieren Sie Ihre Spamfilter, um E-Mails von dieser Adresse zuzulassen.

  • Untersuchen Sie, ob unternehmensweite Spamfilter, die nicht vom Benutzer eingestellt werden, die E-Mail blockieren. Bitten Sie den Benutzer, sich bei der Git Repos and Issue Tracking-Schnittstelle anzumelden, und Ihnen seine Benutzer-ID zu senden. Dann können Sie den Benutzer mithilfe seiner Benutzer-ID zum GitLab-Projekt hinzufügen.

Warum schlägt die Konfiguration fehl, wenn ich die Konfiguration einer vorhandenen Git-Toolintegration mit Terraform aktualisiere?

Die Toolintegrationsressource Git gibt für type den Wert clone, fork oder new und für ein vorhandenes Zielrepository an.

Wenn Sie Terraform zum Aktualisieren einer Git Tool-Integration verwenden, schlägt die Konfiguration mit der The nonempty repository _REPO-URL_ already exists. Either delete the repository or change the Repository Type to 'Existing' Fehlermeldung fehl, wobei der URL des REPO-URL Ziel-Repositorys ist.

Dieser Fehler wird häufig durch folgende Aktionen verursacht:

  • Ihre Terraform-Ressource für die Git-Toolintegration gibt den type-Wert clone, fork oder new an. Sie haben den repo_url innerhalb des initialization Blocks der Ressource in den URL eines vorhandenen Repos geändert.
  • Ihre Terraform-Ressource für die Git-Toolintegration gibt den type-Wert clone, fork oder new an. Sie haben die repo_url nicht geändert, aber Sie haben mindestens ein anderes Argument im Block initialization der Ressource geändert. In dieser Situation ist das Repository vorhanden, da es erstellt wurde, als die Ressource für die Git-Toolintegration zuvor von Terraform angewendet wurde.

Die Typen clone, fork und new weisen die Git-Toolintegration an, das Zielrepository (repo_url) unter der Voraussetzung zu erstellen, dass dieses Repository nicht vorhanden ist. Wenn die Toolintegration das Zielrepository findet, schlägt es designgemäß fehl.

Ändern Sie die type von clone, fork oder new in clone_if_not_exists, fork_if_not_exists oder new_if_not_exists. Diese Typen weisen die Git Tool-Integration an, das Ziel-Repo zu erstellen, wenn es nicht existiert, oder das Ziel-Repo unverändert zu verwenden, wenn es existiert.

Obwohl Sie andere Methoden verwenden können, um diesen Fehler zu beheben, werden diese Methoden nicht empfohlen, da Sie möglicherweise Informationen verlieren. Diese Methoden erfordern möglicherweise auch Änderungen an Terraform, die keine bewährten Verfahren sind.

  • Ändern Sie repo_url in ein Repository, das erstellt wird, wenn Sie Terraform erneut anwenden. Das Ändern einer Terraform-Ressource nach der ursprünglichen Erstellung zur Vermeidung von Fehlern bei nachfolgenden Aktualisierungen ist ein Antimuster. Diese Methode lässt auch die zuvor erstellten Repositorys unverändert, aber nicht mehr an die Toolchain gebunden.
  • Ändern Sie type in existing und wenden Sie Terraform erneut an. Das Ändern einer Terraform-Ressource nach der ursprünglichen Erstellung zur Vermeidung von Fehlern bei nachfolgenden Aktualisierungen ist ein Antimuster.
  • Löschen Sie das Zielrepository manuell und wenden Sie dann Terraform erneut an. Manuelle Änderungen zwischen ansonsten automatisierten Terraform-Operationen werden nicht empfohlen. Wenn Sie das Repository löschen, kann das Löschen nicht rückgängig gemacht werden und kann zu einem permanenten Datenverlust führen.