Skip to main content

Leitfaden zum Konfigurieren privater Registrierungen für Dependabot

Dieser Artikel enthält ausführliche Informationen zum Konfigurieren privater Registrierungen sowie Befehle, die Sie über die Befehlszeile ausführen können, um Ihre Paket-Manager lokal zu konfigurieren.

Wer kann dieses Feature verwenden?

Benutzer*innen mit Schreibzugriff

Informationen zum Konfigurieren von privaten Registrierungen für Dependabot

Dieser Artikel enthält Empfehlungen und Ratschläge, die Ihnen das Konfigurieren von Dependabot für den Zugriff auf Ihre private Registrierung erleichtern, zusammen mit:

  • Detaillierte Codeausschnitte der dependabot.yml-Konfigurationsdatei für jeden Paket-Manager.
  • Wichtige Limits oder Einschränkungen.
  • In den Schritten wird erläutert, wie Sie die Funktionsfähigkeit der Konfiguration testen können.
  • Zusätzliche Konfigurationsoptionen , wo zutreffend (z. B. verfügt npm über eine Konfigurationsdatei, die festgelegt werden muss).
  • Hinweise zum Konfigurieren von Registrierungshosts.

Sie finden detaillierte Anleitungen für die Einrichtung der folgenden Paket-Manager:

Außerdem finden Sie Empfehlungen für das Einrichten der folgenden Registrierungshosts:

Um den Zugriff von Dependabot auf deine privaten Registrierungen und internen Netzwerkressourcen besser kontrollieren zu können, kannst du Dependabot so konfigurieren, dass er auf GitHub Actions selbst gehosteten Runnern läuft. Weitere Informationen findest du unter Informationen zu Dependabot über GitHub Actions-Runner und unter Verwalten von Dependabot auf selbst gehosteten Runnern.

Konfigurieren von Paket-Managern

Bundler

Unterstützt von Artifactory, Artifacts, Cloudsmith, GitHub Packages-Registrierung, Nexus und ProGet.

Sie können sich entweder mit einem Benutzernamen und einem Kennwort oder mit einem Token authentifizieren. Weitere Informationen findest du unter rubygems-server in Konfigurationsoptionen für die Datei dependabot.yml.

Ausschnitt aus einer dependabot.yml-Datei unter Verwendung eines Benutzernamens und Kennworts.

registries:
  ruby-example:
    type: rubygems-server
    url: https://rubygems.example.com
    username: octocat@example.com
    password: ${{secrets.MY_RUBYGEMS_PASSWORD}}

Der folgende Ausschnitt aus der dependabot.yml-Datei verwendet ein Token. Für diesen Registrierungstyp, der die GitHub Packages-Registrierung (xyz.pkg.github.com) verwendet, ist das Token tatsächlich ein GitHub personal access token (PAT) .

registries:
  ruby-github:
    type: rubygems-server
    url: https://rubygems.pkg.github.com/octocat/github_api
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

Hinweise

Abhängigkeiten, die direkt aus einem GitHub-Repository stammen, gewähren Dependabot Zugriff auf das Repository über die Benutzeroberfläche von GitHub. Informationen zum Gewähren des Zugriffs auf private GitHub-Abhängigkeiten für Dependabot sind unter „Gewähren des Zugriffs auf private Abhängigkeiten für Dependabot“ zu finden.

Cargo

Cargo unterstützt die Authentifizierung per Benutzername, Kennwort und Token. Weitere Informationen findest du unter cargo-registry in Konfigurationsoptionen für die Datei dependabot.yml.

Der folgende Ausschnitt zeigt eine dependabot.yml-Dateikonfiguration, die ein Token verwendet.

registries:
  cargo-example:
    type: cargo-registry
    registry: "name-of-your-registry"
    url: https://cargo.cloudsmith.io/foobaruser/test/
    token: "Token ${{secrets.CARGO_TOKEN}}"

Wir haben diese Konfiguration mit der privaten Registrierung bei https://cargo.cloudsmith.io getestet.

Docker

Docker unterstützt die Verwendung eines Benutzernamens und Kennworts für Registrierungen. Weitere Informationen findest du unter docker-registry in Konfigurationsoptionen für die Datei dependabot.yml.

