Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Problembehandlung bei Dependabot-Fehlern

Manchmal kann Dependabot keinen Pull Request auslösen, um deine Abhängigkeiten zu aktualisieren. Du kannst den Fehler überprüfen und die Blockierung von Dependabot aufheben.

Informationen zu Dependabot-Fehlern

Dependabot löst Pull Requests zum Aktualisieren von Abhängigkeiten aus. Je nachdem, wie Dein Repository konfiguriert ist, kann Dependabot Pull Requests für Versionsupdates und/oder für Sicherheitsupdates auslösen. Du verwaltest diese Pull Requests auf dieselbe Weise wie alle anderen Pull Requests, aber es sind auch einige zusätzliche Befehle verfügbar. Weitere Informationen zum Aktivieren von Dependabot findest Du unter „Konfigurieren von Dependabot security updates“ und „Aktivieren und Deaktivieren von Dependabot-Versionsupdates“.

Wenn etwas verhindert, dass Dependabot einen Pull Request auslöst, wird dies als Fehler gemeldet.

Hinweis: Dependabot erstellt keine Pull Requests für inaktive Repositorys. Weitere Informationen zu den Inaktivitätskriterien findest du unter Informationen zu Dependabot security updates und Informationen zu Dependabot version updates (für Sicherheits- bzw. Versionsupdates).

Untersuchen von Fehlern bei Dependabot security updates

Wenn Dependabot daran gehindert wird, einen Pull Request zum Beheben einer Dependabot-Warnung zu erstellen, wird die Fehlermeldung in der Warnung angezeigt. Die Dependabot alerts-Ansicht zeigt eine Liste aller Warnungen an, die noch nicht behoben wurden. Für den Zugriff auf die Warnungsansicht klicke auf der Registerkarte Sicherheit für das Repository auf Dependabot alerts. Wenn ein Pull Request generiert wurde, der die anfällige Abhängigkeit korrigiert, enthält die Warnung einen Link zu diesem Pull Request.

Dependabot alerts-Ansicht mit einem Pull Request-Link

Es gibt mehrere Gründe, warum eine Warnung nicht über einen Pull Request-Link verfügt:

  1. Dependabot security updates sind nicht für das Repository aktiviert.

  2. Die Warnung gilt für Schadsoftware, und es ist keine sichere Version des Pakets verfügbar.

  3. Die Warnung ist für eine indirekte oder transitive Abhängigkeit vorgesehen, die in einer Sperrdatei nicht explizit definiert ist.

  4. Ein Fehler hat verhindert, dass Dependabot einen Pull Request erstellt.

Wenn ein Fehler verhindert hat, dass Dependabot einen Pull Request erstellt, kannst du Details des Fehlers anzeigen, indem du auf die Warnung klickst.

Untersuchen von Fehlern bei Dependabot version updates

Wenn Dependabot daran gehindert wurde, einen Pull Request zum Aktualisieren einer Abhängigkeit in einem Ökosystem zu erstellen, wird das Fehlersymbol in der Manifestdatei angezeigt. Die Manifestdateien, die von Dependabot verwaltet werden, werden auf der Registerkarte „Dependabot“ aufgelistet. Für den Zugriff auf diese Registerkarte klicke auf der Registerkarte Erkenntnisse für das Repository auf Abhängigkeitsdiagramm, und klicke dann auf die Registerkarte Dependabot.

Dependabot-Ansicht mit einem Fehler

Wenn du die Protokolldatei für eine beliebige Manifestdatei anzeigen möchtest, klicke auf den Link Last checked TIME ago (Zuletzt überprüft vor ZEIT). Wenn du die Protokolldatei für ein Manifest anzeigst, das mit einem Fehlersymbol angezeigt wird (z. B. Maven im obigen Screenshot), werden auch alle Fehler angezeigt.

Dependabot-Versionsupdates und Protokoll

Grundlegendes zu Dependabot-Fehlern

Pull Requests für Sicherheitsupdates dienen zum Upgrade einer anfälligen Abhängigkeit auf die Mindestversion, die einen Fix für das Sicherheitsrisiko enthält. Im Gegensatz dazu dienen Pull Requests für Versionsupdates zum Upgrade einer Abhängigkeit auf die neueste Version, die nach dem Paketmanifest und den Dependabot-Konfigurationsdateien zulässig ist. Daher sind einige Fehler für einen Updatetyp spezifisch.

Dependabot kann DEPENDENCY nicht auf eine nicht anfällige Version aktualisieren

Nur Sicherheitsupdates. Dependabot kann keinen Pull Request erstellen, um die anfällige Abhängigkeit auf eine sichere Version zu aktualisieren, ohne andere Abhängigkeiten im Abhängigkeitsdiagramm für dieses Repository zu unterbrechen.

