Skip to main content

Configuración del acceso a registros privados para Dependabot

Puede configurar Dependabot para acceder a las dependencias almacenadas en registros privados. Puede almacenar información de autenticación, como contraseñas y tokens de acceso, como secretos cifrados y, a continuación, hacer referencia a ellos en el archivo de Dependabot configuración. Si tiene registros en redes privadas, también puede configurar Dependabot el acceso al ejecutarse Dependabot en ejecutores autohospedados.

¿Quién puede utilizar esta característica?

Usuarios con acceso de escritura

Acerca de los registros privados

          Dependabot version updates mantiene las dependencias actualizadas mientras que Dependabot security updates actualiza las dependencias vulnerables. 
          Dependabot puede acceder a los registros públicos. Además, puede conceder Dependabot acceso a registros de paquetes privados y repositorios privados GitHub para que pueda mantener las dependencias privadas e innersource tan actualizadas y seguras como las dependencias públicas.

En la mayoría de los ecosistemas, las dependencias privadas suelen publicarse en registros de paquetes privados. Estos registros privados son similares a sus equivalentes públicos, pero requieren autenticación.

Para ecosistemas específicos, puede configurar Dependabot para acceder solo a registros privados mediante la eliminación de llamadas a registros públicos. Para más información, consulta Eliminación del acceso de Dependabot a registros públicos.

          Para permitir el Dependabot acceso a registros hospedados de forma privada o restringida a redes internas, configure Dependabot para ejecutarse en GitHub Actions ejecutores autohospedados. Para obtener más información, consulte [AUTOTITLE](/code-security/dependabot/maintain-dependencies/managing-dependabot-on-self-hosted-runners).

Configuración de registros privados

Puede configurar el acceso de Dependabot a registros privados a nivel organizativo.

Los registros de nivel de organización admiten la autenticación token, nombre de usuario y contraseña y OIDC .

Para obtener más información sobre la configuración, consulte Conceder acceso a las características de seguridad a registros privados.

También puede configurar el acceso a los registros privados de Dependabot en el archivo dependabot.yml. La clave registries de nivel superior es opcional y especifica los detalles de autenticación.

Hay 2 ubicaciones en el archivo dependabot.yml donde puede usar la clave registries:

  • En el nivel superior, donde se definen los registros y su información de acceso, si es necesario.
  • Dentro de los bloques updates, donde puede utilizar registries: "*" para indicar a Dependabot utilizar cualquiera o todos los registros definidos en el nivel superior.
# registries: gradle-artifactory - provides access details for the gradle-artifactory registry
# registries: "*" - allows Dependabot to use all the defined registries specified at the top level

version: 2
registries:
  gradle-artifactory:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-gradle-registry
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
updates:
  - package-ecosystem: "gradle"
    directory: "/"
    registries: "*"
    schedule:
      interval: "monthly"

Utilizarás las siguientes opciones para especificar la configuración de acceso. La configuración del registro debe contener un elemento type y otro url, y normalmente incluirán una combinación username y password, o un elemento token.

ParámetrosFin
REGISTRY_NAMEObligatorio: define un identificador para el registro.
typeObligatorio: identifica el tipo de registro.
Detalles de la autenticaciónObligatorio: los parámetros admitidos para proporcionar detalles de autenticación varían para los registros de diferentes tipos.
urlObligatorio: la URL que se usa para acceder a las dependencias en este registro. El protocolo es opcional. Si no se especifica, se da por hecho el valor https://. El Dependabot agrega o ignora las diagonales iniciales conforme sea necesario.
replaces-baseSi el valor booleano es true, Dependabot resuelve las dependencias mediante el valor url especificado en lugar de la URL base de ese ecosistema.

Para obtener más información sobre las opciones de configuración disponibles y los tipos admitidos, consulte Referencia de opciones de Dependabot.

Almacenamiento de credenciales para que las use Dependabot

Para conceder Dependabot acceso a los registros privados admitidos por GitHub, guarde el token de acceso o el secreto del registro en el almacén de secretos del repositorio o la organización.

Acerca de los secretos cifrados para Dependabot

          Dependabot los secretos son credenciales cifradas que se crean en el nivel de organización o en el nivel de repositorio.

