Skip to main content

Personalización de solicitudes de incorporación de cambios para actualizaciones de seguridad de Dependabot

Aprenda a personalizar las solicitudes de incorporación de cambios de Dependabot para que las actualizaciones de seguridad se ajusten a las prioridades y flujos de trabajo de seguridad del proyecto.

¿Quién puede utilizar esta característica?

Users with write access

Preparación para personalizar solicitudes de incorporación de cambios

Si aún no ha configurado un archivo dependabot.yml para el repositorio y quiere personalizar las solicitudes de incorporación de cambios para las actualizaciones de seguridad, primero debe hacer lo siguiente:

  1. Insertar un archivo dependabot.yml en el directorio .github del repositorio. Para más información, consulta Configuración de las actualizaciones de versiones de Dependabot.
  2. Establecer todas las claves obligatorias. Para más información, consulte Claves necesarias.
  3. Si quiere que la personalización de un ecosistema de paquetes solo se aplique a las actualizaciones de seguridad (y excluir las actualizaciones de versión), establezca la clave open-pull-requests-limit en 0.

Después, puede considerar cuáles son tus necesidades y prioridades para las actualizaciones de seguridad y aplicar una combinación de las opciones de personalización que se describen a continuación.

Clasificar por orden de prioridad las actualizaciones significativas

A fin de crear un proceso de revisión más dirigido que priorice las actualizaciones significativas, use groups para combinar las actualizaciones de seguridad de varias dependencias en una única solicitud de incorporación de cambios.

Para obtener instrucciones detalladas, consulta Priorización de actualizaciones significativas.

Adición automática de usuarios asignados

Usa assignees para agregar automáticamente personas o equipos como usuarios asignados a las solicitudes de incorporación de cambios.

Para obtener instrucciones detalladas, consulta Agregar automáticamente usuarios asignados.

Adición automática de revisores

Para asegurarte de que las actualizaciones de seguridad del proyecto se solucionan rápidamente por parte del equipo adecuado, puedes agregar automáticamente revisores a las solicitudes de cambios de Dependabot mediante un archivo CODEOWNERS. Consulta Acerca de los propietarios de código.

Etiquetado de solicitudes de cambios con etiquetas personalizadas

Para priorizar solicitudes de incorporación de cambios específicas, o bien integrarlas en canalizaciones de CI/CD, use labels para aplicar etiquetas personalizadas propias a cada solicitud de incorporación de cambios.

Para obtener instrucciones detalladas, consulte Etiquetado de solicitudes de incorporación de cambios con etiquetas personalizadas.

Adición de un prefijo a los mensajes de confirmación

Para realizar la integración con automatizaciones que procesan mensajes de confirmación o títulos de solicitudes de incorporación de cambios, use commit-message para especificar el prefijo que quiere usar para los mensajes de confirmación y los títulos de solicitudes de incorporación de cambios.

Para obtener instrucciones detalladas, consulte Adición de un prefijo a los mensajes de confirmación.

Asociación de solicitudes de incorporación de cambios con un hito

Para realizar un seguimiento del progreso hacia un objetivo o una versión del proyecto, use milestone para asociar Dependabotlas solicitudes de incorporación de cambios con un hito.

Para obtener instrucciones detalladas, consulte Asociación de solicitudes de incorporación de cambios con un hito.

Cambio del separador en el nombre de la rama de solicitud de incorporación de cambios

Para asegurarse de que los nombres de rama se alinean con las convenciones existentes del equipo, use pull-request-branch-name.separator para especificar el separador que desea Dependabot usar para los nombres de rama.

Para obtener instrucciones detalladas, consulte Cambio del separador en el nombre de la rama de solicitud de incorporación de cambios.

Ejemplo 1: Configuración solo para actualizaciones de seguridad

En este ejemplo, el archivo dependabot.yml:

  • Usa un registro privado para las actualizaciones de las dependencias de npm.
  • Deshabilita las actualizaciones de versión para las dependencias, de modo que las personalizaciones solo se apliquen a las actualizaciones de seguridad.
  • Se personaliza para que Dependabot aplique etiquetas personalizadas a las solicitudes de incorporación de cambios y agregue asignados.
  • Agrupa las actualizaciones de seguridad de las dependencias de golang en una única solicitud de cambios.
YAML
# Example configuration file that:
#  - Uses a private registry for npm updates
#  - Ignores lodash dependency
#  - Disables version-updates
#  - Applies custom labels
#  - Adds assignees
#  - Group security updates for golang dependencies into a single pull request

version: 2
registries:
  # Define a private npm registry with the name `example`
  example:
    type: npm-registry
    url: https://example.com
    token: ${{secrets.NPM_TOKEN}}
updates:
  - package-ecosystem: "npm"
    directory: "/src/npm-project"
    schedule:
      interval: "daily"
    # For Lodash, ignore all updates
    ignore:
      - dependency-name: "lodash"
    # Disable version updates for npm dependencies
    open-pull-requests-limit: 0
    registries:
      # Ask Dependabot to use the private registry for npm
      - example
    # Raise all npm pull requests for security updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    # Raise all npm pull requests for security updates with assignees
    assignees:
      - "user-name"
  - package-ecosystem: "gomod"
    directories:
      - "**/*"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 0
    groups:
      # Group security updates for golang dependencies
      # into a single pull request
      golang:
        applies-to: security-updates
        patterns:
          - "golang.org*"

Ejemplo 2: Configuración para actualizaciones de seguridad y de versión

En este ejemplo, el archivo dependabot.yml:

  • Se personaliza para que Dependabot agregue etiquetas personalizadas tanto a las actualizaciones de versión como a las actualizaciones de seguridad.
  • Usa la opción de personalización groups para crear dos grupos ("angular" y "production-dependencies") a fin de agrupar varias actualizaciones en solicitudes de cambios únicas.
  • Especifica que la personalización groups para angular solo se aplica a las actualizaciones de seguridad.
  • Especifica que la personalización groups para production-dependencies solo se aplica a las actualizaciones de versión.
YAML
version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
# Raise all npm pull requests for security and version updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    groups:
      angular:
        # Group security updates for Angular dependencies into a single pull request
        applies-to: security-updates
        patterns:
          - "@angular*"
      production-dependencies:
        # Group version updates for dependencies of type "production" into a single pull request
        applies-to: version-updates
        dependency-type: "production"

Lectura adicional