Jede Anwendung mit Abhängigkeiten hat ein Abhängigkeitsdiagramm, also einen gerichteten azyklischen Graph jeder Paketversion, von der die Anwendung direkt oder indirekt abhängt. Jedes Mal, wenn eine Abhängigkeit aktualisiert wird, muss dieses Diagramm aufgelöst werden, andernfalls wird die Anwendung nicht erstellt. Wenn ein Ökosystem über ein tiefes und komplexes Abhängigkeitsdiagramm verfügt, z. B. npm und RubyGems, ist es oft unmöglich, ein Upgrade für eine einzelne Abhängigkeit ohne ein Upgrade für das gesamte Ökosystem durchzuführen.

Die beste Möglichkeit, dieses Problem zu vermeiden, besteht darin, mit den zuletzt veröffentlichten Versionen auf dem neuesten Stand zu bleiben, z. B. durch Aktivieren von Versionsupdates. Dadurch wird die Wahrscheinlichkeit erhöht, dass ein Sicherheitsrisiko in einer Abhängigkeit durch ein einfaches Upgrade behoben werden kann, das das Abhängigkeitsdiagramm nicht unterbricht. Weitere Informationen findest du unter Konfigurieren von Versionsupdates für Dependabot.

Dependabot versucht, Abhängigkeiten ohne Warnung zu aktualisieren

Nur Sicherheitsupdates. Dependabot aktualisiert explizit definierte transitive Abhängigkeiten, die bei allen Ökosystemen anfällig sind. Bei npm löst Dependabot einen Pull Request aus, der auch die übergeordnete Abhängigkeit aktualisiert, wenn dies die einzige Möglichkeit ist, die transitive Abhängigkeit zu beheben.

Beispiel: Ein Projekt mit einer Abhängigkeit auf A Version ~2.0.0, die eine transitive Abhängigkeit auf B Version ~1.0.0 hat, wird in 1.0.1 aufgelöst.

my project
|
--> A (2.0.0) [~2.0.0]
       |
       --> B (1.0.1) [~1.0.0]

Wenn ein Sicherheitsrisiko für B Version <2.0.0 veröffentlicht wird und ein Patch unter 2.0.0 verfügbar ist, versucht Dependabot, B zu aktualisieren, was aber aufgrund der Einschränkung durch A nicht möglich ist, die nur niedrigere anfällige Versionen zulässt. Zum Beheben des Sicherheitsrisikos sucht Dependabot nach Updates für Abhängigkeit A, welche die Verwendung der reparierten Version B zulassen.

Dependabot generiert automatisch einen Pull Request, der sowohl die gesperrten übergeordneten als auch die untergeordneten transitiven Abhängigkeiten aktualisiert.

Dependabot kann nicht auf die erforderliche Version aktualisiert werden, da bereits ein offener Pull Request für die neueste Version vorhanden ist.

Nur Sicherheitsupdates. Dependabot erstellt keinen Pull Request, um die anfällige Abhängigkeit auf eine sichere Version zu aktualisieren, da bereits ein offener Pull Request vorhanden ist, um diese Abhängigkeit zu aktualisieren. Dieser Fehler wird angezeigt, wenn ein Sicherheitsrisiko in einer einzigen Abhängigkeit erkannt wird und bereits ein offener Pull Request vorhanden ist, um die Abhängigkeit auf die neueste Version zu aktualisieren.

Du hast zwei Möglichkeiten: Du kannst den offenen Pull Request überprüfen und zusammenführen, sobald du sicher bist, dass die Änderung sicher ist. Alternativ kannst du diesen Pull Request schließen und einen neuen Pull Request für ein Sicherheitsupdate auslösen. Weitere Informationen findest du unter Manuelles Auslösen eines Dependabot-Pull Requests.

Dependabot-Timeout während des Updates

Dependabot brauchte länger als die zulässige maximale Zeit, um das erforderliche Update zu bewerten und einen Pull Request vorzubereiten. Dieser Fehler wird normalerweise nur für große Repositorys mit vielen Manifestdateien angezeigt, z. B. npm- oder yarn-Monorepo-Projekte mit Hunderten von package.json-Dateien. Die Bewertung von Aktualisierungen des Composer-Ökosystems dauert auch länger, und es kann zu einem Timeout kommen.

Dieser Fehler ist schwer zu beheben. Wenn es bei einem Versionsupdate zu einem Timeout kommt, kannst du die wichtigsten Abhängigkeiten angeben, die mit dem allow-Parameter aktualisiert werden sollen, oder alternativ den ignore-Parameter verwenden, um einige Abhängigkeiten von Updates auszuschließen. Durch das Aktualisieren deiner Konfiguration kann Dependabot das Versionsupdate überprüfen und den Pull Request in der verfügbaren Zeit generieren.

Wenn es bei einem Sicherheitsupdate zu einem Timeout kommt, kannst du die Wahrscheinlichkeit dafür verringern, indem du die Abhängigkeiten auf dem neuesten Stand hältst, z. B. durch Aktivieren von Versionsupdates. Weitere Informationen findest du unter Konfigurieren von Dependabot-Versionsupdates.