Ausschnitt aus der dependabot.yml-Datei unter Verwendung eines Benutzernamens und Kennworts.

registries:
  dockerhub:
    type: docker-registry
    url: https://registry.hub.docker.com
    username: octocat
    password: ${{secrets.MY_DOCKERHUB_PASSWORD}}

docker-registry kann auch zum Pullen aus einer privaten Amazon ECR-Instanz mithilfe statischer AWS-Anmeldeinformationen verwendet werden.

registries:
  ecr-docker:
    type: docker-registry
    url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
    username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
    password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}

Hinweise

Dependabot funktioniert mit allen Containerregistrierungen, die die Verteilungsspezifikation der Open Container Initiative (OCI) implementieren. Weitere Informationen finden Sie unter https://github.com/opencontainers/distribution-spec/blob/main/spec.md.

Dependabot unterstützt die Authentifizierung bei privaten Registrierungen über einen zentralen Tokendienst oder die HTTP-Standardauthentifizierung. Weitere Informationen sind unter Tokenauthentifizierungsspezifikation in der Docker-Dokumentation und unter Standardauthentifizierung in Wikipedia zu finden.

Einschränkungen und Problemumgehungen

  • Bildnamen werden in Containerdateien, Helm-Dateien oder Yaml-Dateien möglicherweise nicht immer erkannt.
  • Dockerfiles ermpfangen möglicherweise nur ein Versionsupdate für die erste FROM-Anweisung.
  • Dockerfiles empfangen keine Aktualisierungen von Bildern, die mit der ARG-Anweisung angegeben sind. Es ist eine Problemumgehung für die COPY-Anweisung verfügbar. Weitere Informationen finden Sie unter „Dependabot ignoriert Imageverweise in COPY Dockerfile-Anweisung“ im dependabot/dependabot-core-Repository.
  • Dependabot unterstützt keine mehrstufigen Docker-Builds. Weitere Informationen finden Sie unter „Unterstützung für mehrstufige Docker-Builds“ im dependabot/dependabot-core-Repository.

Gradle

Dependabot führt Gradle nicht aus, unterstützt jedoch Updates gewisser Gradle-Dateien. Weitere Informationen sind unter „Gradle“ in „Konfigurationsoptionen für die Datei dependabot.yml“ zu finden.

Gradle unterstützt den Registrierungstyp maven-repository. Weitere Informationen findest du unter maven-repository in Konfigurationsoptionen für die Datei dependabot.yml.

Vom Typ maven-repository werden Benutzername und Kennwort unterstützt. Wenn das Konto ein GitHub-Konto ist, kannst du anstelle des Kennworts ein GitHub personal access token verwenden.

registries:
  gradle-artifactory:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-gradle-registry
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
updates:
  - package-ecosystem: "gradle"
    directory: "/"
    registries:
      - gradle-artifactory
    schedule:
      interval: "monthly"

Hinweise

Möglicherweise werden nicht alle Abhängigkeiten im Abhängigkeitsdiagramm dargestellt, vor allem, wenn einige Abhängigkeiten Buildzeit-Abhängigkeiten sind. Über die Abhängigkeitsübermittlungs-API können Sie GitHub über andere Abhängigkeiten informieren und Sicherheitsupdates dafür erhalten. Weitere Informationen findest du unter Verwenden der Abhängigkeitsübermittlungs-API.

Maven

Maven unterstützt die Authentifizierung per Benutzername und Kennwort. Weitere Informationen findest du unter maven-repository in Konfigurationsoptionen für die Datei dependabot.yml.

registries:
  maven-artifactory:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-maven-registry
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}

Wenn das Konto ein GitHub-Konto ist, kannst du anstelle des Kennworts ein GitHub personal access token verwenden.

version: 2
registries:
  maven-github:
    type: maven-repository
    url: https://maven.pkg.github.com/octocat
    username: octocat
    password: ${{secrets.OCTOCAT_GITHUB_PAT}}
updates:
  - package-ecosystem: "maven"
    directory: "/"
    registries:
      - maven-github
    schedule:
      interval: "monthly"

Hinweise