Cuando agregas un secreto a nivel de la organización, puedes especificar qué repositorios pueden acceder a éste. Puede usar secretos para permitir Dependabot actualizar las dependencias ubicadas en registros de paquetes privados. Al agregar un secreto, se cifra antes de que llegue GitHub y permanece cifrado hasta que lo use Dependabot para acceder a un registro de paquetes privado.

          Dependabot los secretos también incluyen secretos que usan GitHub Actions los flujos de trabajo desencadenados por Dependabot las solicitudes de incorporación de cambios. 
          Dependabot sí mismo puede no usar estos secretos, pero los flujos de trabajo los requieren. Para más información, consulta [AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-on-github-actions#accessing-secrets).

Después de agregar un Dependabot secreto, puede hacer referencia a él en el dependabot.yml archivo de configuración como este: ${{secrets.NAME}}, donde "NAME" es el nombre que eligió para el secreto. Por ejemplo:

YAML
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}

Nombrar tus secretos

Nombre de un Dependabot secreto:

  • Solo puede contener caracteres alfanuméricos ([A-Z] o [0-9]) o caracteres de subrayado (_). No se permiten espacios. Si escribes en minúscula, se cambiará todo a mayúsculas.
  • No debe comenzar con el prefijo GITHUB_.
  • No puede iniciar con un número.

Adición de un secreto de repositorio para Dependabot

Para crear secretos para un repositorio de una cuenta personal, deberás ser el propietario del repositorio. A fin de crear secretos para un repositorio de la organización, debe tener acceso admin.

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la sección "Security" de la barra lateral, selecciona Secrets and variables y luego haz clic en Dependabot.

  4. Haga clic en New repository secret.

  5. Escriba un nombre para su secreto en el cuadro de entrada Name.

  6. Ingresa el valor de tu secreto.

  7. Haga clic en Add Secret.

    El nombre del secreto se lista en la página de secretos del Dependabot. Puede hacer clic en Update (Actualizar) para cambiar el valor del secreto. Puede hacer clic en Remove (Quitar) para eliminar el secreto.

Adición de un secreto de organización para Dependabot

Cuando creas un secreto en una organización, puedes utilizar una política para limitar el acceso de los repositorios a este. Por ejemplo, puedes otorgar acceso a todos los repositorios, o limitarlo a solo los repositorios privados o a una lista específica de estos.

Para crear secretos en el nivel de la organización, debe tener acceso admin.

  1. En GitHub, navega a la página principal de tu organización.

  2. Debajo del nombre de la organización, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

           1. En la sección "Security" de la barra lateral, selecciona **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-key-asterisk" aria-label="key-asterisk" role="img"><path d="M0 2.75A2.75 2.75 0 0 1 2.75 0h10.5A2.75 2.75 0 0 1 16 2.75v10.5A2.75 2.75 0 0 1 13.25 16H2.75A2.75 2.75 0 0 1 0 13.25ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25Z"></path><path d="M8 4a.75.75 0 0 1 .75.75V6.7l1.69-.975a.75.75 0 0 1 .75 1.3L9.5 8l1.69.976a.75.75 0 0 1-.75 1.298L8.75 9.3v1.951a.75.75 0 0 1-1.5 0V9.299l-1.69.976a.75.75 0 0 1-.75-1.3L6.5 8l-1.69-.975a.75.75 0 0 1 .75-1.3l1.69.976V4.75A.75.75 0 0 1 8 4Z"></path></svg> Secrets and variables** y luego haz clic en **Dependabot**.
           Ignore la opción "Registros privados", que solo se usa de code scanning forma predeterminada.
    
  3. Haga clic en New organization secret.

  4. Escriba un nombre para su secreto en el cuadro de entrada Name.

  5. Introduzca el valor del secreto en Value.

  6. En la lista desplegable Repository access (Acceso al repositorio), elija una directiva de acceso.

  7. Si ha elegido Selected repositories (Repositorios seleccionados):

    • Haga clic en .
    • En el cuadro de diálogo, seleccione los repositorios que pueden acceder a este secreto.
    • Haga clic en Update selection (Actualizar selección).
  8. Haga clic en Add Secret.

    El nombre del secreto se muestra en la Dependabot página secretos. Puede hacer clic en Update (Actualizar) para cambiar el valor del secreto o su directiva de acceso. Puede hacer clic en Remove (Quitar) para eliminar el secreto.

Configuración de reglas de IP de firewall

Puede agregar direcciones IP asociadas con Dependabot a la lista de IP permitidas de los registros.

Si el registro privado está configurado con una lista de direcciones IP permitidas, puede encontrar las direcciones IP Dependabot que se usan para acceder al registro en el endpoint de meta API, bajo la clave actions. Para más información, consulta Puntos de conexión de la API de REST para metadatos y Acerca de Dependabot en ejecutores de Acciones de GitHub.