Dependabot kann keine weiteren Pull Requests öffnen

Es gibt ein Limit für die Anzahl der offenen Pull Requests, die von Dependabot generiert werden. Wenn dieses Limit erreicht ist, werden keine neuen Pull Requests geöffnet, und dieser Fehler wird gemeldet. Die beste Möglichkeit zum Beheben dieses Fehlers besteht darin, einige der offenen Pull Requests zu überprüfen und zusammenzuführen.

Es gibt separate Limits für Pull Requests für Sicherheits- und Versionsupdates, sodass offene Pull Requests für Versionsupdates nicht die Erstellung eines Pull Requests für ein Sicherheitsupdate blockieren können. Das Limit für Pull Requests für Sicherheitsupdates beträgt 10. Standardmäßig beträgt das Limit für Versionsupdates 5, aber du kannst diesen Wert mithilfe des open-pull-requests-limit-Parameters in der Konfigurationsdatei ändern. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei „dependabot.yml“.

Die beste Möglichkeit zum Beheben dieses Fehlers besteht darin, einige der vorhandenen Pull Requests zusammenzuführen oder zu schließen und einen neuen Pull Request manuell auszulösen. Weitere Informationen findest du unter Manuelles Auslösen eines Dependabot-Pull Requests.

Dependabot kann deine Abhängigkeiten nicht auflösen oder darauf zugreifen.

Wenn Dependabot versucht zu überprüfen, ob Abhängigkeitsverweise in einem Repository aktualisiert werden müssen, jedoch nicht auf eine oder mehrere der verwiesenen Dateien zugreifen kann, schlägt der Vorgang mit der Fehlermeldung „Dependabot kann deine LANGUAGE-Abhängigkeitsdateien nicht auflösen“ fehl. Der API-Fehlertyp ist git_dependencies_not_reachable.

Wenn Dependabot nicht auf eine private Paketregistrierung zugreifen kann, in der sich eine Abhängigkeit befindet, wird einer der folgenden Fehler generiert:

  • „Dependabot can't reach a dependency in a private package registry“ (Dependabot kann eine Abhängigkeit in einer privaten Paketregistrierung nicht erreichen)
    (API-Fehlertyp: private_source_not_reachable)
  • „Dependabot can't authenticate to a private package registry“ (Dependabot kann sich nicht bei einer privaten Paketregistrierung authentifizieren)
    (API-Fehlertyp:private_source_authentication_failure)
  • „Dependabot timed out while waiting for a private package registry“ (Dependabot-Timeout beim Warten auf eine private Paketregistrierung)
    (API-Fehlertyp:private_source_timed_out)
  • „Dependabot couldn't validate the certificate for a private package registry“ (Dependabot konnte das Zertifikat für eine private Paketregistrierung nicht überprüfen)
    (API-Fehlertyp:private_source_certificate_failure)

Damit Dependabot die Abhängigkeitsverweise erfolgreich aktualisieren kann, stelle sicher, dass alle referenzierten Abhängigkeiten an zugänglichen Speicherorten gehostet werden.

Nur Versionsupdates. Bei der Durchführung von Sicherheits- oder Versionsupdates müssen einige Ökosysteme in der Lage sein, alle Abhängigkeiten von der jeweiligen Quelle aufzulösen, um zu überprüfen, ob die Updates erfolgreich waren. Wenn deine Manifest- oder Sperrdateien private Abhängigkeiten enthalten, muss Dependabot auf den Speicherort zugreifen können, an dem diese Abhängigkeiten gehostet werden. Organisationsbesitzer können Dependabot Zugriff auf private Repositorys gewähren, die Abhängigkeiten für ein Projekt innerhalb derselben Organisation enthalten. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analyseeinstellungen für deine Organisation. Du kannst den Zugriff auf private Registrierungen in der Konfigurationsdatei dependabot.yml eines Repositorys konfigurieren. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei „dependabot.yml“. Darüber hinaus bietet Dependabot keine Unterstützung für private GitHub-Abhängigkeiten für alle Paket-Manager. Weitere Informationen findest du unter Informationen zu Dependabot-Versionsupdates.

Manuelles Auslösen eines Dependabot-Pull Requests

Wenn du die Blockierung von Dependabot aufhebst, kannst du einen neuen Versuch zum Erstellen eines Pull Requests manuell auslösen.

  • Sicherheitsupdates: Zeige die Dependabot-Warnung an, die den Fehler anzeigt, den du behoben hast, und klicke auf Dependabot-Sicherheitsupdate erstellen.
  • Versionsupdates: Klicke auf der Registerkarte Erkenntnisse für das Repository auf Abhängigkeitsdiagramm, und klicke dann auf die Registerkarte Dependabot. Klicke auf Last checked TIME ago (Zuletzt überprüft vor ZEIT), um die Protokolldatei anzuzeigen, die Dependabot während der letzten Überprüfung auf Versionsupdates generiert hat. Klicke auf Nach Updates suchen.

Weiterführende Themen