Skip to main content

Entfernen des Dependabot-Zugriffs auf öffentliche Registrierungen

Beispiele zur Konfiguration von Dependabot für den ausschließlichen Zugriff auf private Registrierungen, indem Aufrufe öffentlicher Registrierungen entfernt werden.

Wer kann dieses Feature verwenden?

People with write permissions to a repository can configure Dependabot for the repository.

Informationen zum Konfigurieren von Dependabot nur für den Zugriff auf private Registrierungen

Dependabot kann standardmäßig auf öffentliche Registrierungen zugreifen, und du kannst Dependabot für den Zugriff auf private Registrierungen konfigurieren. Weitere Informationen zur Unterstützung privater Registrierungen und zur Konfiguration findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot. Ausführliche Informationen zu verfügbaren Optionen sowie Empfehlungen und Ratschläge beim Konfigurieren privater Registrierungen sind unter Leitfaden zum Konfigurieren privater Registrierungen für Dependabot zu finden.

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.

Du kannst Dependabot so konfigurieren, dass nur auf private Registrierungen zugegriffen wird, indem du Aufrufe von öffentlichen Registrierungen entfernst. Diese Konfiguration kann nur für die im vorliegenden Artikel aufgeführten Ökosysteme vorgenommen werden.

Bundler

Um das Bundler-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du replaces-base in der Datei dependabot.yml auf true festlegen. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Für das Bundler-Ökosystem muss zusätzlich eine Gemfile-Datei mit der URL der privaten Registrierung in das Repository eingecheckt werden.

# Example Gemfile

 source "https://private_registry_url"

Docker

Um das Docker-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Option 1:

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei ohne replaces-base. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Entfernen Sie replaces-base: true aus der Konfigurationsdatei.

version: 2
registries:
  azuretestregistry: # Define access for a private registry
    type: docker-registry
    url: firewallregistrydep.azurecr.io
    username: firewallregistrydep
    password: ${{ secrets.AZUREHUB_PASSWORD }}

Füge in der Datei Dockerfile den Imagenamen im Format IMAGE[:TAG] hinzu, wobei IMAGE aus deinem Benutzernamen und dem Namen des Repositorys besteht.

 FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04

Option 2:

Lege replaces-base in der Datei dependabot.yml auf true fest. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml. Die mit replaces-base konfigurierte Registrierung kann als Spiegel oder als Pull-Through-Cache verwendet werden. Weitere Informationen findest du unter Registrierung als Pull-Through-Cache in der Docker-Dokumentation.

Gradle

Um das Gradle-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Entfernen Sie „replaces-base: true“ aus der Konfigurationsdatei.

Außerdem musst du die URL der privaten Registry im Abschnitt repositories der Datei build.gradle angeben.

# Example build.gradle file

repositories {
    maven {
        url "https://private_registry_url"
    }
}

Maven

Um das Maven-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Option 1:

Lege replaces-base in der Datei dependabot.yml auf true fest. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Option 2:

Verwende nur die URL der privaten Registrierung in der Datei pom.xml.

<project>
...
 <repositories>
  <repository>
    <id>central</id>
    <name>your custom repo</name>
    <url>https://private_registry_url</url>
 </repository>
...
</project>

Knoten

npm

Um das npm-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Option 1:

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Entfernen Sie replaces-base: true aus der Konfigurationsdatei.

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

 registry=https://private_registry_url

Option 2:

Wenn in einer .npmrc-Datei keine globale Registrierung definiert ist, kannst du replaces-base in der Datei dependabot.yml auf true festlegen. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

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

Yarn

Die privaten Registrierungen von Yarn Classic und Yarn Berry werden von Dependabot unterstützt, allerdings erfordert Dependabot für jedes der beiden Ökosystem eine andere Konfiguration, um nur auf private Registrierungen zuzugreifen.

Yarn Classic

Um das Yarn Classic-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Option 1:

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Lösche replaces-base: true aus der Konfigurationsdatei.

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 Feld resolved 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"

Option 2:

Wenn die private Registrierung in der Datei yarn.lock nicht als Abhängigkeitsquelle aufgeführt ist, kannst du Yarn Classic gemäß den normalen Anweisungen des Paket-Managers einrichten:

  1. Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei.

  2. Füge die Registrierung in eine .yarnrc-Datei im Projektstammverzeichnis mit der Schlüsselregistrierung ein. Alternativ kannst du yarn config set registry <private registry URL> ausführen.

    registry https://private_registry_url
    

Option 3