Möglicherweise werden nicht alle Abhängigkeiten im Abhängigkeitsdiagramm dargestellt, vor allem, wenn einige Abhängigkeiten Buildzeit-Abhängigkeiten sind. Über die Abhängigkeitsübermittlungs-API können Sie GitHub über andere Abhängigkeiten informieren und Sicherheitsupdates dafür erhalten. Weitere Informationen findest du unter Verwenden der Abhängigkeitsübermittlungs-API.

npm

Sie können die Konfiguration in der dependabot.yml-Datei mithilfe des npm-registry-Typs definieren oder Dependabot konfigurieren, um alle Registrierungsanforderungen über eine angegebene Basis-URL zu senden.

Verwenden des npm-registry-Typs in der Konfigurationsdatei

Die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei kann mit dem npm-registry-Typ definiert werden. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Der folgende Ausschnitt aus einer dependabot.yml-Datei verwendet ein Token. Für diesen Registrierungstyp, der die GitHub Packages-Registrierung (xyz.pkg.github.com) verwendet, ist das Token tatsächlich ein GitHub personal access token (PAT) .

registries:
  npm-github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

Für das npm-Ökosystem muss eine .npmrc-Datei mit der URL der privaten Registrierung in das Repository eingecheckt werden.

Beispiel für den Inhalt einer .npmrc-Datei:

registry=https://<private-registry-url>

Alternativ dazu kann die URL der privaten Registrierung mit dem folgenden Befehl zu einer vorhandenen .npmrc-Datei hinzugefügt werden.

npm config set registry <url>

Weitere Informationen sind unter Registrierung in der npm-Dokumentation zu finden.

Die Konfiguration kann auch nur auf eine einzelne Abhängigkeit oder Organisation beschränkt werden. In diesem Fall ist das Token nur für die Organisation gültig, und es können unterschiedliche Tokens für verschiedene Organisationen für dasselbe Repository verwendet werden.

npm config set @<org-name>:registry <url>

Daraus ergäbe sich ein „.npmrc“ mit der Registrierung:

@<org-name>:registry=https://<private-registry-url>

npm kann so konfiguriert werden, dass die URL der privaten Registrierung in Sperrdateien mit replace-registry-hostverwendet wird. Weitere Informationen sind unter Registrierungshost ersetzen in der npm-Dokumentation zu finden.

npm config set replace-registry-host "never"

Bei Verwendung von replace-registry-host muss npm install lokal ausgeführt werden, um die Sperrdatei für die Verwendung der URL der privaten Registrierung erneut zu generieren. Dependabot verwendet dieselbe URL beim Bereitstellen von Updates.

Wenn die Registrierung konfiguriert ist, kann auch npm login ausgeführt werden, um zu überprüfen, ob die Konfiguration korrekt und gültig ist. Die Sperrdatei kann durch erneutes Ausführen von npm install auch neu generiert werden, um die neue private Registrierung zu verwenden.

Es muss sichergestellt werden, dass die .npmrc-Datei in dasselbe Verzeichnis eingecheckt ist wie package.json des Projekts und dass die Datei keine Umgebungsvariablen oder Geheimnisse enthält. Wenn ein Monorepo verwendet wird, sollte die .npmrc-Datei im Stammverzeichnis des Projekts gespeichert sein.

Konfigurieren von Dependabot zum Senden von Registrierungsanforderungen über eine angegebene Basis-URL

Sie können Dependabot zum Senden von Registrierungsanforderungen über eine angegebene Basis-URL konfigurieren. Damit Dependabot auf eine öffentliche Abhängigkeit zugreifen kann, muss die Registrierung entweder über eine geklonte Kopie der Abhängigkeit mit der angeforderten Version verfügen, oder den Abruf aus einer öffentlichen Registrierung zulassen, wenn die Abhängigkeit nicht verfügbar ist.

Wenn in einer .npmrc-Datei keine globale Registrierung definiert ist, kannst replaces-base in der dependabot.yml-Datei auf true festgelegt werden. Weitere Informationen sind unter „replaces-base“ in „Konfigurationsoptionen für die Datei dependabot.yml“ zu finden.

Hinweise

Abhängigkeiten, die direkt aus einem GitHub-Repository stammen, gewähren Dependabot Zugriff auf das Repository über die Benutzeroberfläche von GitHub. Informationen zum Gewähren des Zugriffs auf private GitHub-Abhängigkeiten für Dependabot sind unter „Gewähren des Zugriffs auf private Abhängigkeiten für Dependabot“ zu finden.