Uso de OIDC para la autenticación

          Dependabot puede usar OpenID Connect (OIDC) para autenticarse con registros privados, lo que elimina la necesidad de almacenar credenciales de larga duración como secretos del repositorio.

Con la autenticación basada en OIDC, los Dependabot trabajos de actualización pueden obtener dinámicamente credenciales de corta duración del proveedor de identidades en la nube, al igual GitHub Actions que los flujos de trabajo que usan la federación de OIDC.

Sugerencia

La autenticación OIDC también está disponible para los registros privados de nivel de organización , que puede configurar a través de la interfaz de usuario de configuración de la organización o la API REST. Para más información, consulta Conceder acceso a las características de seguridad a registros privados.

          Dependabot admite la autenticación OIDC para cualquier tipo de registro que use `username` y `password` la autenticación, cuando el registro se hospede en uno de los siguientes proveedores de nube:
  • AWS CodeArtifact
  • artefactos de Azure DevOps
  • JFrog Artifactory

Para configurar la autenticación OIDC, debe especificar valores diferentes en lugar de username y password en la configuración del Registro.

AWS CodeArtifact

AWS CodeArtifact requiere los valores aws-region, , account-id``role-name, domainy domain-owner. El campo audience es opcional.

registries:
  my-aws-codeartifact-feed:
    type: npm-registry
    url: https://MY_DOMAIN-MY-ACCOUNT_ID.d.codeartifact.REGION.amazonaws.com/npm/MY_REPOSITORY/
    aws-region: REGION
    account-id: '123456789012'
    role-name: MY_ROLE_NAME
    domain: MY_DOMAIN
    domain-owner: '987654321098'
    audience: MY_AUDIENCE  # if required by your feed

Artefactos de Azure DevOps

Azure DevOps Artifacts requiere los valores tenant-id y client-id:

registries:
  my-azure-devops-artifacts-feed:
    type: npm-registry
    url: https://pkgs.dev.azure.com/MY-ORGANIZATION/MY-PROJECT/_packaging/MY-FEED/npm/registry/
    tenant-id: ${{ secrets.AZURE_TENANT_ID }}
    client-id: ${{ secrets.AZURE_CLIENT_ID }}

JFrog Artifactory

JFrog Artifactory requiere los valores url y jfrog-oidc-provider-name. Los valores audience y identity-mapping-name son opcionales:

registries:
  my-jfrog-artifactory-feed:
    type: npm-registry
    url: https://JFROG-PLATFORM-URL/artifactory/api/npm/MY-REPOSITORY
    jfrog-oidc-provider-name: MY-PROVIDER
    audience: MY-AUDIENCE  # if required by your feed
    identity-mapping-name: MY-IDENTITY-MAPPING  # if required by your feed

Para obtener más información sobre cómo funciona OIDC, consulte OpenID Connect.

Permitir la ejecución de código externo

Al conceder Dependabot acceso a uno o varios registros, la ejecución de código externo se deshabilita automáticamente para proteger el código de los paquetes en peligro. Sin embargo, es posible que se produzca un error en algunas actualizaciones de versión.

Si necesita permitir que Dependabot acceda a un registro de paquetes privado y habilitar la ejecución limitada de código externo, puede establecer insecure-external-code-execution a allow. Permitir Dependabot ejecutar código externo en el manifiesto durante las actualizaciones no es tan espantosos como suena:

  • Cualquier ejecución de código externo solo tendrá acceso a los administradores de paquetes de los registros asociados a la configuración de updates envolvente.
  • No se permite el acceso a ninguno de los registros definidos en la configuración de registries de nivel superior.

Es habitual que las herramientas, como bundler, mix, pipy swift, permitan la ejecución de código externo de forma predeterminada.

En este ejemplo, el archivo de configuración permite Dependabot acceder al ruby-github registro de paquetes privados. En la misma configuración de updates, insecure-external-code-execution se establece en allow, lo que significa que el código ejecutado mediante dependencias solo tendrá acceso al registro de ruby-github y no al de dockerhub.

YAML
# Allow external code execution when updating dependencies from private registries

version: 2
registries:
  ruby-github:
    type: rubygems-server
    url: https://rubygems.pkg.github.com/octocat/github_api
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
updates:
  - package-ecosystem: "bundler"
    directory: "/rubygems-server"
    insecure-external-code-execution: allow
    registries: "*"
    schedule:
      interval: "monthly"

Registros privados admitidos

Ejemplos de cómo configurar el acceso a los registros privados admitidos por Dependabot.

cargo-registry

