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 dieCOPY
-Anweisung verfügbar. Weitere Informationen finden Sie unter „Dependabot ignoriert Imageverweise in COPY Dockerfile-Anweisung“ imdependabot/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-host
verwendet 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 mithttps
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.
-
Definieren Sie die Konfiguration der privaten Registrierung in der
dependabot.yml
-Datei. -
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
- Legen Sie die private Registrierung manuell auf die
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.
-
Definieren Sie die Konfiguration der privaten Registrierung in der
dependabot.yml
-Datei. -
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üsselnpmRegistryServer
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.
- Legen Sie die private Registrierung manuell auf die
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:
- „18.213.123.130/32“
- „3.217.79.163/32“
- „3.217.93.44/32“ Weitere Informationen sind unter Sichern des Nexus Repository Managers in der Sonatype-Dokumentation zu finden.
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.