Für bereichsbezogene Abhängigkeiten (@my-org/my-dep) erfordert Dependabot, dass die private Registrierung in der Datei .npmrc des Projekts definiert ist. Verwende @myscope:registry=https://private_registry_url, um private Registrierungen für einzelne Bereiche zu definieren.

Registrierungen sollten mit dem https-Protokoll konfiguriert werden.

Nuget

Unterstützt von Artifactory, Artifacts, Cloudsmith, GitHub Packages-Registrierung, Nexus und ProGet.

Vom Typ nuget-feed werden Benutzername und Kennwort oder Token unterstützt. Weitere Informationen findest du unter nuget-feed in Konfigurationsoptionen für die Datei dependabot.yml.

registries:
  nuget-example:
    type: nuget-feed
    url: https://nuget.example.com/v3/index.json
    username: octocat@example.com
    password: ${{secrets.MY_NUGET_PASSWORD}}
registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
    username: octocat@example.com
    password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}

Hinweise

In der dependabot.yml-Datei kann auch ein Token verwendet werden. Für diesen Registrierungstyp, der die GitHub Packages-Registrierung (xyz.pkg.github.com) verwendet, ist das Token tatsächlich ein GitHub personal access token (PAT) .

registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
    token: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}

pub

Die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei kann mit dem pub-repository-Typ definiert werden. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

registries:
  my-pub-registry:
    type: pub-repository
    url: https://example-private-pub-repo.dev/optional-path
    token: ${{secrets.MY_PUB_TOKEN}}
updates:
  - package-ecosystem: "pub"
    directory: "/"
    schedule:
      interval: "weekly"
    registries:
      - my-pub-registry

Hinweise

Abhängigkeiten, die direkt aus einem GitHub-Repository stammen, gewähren Dependabot Zugriff auf das Repository über die Benutzeroberfläche von GitHub. Informationen zum Gewähren des Zugriffs auf private GitHub-Abhängigkeiten für Dependabot sind unter „Gewähren des Zugriffs auf private Abhängigkeiten für Dependabot“ zu finden.

pub unterstützt die URL- und Tokenauthentifizierung. Die für die Registrierung verwendete URL sollte mit der von pub gehosteten URL übereinstimmen. Weitere Informationen finden Sie unter Spzeifikation für gehostetes pub-Repository Version 2 im github/dart-lang/pub-Repository.

Dependabot unterstützt keine Außerkraftsetzungen der Standardpaketregistrierung. Weitere Informationen zu Außerkraftsetzungen und den Gründen für ihre Implementierung durch manche Benutzer finden Sie unter Außerkraftsetzen des Standardpaketrepositorys in der Dart-Dokumentation.

Python

Unterstützt von Artifactory, Azure Artifacts, Cloudsmith, Nexus und ProGet. Die GitHub Packages-Registrierung wird nicht unterstützt.

Vom Typ python-index werden Benutzername und Kennwort oder Token unterstützt. Weitere Informationen findest du unter python-index in Konfigurationsoptionen für die Datei dependabot.yml.

registries:
  python-example:
    type: python-index
    url: https://example.com/_packaging/my-feed/pypi/example
    username: octocat
    password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
registries:
  python-azure:
    type: python-index
    url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
    username: octocat@example.com
    password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
registries:
  python-gemfury:
    type: python-index
    url: https://pypi.fury.io/my_org
    token: ${{secrets.MY_GEMFURY_TOKEN}}

Hinweise

Abhängigkeiten, die direkt aus einem GitHub-Repository stammen, gewähren Dependabot Zugriff auf das Repository über die Benutzeroberfläche von GitHub. Informationen zum Gewähren des Zugriffs auf private GitHub-Abhängigkeiten für Dependabot sind unter „Gewähren des Zugriffs auf private Abhängigkeiten für Dependabot“ zu finden.

url sollte die URL, die Organisation und den „Feed“ oder das Repository enthalten.

Yarn

Die Yarn-Registrierung verwendet eine ähnliche Konfiguration wie die der npm-Registrierung. Weitere Informationen sind unter „npm-registry“ in „Konfigurationsoptionen für die Datei dependabot.yml“ zu finden.