El tipo cargo-registry admite un token.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

registries:
  cargo-example:
    type: cargo-registry
    registry: "name-of-your-registry"
    url: https://cargo.cloudsmith.io/foobaruser/test/
    token: "Token ${{secrets.CARGO_TOKEN}}"

Hemos probado esta configuración en el registro privado https://cargo.cloudsmith.io.

composer-repository

El tipo composer-repository admite el nombre de usuario y la contraseña. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  composer:
    type: composer-repository
    url: https://repo.packagist.com/example-company/
    username: octocat
    password: ${{secrets.MY_PACKAGIST_PASSWORD}}

docker-registry

          Dependabot funciona con los registros de contenedor que implementan la especificación del registro de contenedor de OCI. Para obtener más información, vea [https://github.com/opencontainers/distribution-spec/blob/main/spec.md](https://github.com/opencontainers/distribution-spec/blob/main/spec.md). 
          Dependabot admite la autenticación en registros privados a través de un servicio de token central o una autenticación HTTP Basic. Para obtener más información, consulte [Especificación de autenticación de tokens](https://docs.docker.com/registry/spec/auth/token/) en la documentación de Docker y [autenticación de acceso básico](https://en.wikipedia.org/wiki/Basic_access_authentication) en Wikipedia.

El tipo docker-registry admite el nombre de usuario y la contraseña. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  dockerhub:
    type: docker-registry
    url: https://registry.hub.docker.com
    username: octocat
    password: ${{secrets.MY_DOCKERHUB_PASSWORD}}
    replaces-base: true

El tipo docker-registry también se puede usar para incorporar cambios de Amazon ECR privado mediante credenciales estáticas de AWS.

YAML
registries:
  ecr-docker:
    type: docker-registry
    url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
    username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
    password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}
    replaces-base: true

git

El tipo git admite el nombre de usuario y la contraseña. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

YAML
registries:
  github-octocat:
    type: git
    url: https://github.com
    username: x-access-token
    password: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

goproxy-server

El tipo goproxy-server admite el nombre de usuario y la contraseña. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  my-private-registry:
    type: goproxy-server
    url: https://acme.jfrog.io/artifactory/api/go/my-repo
    username: octocat
    password: ${{secrets.MY_GO_REGISTRY_TOKEN}}

helm-registry

El helm-registry tipo solo admite la autenticación básica http y no admite registros compatibles con OCI. Si necesita acceder a un registro compatible con OCI para gráficos de Helm, en su lugar, configure un docker-registry.

El tipo helm-registry admite el nombre de usuario y la contraseña. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  helm_registry:
    type: helm-registry
    url: https://registry.example.com
    username: octocat
    password: ${{secrets.MY_REGISTRY_PASSWORD}}

hex-organization

El tipo hex-organization admite la organización y la clave.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  github-hex-org:
    type: hex-organization
    organization: github
    key: ${{secrets.MY_HEX_ORGANIZATION_KEY}}

hex-repository

El tipo hex-repository admite una clave de autenticación.

          `repo` es un campo obligatorio, que debe coincidir con el nombre del repositorio usado en la declaración de dependencia.

          `public-key-fingerprint` es un campo de configuración opcional, que representa la huella digital de la clave pública para el repositorio hexadecimal. 
          `public-key-fingerprint` se usa en el formato hexadecimal para establecer la confianza con el repositorio privado. El `public-key-fingerprint` campo puede aparecer en texto no cifrado o almacenarse como secreto Dependabot .
YAML
registries:
   github-hex-repository:
     type: hex-repository
     repo: private-repo
     url: https://private-repo.example.com
     auth-key: ${{secrets.MY_AUTH_KEY}}
     public-key-fingerprint: ${{secrets.MY_PUBLIC_KEY_FINGERPRINT}}

maven-repository

El maven-repository tipo admite el nombre de usuario, la contraseña y replaces-base. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  maven-artifactory:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-maven-registry
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
    replaces-base: true

También puede usar la autenticación OIDC para acceder a JFrog Artifactory. Con OIDC, Dependabot obtiene dinámicamente credenciales de corta duración en lugar de usar credenciales estáticas.

YAML
registries:
  maven-artifactory-oidc:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-maven-registry
    tenant-id: ${{secrets.ARTIFACTORY_TENANT_ID}}
    client-id: ${{secrets.ARTIFACTORY_CLIENT_ID}}
    replaces-base: true

npm-registry

El tipo npm-registry admite el nombre de usuario y la contraseña, o el token. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Al usar el nombre de usuario y la contraseña, .npmrcel token de autenticación puede contener un base64 codificado _password; sin embargo, la contraseña a la que se hace referencia en Dependabot el archivo de configuración debe ser la contraseña original (sin codificar).

Nota:

Al usar npm.pkg.github.com, no incluya una ruta de acceso. En su lugar, usa la dirección URL https://npm.pkg.github.com sin una ruta de acceso.

YAML
registries:
  npm-npmjs:
    type: npm-registry
    url: https://registry.npmjs.org
    username: octocat
    password: ${{secrets.MY_NPM_PASSWORD}}  # Must be an unencoded password
    replaces-base: true
YAML
registries:
  npm-github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
    replaces-base: true

Por motivos de seguridad, Dependabot no establece variables de entorno. Yarn (v2 y versiones posteriores) requiere que se establezcan las variables de entorno a las que se acceda. Al acceder a variables de entorno en su archivo .yarnrc.yml, debe proporcionar un valor de reserva como ${ENV_VAR-fallback} o ${ENV_VAR:-fallback}. Para obtener más información, consulta Archivos Yarnrc en la documentación de Yarn.

nuget-feed

El tipo nuget-feed admite el nombre de usuario y la contraseña, o el token. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

          `nuget-feed` no admite el parámetro `replaces-base`.
YAML
registries:
  nuget-example:
    type: nuget-feed
    url: https://nuget.example.com/v3/index.json
    username: octocat@example.com
    password: ${{secrets.MY_NUGET_PASSWORD}}
YAML
registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
    username: octocat@example.com
    password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}

