Skip to main content

Eliminación del acceso de Dependabot a registros públicos

Ejemplos de cómo configurar Dependabot para acceder solo a registros privados mediante la eliminación de llamadas a registros públicos.

¿Quién puede utilizar esta característica?

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

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

Para tener un mayor control sobre el acceso de Dependabot a los registros privados y a los recursos de red internos, puede configurar Dependabot para que se ejecute en los ejecutores autohospedados de GitHub Actions. Para obtener más información, vea «Acerca de Dependabot en ejecutores de Acciones de GitHub» y «Administración de Dependabot en ejecutores de prueba interna».

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.

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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

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"

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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: Elimine 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 }}

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

Opción 2

Establece replaces-base como true en el archivo dependabot.yml. Para obtener más información, vea «Opciones de configuración para el archivo dependabot.yml». 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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: Elimine 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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: Elimine 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

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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: 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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: 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"

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:

  1. Definición de la configuración del registro privado en un archivo dependabot.yml

  2. Agrega el registro a un archivo .yarnrc en la raíz del proyecto con el registro de claves. También puedes ejecutar yarn config set registry <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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: 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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: 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"

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:

  1. Definición de la configuración del registro privado en un archivo dependabot.yml
  2. Agrega el registro a un archivo .yarnrc.yml en la raíz del proyecto con la clave npmRegistryServer. También puedes ejecutar yarn config set npmRegistryServer <private registry URL>. npmRegistryServer: "https://private_registry_url"

Nota: 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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

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

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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: 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

Opción 2

Establece replaces-base como true en el archivo dependabot.yml. Para obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

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 obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Opción 2

Define la configuración del registro privado en un archivo dependabot.yml. Para obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: 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

Pipenv

Para configurar Pipenv para que solo acceda a registros privados, quita replaces-base del archivo dependabot.yml. Para obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

Nota: 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"

Poetry

Para configurar Poetry para que solo acceda a registros privados, establece replaces-base como true en el archivo dependabot.yml. Para obtener más información, vea «Opciones de configuración para el archivo dependabot.yml».

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