registries:
  yarn-github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
  • Bei privaten Registrierungen muss eine .yarnrc.yml-Datei (für Yarn 3) oder eine .yarnrc-Datei (für Yarn Classic) eingecheckt werden.
  • Die Yarn-Konfigurationsdateien dürfen keine Umgebungsvariablen enthalten.
  • Die in der dependabot.yml-Datei aufgeführten privaten Registrierungen sollten mit https konfiguriert werden.

Yarn Classic

Sie können entweder die Konfiguration der privaten Registrierung in der dependabot.yml-Datei angeben oder Yarn Classic entsprechend den standardmäßigen Paket-Manager-Anweisungen einrichten.

Definieren der Konfiguration der privaten Registrierung in der dependabot.yml-Datei

Die Konfiguration der privaten Registrierung kann in der dependabot.yml-Datei definiert werden. Weitere Informationen sind unter „Konfigurationsoptionen für private Registrierungen“ in „Konfigurationsoptionen für die Datei dependabot.yml“ zu finden.

Damit die private Registrierung als Abhängigkeitsquelle in der yarn.lock-Datei des Projekts aufgeführt wird, muss yarn install auf einem Computer mit Zugriff auf die private Registrierung ausgeführt werden. Yarn sollte das aufgelöste Feld aktualisieren, um die URL der privaten Registrierung einzufügen.

encoding@^0.1.11:
  version "0.1.13"
  resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
  integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
  dependencies:
    iconv-lite "^0.6.2"
Befolgen der Standardanweisungen des Paket-Managers

Wenn die private Registrierung in der yarn.lock-Datei nicht als Abhängigkeitsquelle aufgeführt ist, kann Yarn Classic entsprechend den standardmäßigen Paket-Manager-Anweisungen eingerichtet werden.

  1. Definieren Sie die Konfiguration der privaten Registrierung in der dependabot.yml-Datei.

  2. Anschließend können Sie eine der folgenden Aktionen ausführen:

    • Legen Sie die private Registrierung manuell auf die .yarnrc-Datei fest, indem Sie die Registrierung zu einer .yarnrc.yml-Datei im Projektstamm mit der Schlüsselregistrierung hinzufügen, oder
    • Führen Sie dieselbe Aktion aus, indem Sie yarn config set registry <private registry URL> in Ihrem Terminal ausführen.

    Beispiel für .yarnrc mit definierter privater Registrierung: registry https://nexus.example.com/repository/yarn-all

Yarn Berry (v3)

Informationen zur Konfiguration sind in der Yarn-Dokumentation unter Einstellungen (.yarnrc.yml) zu finden.

Wie bei Yarn Classic können Sie entweder die Konfiguration der privaten Registrierung in der dependabot.yml-Datei angeben oder Yarn Berry entsprechend den Paket-Manager-Anweisungen einrichten.

Definieren der Konfiguration der privaten Registrierung in der dependabot.yml-Datei

Die Konfiguration der privaten Registrierung kann in der dependabot.yml-Datei definiert werden. Weitere Informationen sind unter „Konfigurationsoptionen für private Registrierungen“ in „Konfigurationsoptionen für die Datei dependabot.yml“ zu finden.

Damit die private Registrierung als Abhängigkeitsquelle in der Datei yarn.lock des Projekts aufgeführt wird, führe yarn install auf einem Computer mit Zugriff auf die private Registrierung aus. Yarn sollte das aufgelöste Feld aktualisieren, um die URL der privaten Registrierung einzufügen.

encoding@^0.1.11:
  version "0.1.13"
  resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
  integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
  dependencies:
    iconv-lite "^0.6.2"

Private Registrierungen können auch mit npmAuthIdent oder npmAuthToken konfiguriert werden. Weitere Informationen sind unter „npmAuthIdent“ und „npmAuthToken“ in der Yarn-Dokumentation zu finden.

yarn config set registry <url>

Sie können die Konfiguration so einschränken, dass sie nur für eine einzelne Abhängigkeit oder Organisation gilt.

yarn config set @<SCOPE>:registry <url>

Zum Abschluss wird empfohlen, yarn login auszuführen, um zu überprüfen, ob die Konfiguration korrekt und gültig ist. Die Sperrdatei kann durch erneutes Ausführen von yarn install auch neu generiert werden, um die neue private Registrierung zu verwenden.