También puede usar la autenticación OIDC para acceder a Azure DevOps Artefactos. Con OIDC, Dependabot obtiene dinámicamente credenciales de corta duración en lugar de usar credenciales estáticas.

YAML
registries:
  nuget-azure-devops-oidc:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/MyOrganization/MyProject/_packaging/MyArtifactFeedName/nuget/v3/index.json
    tenant-id: ${{secrets.AZURE_TENANT_ID}}
    client-id: ${{secrets.AZURE_CLIENT_ID}}

Los valores AZURE_TENANT_ID y AZURE_CLIENT_ID se pueden obtener en la página de información general del registro de la aplicación de Entra ID.

pub-repository

El tipo pub-repository admite una URL y un token.

YAML
registries:
  my-pub-registry:
    type: pub-repository
    url: https://example-private-pub-repo.dev/optional-path
    token: ${{secrets.MY_PUB_TOKEN}}
updates:
  - package-ecosystem: "pub"
    directory: "/"
    schedule:
      interval: "weekly"
    registries:
      - my-pub-registry

python-index

El tipo python-index admite el nombre de usuario y la contraseña, o el token. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  python-example:
    type: python-index
    url: https://example.com/_packaging/my-feed/pypi/example
    username: octocat
    password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
    replaces-base: true
YAML
registries:
  python-azure:
    type: python-index
    url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
    username: octocat@example.com
    password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
    replaces-base: true

También puede usar la autenticación OIDC para acceder a Azure DevOps Artefactos. Con OIDC, Dependabot obtiene dinámicamente credenciales de corta duración en lugar de usar credenciales estáticas.

YAML
registries:
  python-azure-oidc:
    type: python-index
    url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
    tenant-id: ${{secrets.AZURE_TENANT_ID}}
    client-id: ${{secrets.AZURE_CLIENT_ID}}
    replaces-base: true

rubygems-server

El tipo rubygems-server admite el nombre de usuario y la contraseña, o el token. Si la cuenta es una cuenta de GitHub, puede usar un GitHub personal access token en lugar de la contraseña.

Este tipo de registro coincidirá en el prefijo con la ruta de acceso proporcionada en la opción url. Esto significa que puedes proporcionar varias credenciales al mismo host, que se puede usar para acceder a distintas rutas de acceso. Sin embargo, si no tienes varios registros en el mismo host, se recomienda omitir la ruta de acceso de url para que todas las rutas de acceso al registro reciban credenciales.

YAML
registries:
  ruby-example:
    type: rubygems-server
    url: https://rubygems.example.com
    username: octocat@example.com
    password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
    replaces-base: true
YAML
registries:
  ruby-github:
    type: rubygems-server
    url: https://rubygems.pkg.github.com/octocat/github_api
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
    replaces-base: true

terraform-registry

El tipo terraform-registry admite un token.

YAML
registries:
  terraform-example:
    type: terraform-registry
    url: https://terraform.example.com
    token: ${{secrets.MY_TERRAFORM_API_TOKEN}}