Skip to main content

Personalizar las actualizaciones de las dependencias

Puedes personalizar cómo el Dependabot mantiene tus dependencias.

Who can use this feature

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

Nota: El administrador del sitio debe configurar Dependabot updates para your GitHub Enterprise Server instance antes de que pueda utilizar esta característica. Para más información, vea "Habilitación de Dependabot para la empresa".

Acerca de personalizar las actualizaciones de las dependencias

Después de habilitar la actualización de versiones, puede personalizar cómo mantiene Dependabot sus dependencias. Para ello, agregue más opciones al archivo dependabot.yml. Por ejemplo, podría realizar estas acciones:

  • Especificar el día de la semana que se deben abrir las solicitudes de incorporación de cambios de las actualizaciones de versión: schedule.day
  • Establecer revisores, usuarios asignados y etiquetas para cada administrador de paquetes: reviewers, assigneesy labels
  • Definir una estrategia de control de versiones para los cambios en cada archivo de manifiesto: versioning-strategy
  • Cambiar el número máximo de solicitudes de incorporación de cambios abiertas para las actualizaciones de versión a partir del valor predeterminado de 5: open-pull-requests-limit
  • Abrir solicitudes de incorporación de cambios de actualizaciones de versión para seleccionar una rama específica en vez de la rama predeterminada: target-branch

Para obtener más información sobre las opciones de configuración, consulte "Opciones de configuración para el archivo dependabot.yml".

Cuando actualice el archivo dependabot.yml en el repositorio, Dependabot ejecutará una comprobación inmediata con la nueva configuración. Verá una lista de dependencias actualizada en cuestión de minutos en la pestaña de Dependabot ; esto podría demorarse más si el repositorio tiene muchas dependencias. También puedes ver las solicitudes de extracción nuevas para las actualizaciones de versión. Para obtener más información, consulte "Enumerar las dependencias configuradas para las actualizaciones de versión".

Impacto de los cambios de configuración en las actualizaciones de seguridad

Si personaliza el archivo dependabot.yml, podría notar algunos cambios en las solicitudes de incorporación de cambios que se envían para las actualizaciones de seguridad. Estas solicitudes de extracción siempre se activan mediante una asesoría de seguridad para una dependencia en vez de mediante un calendario de programación del Dependabot. Sin embargo, heredan la configuración correspondiente del archivo dependabot.yml a menos que especifique una rama de destino diferente para las actualizaciones de versión.

Para ver un ejemplo, consulte "Configuración de etiquetas personalizadas" a continuación.

Modificar la programación

Cuando configura una programación de actualización de tipo daily, de manera predeterminada, Dependabot revisa si hay versiones nuevas a las 05:00 UTC. Puede usar schedule.time para especificar una hora alternativa y comprobar si hay actualizaciones (formato: hh:mm).

El archivo dependabot.yml de ejemplo expande la configuración de npm para especificar cuándo debe revisar Dependabot las actualizaciones de versión para las dependencias.

# dependabot.yml file with
# customized schedule for version updates

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    # Check the npm registry for updates at 2am UTC
    schedule:
      interval: "daily"
      time: "02:00"

Configurar los revisores y asignados

Predeterminadamente, el Dependabot levanta solicitudes de extracción sin ningún revisor o asignado.

Puede usar reviewers y assignees para especificar revisores y usuarios asignados para todas las solicitudes de incorporación de cambios generadas de un administrador de paquetes. Cuando especifique un equipo, debe utilizar su nombre completo, como si estuviera @mentioning (incluida la organización).

El archivo dependabot.yml de ejemplo mostrado a continuación cambia la configuración de npm para que todas las solicitudes de incorporación de cambios que se hayan abierto con actualizaciones de versión y seguridad para npm tengan dos revisores y un usuario asignado.

# dependabot.yml file with
# reviews and an assignee for all npm pull requests

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Raise all npm pull requests with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests with an assignee
    assignees:
      - "user-name"

Configurar las etiquetas personalizadas

De manera predeterminada, Dependabot genera todas las solicitudes de incorporación de cambios con la etiqueta dependencies. Si se define más de un administrador de paquetes, Dependabot incluye una etiqueta adicional en cada una de las solicitudes de incorporación de cambios. Esto indica qué lenguaje o ecosistema actualizará la solicitud de incorporación de cambios, por ejemplo: java para las actualizaciones de Gradle y submodules para las actualizaciones de los submódulos de Git. El Dependabot crea estas etiquetas predeterminadas automáticamente, de acuerdo lo necesite tu repositorio.

Puede utilizar labels para anular las etiquetas predeterminadas y especificar etiquetas alternas para todas las solicitudes de incorporación de cambios que se hayan generado para un administrador de paquetes. No puede crear etiquetas nuevas en el archivo dependabot.yml, así que las etiquetas alternativas ya deben existir en el repositorio.

El archivo dependabot.yml de ejemplo mostrado a continuación cambia la configuración de npm para que todas las solicitudes de incorporación de cambios que se hayan abierto con actualizaciones de versión y seguridad para npm tengan etiquetas personalizadas. También cambia la configuración de Docker para revisar las actualizaciones de versión contra una rama personalizada y para levantar solicitudes de extracción con etiquetas personalizadas contra dicha rama personalizada. Los cambios en Docker no afectarán las solicitudes de extracción para actualizaciones de seguridad, ya que dichas actualizaciones de seguridad siempre se hacen contra la rama predeterminada.

Nota: El nuevo target-branch debe contener un Dockerfile para actualizar; de lo contrario, este cambio tendrá el efecto de deshabilitar las actualizaciones de versión para Docker.

# dependabot.yml file with
# customized npm configuration

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    # Raise all npm pull requests with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"

    # Keep Docker dependencies up to date
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "daily"
    # Raise pull requests for Docker version updates
    # against the "develop" branch. The Docker configuration
    # no longer affects security update pull requests.
    target-branch: "develop"
    # Use custom labels on pull requests for Docker version updates
    labels:
      - "Docker dependencies"
      - "triage-board"

Más ejemplos

Para ver más ejemplos, consulte "Opciones de configuración para el archivo dependabot.yml".