Befolgen der Standardanweisungen des Paket-Managers

Wenn die private Registrierung in der yarn.lock-Datei nicht als Abhängigkeitsquelle aufgeführt ist, kann Yarn Berry entsprechend den standardmäßigen Paket-Manager-Anweisungen eingerichtet werden.

  1. Definieren Sie die Konfiguration der privaten Registrierung in der dependabot.yml-Datei.

  2. Anschließend können Sie eine der folgenden Aktionen ausführen:

    • Legen Sie die private Registrierung manuell auf die .yarnrc-Datei fest, indem Sie die Registrierung zu einer .yarnrc.yml-Datei im Projektstamm mit dem Schlüssel npmRegistryServer hinzufügen, oder
    • Führen Sie dieselbe Aktion aus, indem Sie yarn config set npmRegistryServer <private registry URL> in Ihrem Terminal ausführen.

    Beispiel für eine.yarnrc.yml -Datei mit konfigurierter privater Registrierung: npmRegistryServer: "https://nexus.example.com/repository/yarn-all"

    Weitere Informationen sind unter npmRegistryServer in der Yarn-Dokumentation zu finden.

Hinweise

Abhängigkeiten, die direkt aus einem GitHub-Repository stammen, gewähren Dependabot Zugriff auf das Repository über die Benutzeroberfläche von GitHub. Informationen zum Gewähren des Zugriffs auf private GitHub-Abhängigkeiten für Dependabot sind unter „Gewähren des Zugriffs auf private Abhängigkeiten für Dependabot“ zu finden.

Für bereichsbezogene Abhängigkeiten (@my-org/my-dep) erfordert Dependabot, dass die private Registrierung in .yarnrc file des Projekts definiert ist. Verwende @myscope:registry" "https://private_registry_url", um private Registrierungen für einzelne Bereiche zu definieren.

Konfigurieren privater Registrierungshosts

Artifactory

Informationen zur Konfiguration von Artifactory sind unter Konfiguration von Artifactory in der JFrog-Artifactory-Dokumentation zu finden.

Remoterepositorys

Remoterepositorys dienen als Cache für Buildartefakte und Abhängigkeiten. Statt ein globales Abhängigkeits-Repository heranzuziehen, kann Ihr Buildtool den Artefactory-Cache verwenden, was die Erstellungszeiten beschleunigt. Weitere Informationen sind unter Remoterepositorys in der JFrog-Artifactory-Dokumentation zu finden.

Wenn Sie die Einstellung replace-base verwenden, sollten Sie auch eine Remoterepository für Artifactory konfigurieren, wenn Dependabot auf eine andere Registrierung zugreifen soll, wenn die Abhängigkeit in der privaten Registrierung nicht gefunden wird.

Virtuelle Registrierung

Anhand einer virtuellen Registrierung können alle privaten und öffentlichen Abhängigkeiten unter einer einzigen Domäne gruppiert werden. Weitere Informationen sind unter npm-Registrierung in der JFrog-Artifactory-Dokumentation zu finden.

Azure Artifacts

Informationen zu Azure Artifacts und Anweisungen zum Konfigurieren von Dependabot für die Arbeit mit Azure Artifacts sind unter Azure DevOps der Azure Artifacts-Dokumentation bzw. unter Verwendung von Dependabot in GitHub mit Azure Artifacts zu finden.

Beispiel für die Registrierung von Azure Artifacts:

registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/my_org/_packaging/public/nuget/v3/index.json
    token: ${{secrets.AZURE_DEVOPS_TOKEN}}

Das Kennwort für Azure Artifacts muss ein nicht codiertes Token sein und sollte : nach dem Token enthalten. Darüber hinaus kann das Kennwort nicht base64-codiert sein.

Sie können überprüfen, ob der Zugriff auf die private Registrierung erfolgreich war, indem Sie sich die Dependabot-Protokolle ansehen.

Cloudsmith

Informationen über Cloudsmith und Anweisungen zur Konfiguration von Dependabot für die Zusammenarbeit mit Cloudsmith finden Sie unter Erste Schritte mit Cloudsmith und GitHub Dependabot mit Cloudsmith integrieren in der Cloudsmith-Dokumentation.