Wenn in einer .yarnrc-Datei keine globale Registrierung definiert ist, kannst du replaces-base in der Datei dependabot.yml auf true festlegen. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

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

Yarn Berry

Um das Yarn Berry-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Option 1:

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Lösche replaces-base: true aus der Konfigurationsdatei.

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 Feld resolved 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"

Option 2:

Wenn die private Registrierung in der Datei yarn.lock nicht als Abhängigkeitsquelle aufgeführt ist, kannst du Yarn Berry gemäß den normalen Anweisungen des Paket-Managers einrichten:

  1. Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei.
  2. Füge die Registrierung in eine .yarnrc.yml-Datei im Projektstamm mit dem Schlüssel npmRegistryServer ein. Alternativ kannst du yarn config set npmRegistryServer <private registry URL> ausführen. npmRegistryServer: "https://private_registry_url"

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

Nuget

Damit das Nuget-Ökosystem nur auf private Registrierungen zugreifen kann, kannst du die Datei dependabot.yml konfigurieren. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Für das NuGet-Ökosystem muss zusätzlich eine Datei nuget.config in das Repository eingecheckt wird. Dabei muss entweder ein < clear />-Tag im Abschnitt <packageSources> oder ein nuget.org-Schlüssel im Abschnitt disabledPackageSources der Datei nuget.config auf „true“ festgelegt werden.

Hier siehst du ein Beispiel für ein < clear />-Tag im Abschnitt packageSources von nuget.config.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <packageSources>
   < clear />
   <add key="example-nuget" value="https://private_registry_url/nuget/example-nuget/index.json" />
 </packageSources>
</configuration>

Hier ein Beispiel für das Hinzufügen eines auf „true“ festgelegten Schlüssels nuget.org zum Abschnitt disabledPackageSources der Datei nuget.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="example-nuget" value="https://private_registry_url/nuget/example-nuget/index.json" />
  </packageSources>
  <disabledPackageSources>
    <add key="nuget.org" value="true" />
  </disabledPackageSources>
</configuration>

Um Dependabot für den Zugriff auf private und öffentliche Feeds zu konfigurieren, sieh dir das folgende dependabot.yml-Beispiel an, das den konfigurierten public-Feed unter registries enthält:

version: 2
registries:
  nuget-example:
    type: nuget-feed
    url: https://nuget.example.com/v3/index.json
    username: $
    password: $
  public:
    type: nuget-feed
    url: https://api.nuget.org/v3/index.json
updates:
  - package-ecosystem: nuget
    directory: "/"
    registries: "*"
    schedule:
      interval: daily

Python

Pip, Pip-compile, Pipenv und Poetry sind die vier Paketmanager, die das Python-Ökosystem derzeit unterstützt.

pip

Um das Pip-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Option 1:

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Lösche replaces-base: true aus der Konfigurationsdatei.

Füge die URL der privaten Registrierung zum Abschnitt [global] der Datei pip.conf hinzu, und checke die Datei in das Repository ein.

[global]
timeout = 60
index-url = https://private_registry_url

Option 2:

Lege replaces-base in der Datei dependabot.yml auf true fest. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Pip-compile

Um das Pip-compile-Ökosystem so zu konfigurieren, dass es nur auf private Registrierungen zugreift, kannst du die folgenden Konfigurationsmethoden verwenden.

Option 1:

Lege replaces-base in der Datei dependabot.yml auf true fest. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Option 2:

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Lösche replaces-base: true aus der Konfigurationsdatei.

Füge die URL der privaten Registrierung zur Datei requirements.txt hinzu, und checke die Datei in das Repository ein.

--index-url https://private_registry_url

Pipenv

Um Pipenv so zu konfigurieren, dass nur auf private Registrierungen zugegriffen wird, entferne replaces-base aus der Datei dependabot.yml. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Hinweis: Lösche replaces-base: true aus der Konfigurationsdatei.

Füge die URL der privaten Registrierung zum Abschnitt [[source]] der Datei Pipfile hinzu, und checke die Datei in das Repository ein.

[[source]]
url = "https://private_registry_url"
verify_ssl = true
name = "pypi"

Poetry

Um Poetry so zu konfigurieren, dass nur auf private Registrierungen zugegriffen wird, lege replaces-base in der Datei dependabot.yml auf true fest. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Füge die URL der privaten Registrierung zum Abschnitt [[tool.poetry.source]] der Datei pyproject.toml hinzu, und checke die Datei in das Repository ein.

[[tool.poetry.source]]
name = "private"
url = "https://private_registry_url"
default = true