Skip to main content

Suppression de l’accès Dependabot aux registres publics

Exemples de configuration de Dependabot pour accéder uniquement aux registres privés en supprimant les appels aux registres publics.

Qui peut utiliser cette fonctionnalité ?

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

À propos de la configuration de Dependabot pour accéder uniquement aux registres privés

Dependabot peut accéder aux registres publics par défaut, et vous pouvez configurer Dependabot pour accéder également aux registres privés. Pour plus d’informations sur la prise en charge et la configuration des registres privés, consultez « Configuration de l’accès aux registres privés pour Dependabot ». Pour des informations détaillées sur les options disponibles, ainsi que des recommandations et des conseils sur la configuration des registres privés, consultez « Aide pour la configuration des registres privés pour Dependabot ».

Vous pouvez configurer Dependabot pour accéder uniquement aux registres privés en supprimant les appels aux registres publics. Ce paramétrage n’est possible que pour les écosystèmes indiqués dans cet article.

Bundler

Pour configurer l’écosystème Bundler de façon à accéder uniquement aux registres privés, vous pouvez définir replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Dans l’écosystème Bundler, il est également nécessaire qu’un fichier Gemfile comportant l’URL du registre privé soit archivé dans le référentiel.

# Example Gemfile

 source "https://private_registry_url"

Docker

Pour configurer l’écosystème Docker de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Option 1 :

Définissez la configuration du registre privé dans un fichier dependabot.yml sans replaces-base. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : Supprimez replaces-base: true du fichier de configuration.

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

Dans le fichier Dockerfile, ajoutez le nom de l’image au format IMAGE[:TAG], où IMAGE se compose de votre nom d’utilisateur et du nom du référentiel.

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

Option 2 :

Définissez replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ». Le registre configuré avec replaces-base peut être utilisé comme un miroir ou un cache d’extraction. Pour plus d’informations, consultez Registre utilisé comme cache d’extraction dans la documentation Docker.

Gradle

Pour configurer l’écosystème Gradle de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Définissez la configuration du registre privé dans un fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : Supprimez replaces-base: true du fichier de configuration.

Vous devez également spécifier l’URL du registre privé dans la section repositories du fichier build.gradle.

# Example build.gradle file

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

Maven

Pour configurer l’écosystème Maven de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Option 1 :

Définissez replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Option 2 :

Utilisez uniquement l’URL du registre privé dans le fichier pom.xml.

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

Nœud

npm

Pour configurer l’écosystème npm de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Option 1 :

Définissez la configuration du registre privé dans un fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : Supprimez replaces-base: true du fichier de configuration.

Dans l’écosystème npm, il est également nécessaire qu’un fichier .npmrc comportant l’URL du registre privé soit archivé dans le référentiel.

 registry=https://private_registry_url

Option 2 :

Si aucun registre global n’est spécifié dans un fichier .npmrc, vous pouvez définir replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : dans le cas des dépendances délimitées (@my-org/my-dep), il est nécessaire pour Dependabot que le registre privé soit défini dans le fichier .npmrc du projet. Pour définir des registres privés avec des étendues individuelles, utilisez @myscope:registry=https://private_registry_url.

Yarn

Les registres privés Yarn Classic et Yarn Berry sont tous deux pris en charge par Dependabot, mais Dependabot a besoin d’une configuration propre à chaque écosystème pour accéder uniquement aux registres privés.

Yarn Classic

Pour configurer l’écosystème Yarn Classic de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Option 1 :

Définissez la configuration du registre privé dans un fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : supprimez replaces-base: true du fichier de configuration.

Pour que le registre privé figure bien parmi les sources de dépendance dans le fichier yarn.lock du projet, exécutez yarn install sur une machine disposant d’un accès au registre privé. Yarn met alors à jour le champ resolved de façon à inclure l’URL du registre privé.

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 :

Si le fichier yarn.lock ne comprend pas le registre privé comme source de dépendance, vous pouvez configurer Yarn Classic suivant les instructions normales du gestionnaire de package :

  1. Définissez la configuration du registre privé dans un fichier dependabot.yml.

  2. Ajoutez le registre à un fichier .yarnrc à la racine du projet avec le registre de clés. Autre possibilité : exécutez yarn config set registry <private registry URL>.

    registry https://private_registry_url
    

