Skip to main content

Entfernen des Dependabot-Zugriffs auf öffentliche Registrierungen

Beispiele dafür, wie Sie so konfigurieren Dependabot können, dass nur auf private Registrierungen zugegriffen werden kann, indem Sie Anrufe an öffentliche Register entfernen.

Wer kann dieses Feature verwenden?

Benutzer*innen mit Schreibzugriff

Informationen zum Konfigurieren von Dependabot, sodass nur auf private Registries zugegriffen wird

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 und Konfiguration der privaten Registrierung finden Sie unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot. Ausführliche Informationen zu verfügbaren Optionen sowie Empfehlungen und Ratschläge zum Konfigurieren privater Registrierungen findest du unter Leitfaden zum Konfigurieren privater Registrierungen für Dependabot.

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 Dependabot auf GitHub Actions-Runnern und Konfigurieren von Dependabot für selbst gehostete Läufer.

Sie können so konfigurieren Dependabot , dass nur auf private Register zugegriffen wird, indem Sie Anrufe an öffentliche Register entfernen. 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, können Sie replaces-base: true in der dependabot.yml-Datei festlegen. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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

YAML
# 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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

Hinweis

Entfernen Sie replaces-base: true aus der Konfigurationsdatei.

YAML
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.

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

Option 2:

Legen Sie replaces-base: true in der Datei dependabot.yml fest. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot. 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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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

Legen Sie replaces-base: true in der Datei dependabot.yml fest. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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>

Node

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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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.

YAML
 registry=https://private_registry_url

Option 2:

Wenn in einer .npmrc-Datei keine globale Registrierung definiert ist, können Sie replaces-base: true in der dependabot.yml-Datei festlegen. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

Hinweis

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

Garn

Yarn Classic und Yarn Berry private Registrys werden beide von Dependabot unterstützt, aber Dependabot erfordert für jedes Ökosystem eine andere Konfiguration, um ausschließlich auf private Registrys 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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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.

YAML
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.

    YAML
    registry https://private_registry_url
    

Option 3

Falls in einer .yarnrc -Datei keine globale Registrierung definiert ist, können Sie replaces-base: true in der dependabot.yml-Datei festlegen. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

Hinweis

Für bereichsbezogene Abhängigkeiten (@my-org/my-dep) Dependabot muss die private Registrierung in der Datei des .npmrc Projekts definiert werden. 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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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.

YAML
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 bereichsspezifische Abhängigkeiten (@my-org/my-dep) setzt Dependabot voraus, dass die private Registry in der Datei .yarnrc 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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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

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, sehen Sie sich das folgende dependabot.yml Beispiel an, das den konfigurierten public-Feed unter registries enthält:

YAML
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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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.

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

Option 2:

Legen Sie replaces-base: true in der Datei dependabot.yml fest. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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

Legen Sie replaces-base: true in der Datei dependabot.yml fest. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

Option 2:

Definiere die Konfiguration der privaten Registrierung in einer dependabot.yml-Datei. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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.

YAML
--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 Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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.

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

Poesie

Um Poetry so zu konfigurieren, dass nur auf private Registrierungen zugegriffen wird, legen Sie replaces-base: true in der dependabot.yml-Datei fest. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

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.

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