Acerca de la configuración de Dependabot para acceder solo a registros privados
Dependabot puede acceder a los registros públicos de forma predeterminada, pero puedes configurar Dependabot para que acceda a los privados también. Para obtener más información sobre la compatibilidad con el registro privado y su configuración, consulta Configuración del acceso a registros privados para Dependabot. Para obtener información detallada sobre las opciones disponibles, así como recomendaciones y consejos al configurar registros privados, consulta Guía para la configuración de registros privados para Dependabot.
Puedes configurar Dependabot para que acceda solo a registros privados mediante la eliminación de llamadas a registros públicos. Esta configuración solo se puede realizar para los ecosistemas enumerados en este artículo.
Note
Antes de quitar el acceso a los registros públicos de la configuración de las Dependabot updates, comprueba que el administrador del sitio haya configurado los ejecutores de Dependabot con acceso a los registros privados que necesitas. Para más información, consulta Configuración de Dependabot para funcionar con un acceso limitado a Internet.
Bundler
Para configurar el ecosistema de Bundler para que solo tenga acceso a registros privados, puede establecer replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Además, el ecosistema Bundler requiere que se registre en el repositorio un archivo Gemfile con la dirección URL del registro privado.
# Example Gemfile source "https://private_registry_url"
# Example Gemfile
source "https://private_registry_url"
Docker
Para configurar el ecosistema de Docker para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Opción 1
Define la configuración del registro privado en un archivo dependabot.yml sin replaces-base. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Quite replaces-base: true del archivo de configuración.
version: 2
registries:
azuretestregistry: # Define access for a private registry
type: docker-registry
url: firewallregistrydep.azurecr.io
username: firewallregistrydep
password: ${{ secrets.AZUREHUB_PASSWORD }}
version: 2
registries:
azuretestregistry: # Define access for a private registry
type: docker-registry
url: firewallregistrydep.azurecr.io
username: firewallregistrydep
password: ${{ secrets.AZUREHUB_PASSWORD }}
En el archivo Dockerfile, agrega el nombre de la imagen en el formato de IMAGE[:TAG], donde IMAGE consta de tu nombre de usuario y el nombre del repositorio.
FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04
FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04
Opción 2
Establece replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot. El registro configurado con replaces-base se puede usar como reflejo o una extracción mediante la memoria caché. Para más información, consulta Registro como una extracción mediante la memoria caché en la documentación de Docker.
Gradle
Para configurar el ecosistema Gradle para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Define la configuración del registro privado en un archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Quita replaces-base: true del archivo de configuración.
Además, también debes especificar la dirección URL del registro privado en la sección repositories del archivo build.gradle.
# Example build.gradle file
repositories {
maven {
url "https://private_registry_url"
}
}
Maven
Para configurar el ecosistema Maven para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Opción 1
Establece replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Opción 2
Usa solo la dirección URL del registro privado en el archivo pom.xml.
<project>
...
<repositories>
<repository>
<id>central</id>
<name>your custom repo</name>
<url>https://private_registry_url</url>
</repository>
...
</project>
Nodo
npm
Para configurar el ecosistema npm para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Opción 1
Define la configuración del registro privado en un archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Quite replaces-base: true del archivo de configuración.
Además, el ecosistema npm requiere que se registre en el repositorio un archivo .npmrc con la dirección URL del registro privado.
registry=https://private_registry_url
registry=https://private_registry_url
Opción 2
Si no hay ningún registro global definido en un archivo .npmrc, puede establecer replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
En el caso de las dependencias con ámbito (@my-org/my-dep), Dependabot requiere que el registro privado se defina en el archivo .npmrc del proyecto. Para definir registros privados para ámbitos individuales, usa @myscope:registry=https://private_registry_url.
Yarn
Los registros privados de Yarn Classic y Yarn Berry son compatibles con Dependabot, pero Dependabot requiere una configuración diferente para que cada ecosistema acceda solo a registros privados.
Yarn Classic
Para configurar el ecosistema Yarn Classic para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Opción 1
Define la configuración del registro privado en un archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Elimina replaces-base: true del archivo de configuración.
Para asegurarte de que el registro privado aparece como origen de dependencia en el archivo yarn.lock del proyecto, ejecuta yarn install en una máquina con acceso privado al registro. Yarn debe actualizar el campo resolved para incluir la dirección URL del registro privado.
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"
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"
Opción 2
Si el archivo yarn.lock no muestra el registro privado como origen de dependencia, puedes configurar Yarn Classic según las instrucciones normales del administrador de paquetes:
-
Definición de la configuración del registro privado en un archivo
dependabot.yml -
Agrega el registro a un archivo
.yarnrcen la raíz del proyecto con el registro de claves. También puedes ejecutaryarn config set registry <private registry URL>.YAML registry https://private_registry_url
registry https://private_registry_url
Opción 3
Si no hay ningún registro global definido en un archivo .yarnrc, puede establecer replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
En el caso de las dependencias con ámbito (@my-org/my-dep), Dependabot requiere que el registro privado se defina en el archivo .npmrc del proyecto. Para definir registros privados para ámbitos individuales, usa @myscope:registry=https://private_registry_url.
Yarn Berry
Para configurar el ecosistema Yarn Berry para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Opción 1
Define la configuración del registro privado en un archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Elimina replaces-base: true del archivo de configuración.
Para asegurarte de que el registro privado aparece como origen de dependencia en el archivo yarn.lock del proyecto, ejecuta yarn install en una máquina con acceso privado al registro. Yarn debe actualizar el campo resolved para incluir la dirección URL del registro privado.
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"
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"
Opción 2
Si el archivo yarn.lock no muestra el registro privado como origen de dependencia, puedes configurar Yarn Berry según las instrucciones normales del administrador de paquetes:
- Definición de la configuración del registro privado en un archivo
dependabot.yml - Agrega el registro a un archivo
.yarnrc.ymlen la raíz del proyecto con la clavenpmRegistryServer. También puedes ejecutaryarn config set npmRegistryServer <private registry URL>.npmRegistryServer: "https://private_registry_url"
Note
En el caso de las dependencias con ámbito (@my-org/my-dep), Dependabot requiere que el registro privado se defina en el archivo .yarnrc del proyecto. Para definir registros privados para ámbitos individuales, usa "@myscope:registry" "https://private_registry_url".
NuGet
Para permitir que el ecosistema NuGet solo acceda a registros privados, puedes configurar el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Además, el ecosistema NuGet requiere que se registre en el repositorio un archivo nuget.config, con una etiqueta < clear /> en la sección <packageSources> o una clave nuget.org como true en la sección disabledPackageSources del archivo nuget.config.
Este es un ejemplo de una etiqueta < clear /> en la sección packageSources de 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>
Este es un ejemplo de cómo agregar la clave nuget.org como true a la sección disabledPackageSources de 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>
Para configurar Dependabot para acceder a fuentes públicas y privadas, consulta el ejemplo siguiente dependabot.yml que incluye la fuente public configurada en 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
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 y Poetry son los cuatro administradores de paquetes que admite actualmente el ecosistema Python.
Pip
Para configurar el ecosistema Pip para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Opción 1
Define la configuración del registro privado en un archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Elimina replaces-base: true del archivo de configuración.
Agrega la dirección URL del registro privado a la sección [global] del archivo pip.conf y registra el archivo en el repositorio.
[global] timeout = 60 index-url = https://private_registry_url
[global]
timeout = 60
index-url = https://private_registry_url
Opción 2
Establece replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Pip-compile
Para configurar el ecosistema Pip-compile para que solo acceda a registros privados, puedes usar estos métodos de configuración.
Opción 1
Establece replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Opción 2
Define la configuración del registro privado en un archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Elimina replaces-base: true del archivo de configuración.
Agrega la dirección URL del registro privado al archivo requirements.txt y registra el archivo en el repositorio.
--index-url https://private_registry_url
--index-url https://private_registry_url
Pipenv
Para configurar Pipenv para que solo acceda a registros privados, quita replaces-base del archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Note
Elimina replaces-base: true del archivo de configuración.
Agrega la dirección URL del registro privado a la sección [[source]] del archivo Pipfile y registra el archivo en el repositorio.
[[source]] url = "https://private_registry_url" verify_ssl = true name = "pypi"
[[source]]
url = "https://private_registry_url"
verify_ssl = true
name = "pypi"
Poetry
Para configurar Poetry para que solo acceda a registros privados, establece replaces-base como true en el archivo dependabot.yml. Para más información, consulta Configuración del acceso a registros privados para Dependabot.
Agrega la dirección URL del registro privado a la sección [[tool.poetry.source]] del archivo pyproject.toml y regístrala en el repositorio.
[[tool.poetry.source]] name = "private" url = "https://private_registry_url" default = true
[[tool.poetry.source]]
name = "private"
url = "https://private_registry_url"
default = true