GitHub Packages-Registrierung

Weitere Informationen zu GitHub Packages-Registrierungen sind unter „Arbeiten mit einer GitHub Packages-Registrierung“ zu finden. Von diesem Artikel aus können Sie auf Seiten zugreifen, die beschreiben, wie die folgenden Registrierungen zu konfigurieren sind.

  • Bundler (rubygems)
  • Docker (Container)
  • GitHub Actions
  • Gradle
  • Maven
  • Npm
  • NuGet
  • Yarn
registries:
  github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{ secrets.<token> }}

Hinweise

Es gibt keine Python-Containerregistrierung.

Für private Registrierungen, die auf eine bestimmte Organisation beschränkt sind, erwartet Dependabot, dass die URL den Namen der Organisation in die dependabot.yml-Datei aufnimmt.

Nexus

Informationen zur Konfiguration von Nexus sind unter Repository Manager 3 in der Sonatype-Dokumentation zu finden.

Hinweise

Mit Nexus Repository Pro können Benutzertokens aktiviert werden. Weitere Informationen sind unter Benutzertokens in der Sonatype-Dokumentation zu finden.

Beispiel für eine Nexus-Registrierung:

registries:
  npm-nexus:
    type: npm-registry
    url: https://registry.example.com/repository/npm-internal/
    token: ${{secrets.NEXUS_NPM_TOKEN}}

Wenn Nexus hinter einem Reverseproxy ausgeführt wird, muss anhand von curl -v -H 'Authorization: Bearer <token>' 'https://<nexus-repo-url>/repository/<repo-name>/@<scope>%2<package>' sichergestellt werden, dass mithilfe eines Authentifizierungstokens auf den Server zugegriffen werden kann. Weitere Informationen sind unter Ausführung hinter einem Reverseproxy in der Sonatype-Dokumentation zu finden.

Wenn Sie einschränken, welche IPs Ihren Nexus-Host erreichen können, müssen Sie die Dependabot-IPs zur Positivliste hinzufügen.

  • Die IP-Adressen, die von Dependabot zum Zugreifen auf die Registrierung im Meta-API-Endpunkt verwendet werden, sind unter dem dependabot-Schlüssel zu finden. Weitere Informationen findest du unter REST-API-Endpunkte für Metadaten.
  • Dies sind die aktuellen IPs:

Registrierungen können eine öffentliche Registrierung per Proxy erreichen, falls eine Abhängigkeit in der privaten Registrierung nicht verfügbar ist. Dependabot sollte jedoch ausschließlich auf die private Registrierung zugreifen und keinesfalls auf die öffentliche Registrierung. Weitere Informationen finden Sie im „Schnellstarthandbuch – Proxying Maven und NPM“ in der Sonatype-Dokumentation und unter „Entfernen des Dependabot-Zugriffs auf öffentliche Registrierungen“.

ProGet

Informationen über ProGet und Anweisungen zur Konfiguration von Dependabot für die Arbeit mit Feeds in ProGet finden Sie in der ProGet-Dokumentation.

Beispiel für die ProGet-Registrierungskonfiguration für einen NuGet-Feed:

registries:
  proget-nuget-feed:
    type: nuget-feed
    url: https://proget.corp.local/nuget/MyNuGetFeed/v3/index.json
    token: ${{secrets.PROGET_APK_KEY}}

Beispiel für die ProGet-Registrierungskonfiguration für Bundler (Rubygems):

registries:
  proget-gems-feed:
    type: rubygems-server
    url: https://proget.corp.local/rubygems/MyRubygemsFeed
    token: ${{secrets.PROGET_APK_KEY}}

Beispiel für die ProGet-Registrierungskonfiguration für Python (PyPI):

registries:
  proget-python-feed:
    type: python-index
    url: https://proget.corp.local/pypi/MyPythonFeed
    token: ${{secrets.PROGET_APK_KEY}}

Hinweise

token sollte ein API-Schlüssel sein, mit dem Sie Pakete anzeigen können. Weitere Informationen finden Sie in der ProGet-Dokumentation unter API-Zugriff und API-Schlüssel.

Sie können überprüfen, ob der Zugriff auf die private Registrierung erfolgreich war, indem Sie sich die Dependabot-Protokolle ansehen.