Option 3

Si aucun registre global n’est spécifié dans un fichier .yarnrc, vous pouvez définir replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : dans le cas des dépendances délimitées (@my-org/my-dep), il est nécessaire pour Dependabot que le registre privé soit défini dans le fichier .npmrc du projet. Pour définir des registres privés avec des étendues individuelles, utilisez @myscope:registry=https://private_registry_url.

Yarn Berry

Pour configurer l’écosystème Yarn Berry de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Option 1 :

Définissez la configuration du registre privé dans un fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : supprimez replaces-base: true du fichier de configuration.

Pour que le registre privé figure bien parmi les sources de dépendance dans le fichier yarn.lock du projet, exécutez yarn install sur une machine disposant d’un accès au registre privé. Yarn met alors à jour le champ resolved de façon à inclure l’URL du registre privé.

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 :

Si le fichier yarn.lock ne comprend pas le registre privé comme source de dépendance, vous pouvez configurer Yarn Berry suivant les instructions normales du gestionnaire de package :

  1. Définissez la configuration du registre privé dans un fichier dependabot.yml.
  2. Ajoutez le registre à un fichier .yarnrc.yml à la racine du projet avec la clé npmRegistryServer. Autre possibilité : exécutez yarn config set npmRegistryServer <private registry URL>. npmRegistryServer: "https://private_registry_url"

Remarque : dans le cas des dépendances délimitées (@my-org/my-dep), il est nécessaire pour Dependabot que le registre privé soit défini dans le fichier .yarnrc du projet. Pour définir des registres privés avec des étendues individuelles, utilisez "@myscope:registry" "https://private_registry_url".

NuGet

Pour autoriser l’écosystème Nuget à accéder uniquement aux registres privés, vous pouvez configurer le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Dans l’écosystème Nuget, il est également nécessaire qu’un fichier nuget.config soit archivé dans le référentiel, avec une balise < clear /> dans la section <packageSources> ou une clé nuget.org de valeur true dans la section disabledPackageSources du fichier nuget.config.

Voici un exemple de balise < clear /> dans la section packageSources du fichier 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>

Voici un exemple d’ajout de la clé nuget.org avec la valeur true dans la section disabledPackageSources du fichier 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>

Pour configurer Dependabot afin d’accéder aux flux privés et publics, consultez l’exemple dependabot.yml suivant qui inclut le flux public configuré sous registries :

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 et Poetry sont les quatre gestionnaires de package actuellement pris en charge par l’écosystème Python.

Pip

Pour configurer l’écosystème Pip de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Option 1 :

Définissez la configuration du registre privé dans un fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : supprimez replaces-base: true du fichier de configuration.

Ajoutez l’URL du registre privé à la section [global] du fichier pip.conf et archivez le fichier dans le référentiel.

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

Option 2 :

Définissez replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Pip-compile

Pour configurer l’écosystème Pip-compile de façon à accéder uniquement aux registres privés, vous pouvez utiliser les méthodes de configuration suivantes.

Option 1 :

Définissez replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Option 2 :

Définissez la configuration du registre privé dans un fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : supprimez replaces-base: true du fichier de configuration.

Ajoutez l’URL du registre privé au fichier requirements.txt et archivez le fichier dans le référentiel.

--index-url https://private_registry_url

Pipenv

Pour configurer Pipenv de façon à accéder uniquement aux registres privés, supprimez replaces-base du fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Remarque : supprimez replaces-base: true du fichier de configuration.

Ajoutez l’URL du registre privé à la section [[source]] du fichier Pipfile et archivez le fichier dans le référentiel.

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

Poetry

Pour configurer Poetry de façon à accéder uniquement aux registres privés, définissez replaces-base comme true dans le fichier dependabot.yml. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».

Ajoutez l’URL du registre privé à la section [[tool.poetry.source]] du fichier pyproject.toml et archivez le fichier dans le référentiel.

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