Skip to main content

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

Aprende a personalizar las solicitudes de cambios de Dependabot para que las actualizaciones de seguridad se ajusten con las prioridades y flujos de trabajo de seguridad del proyecto.

¿Quién puede utilizar esta característica?

Users with write access

Acerca de la personalización de solicitudes de cambios para actualizaciones de seguridad

Puedes personalizar cómo Dependabot genera solicitudes de cambios para las actualizaciones de seguridad, de modo que se ajusten mejor a las prioridades y procesos de seguridad del proyecto. Por ejemplo:

  • Optimiza las solicitudes de cambios de Dependabot para clasificar por orden de prioridad las actualizaciones significativas mediante la agrupación de varias actualizaciones en una única solicitud de cambios.
  • Aplicar etiquetas personalizadas para integrar las solicitudes de cambios de Dependabot en los flujos de trabajo existentes.

De forma similar a las actualizaciones de versión, las opciones de personalización de las actualizaciones de seguridad se definen en el archivo dependabot.yml. Si ya has personalizado dependabot.yml para las actualizaciones de versión, muchas de las opciones de configuración que has definido también se podrían aplicar automáticamente a las actualizaciones de seguridad. Pero hay un par de puntos importantes que tener en cuenta:

  • Dependabot security updates se desencadenan siempre mediante un aviso de seguridad, en lugar de ejecutarse según el valor schedule que has establecido en dependabot.yml para las actualizaciones de versión.
  • Dependabot genera solicitudes de cambios para actualizaciones de seguridad solo en la rama predeterminada. Si en la configuración estableces un valor para target-branch, la personalización de ese ecosistema de paquetes solo se aplicará a las actualizaciones de versión de manera predeterminada.

Si aún no has configurado un archivo dependabot.yml para el repositorio y quieres personalizar las solicitudes de cambios para las actualizaciones de seguridad, primero debes hacer lo siguiente:

  • Insertar en el repositorio 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.
  • Establecer todas las claves obligatorias. Para más información, consulta Claves obligatorias.
  • Si quieres que la personalización de un ecosistema de paquetes solo se aplique a las actualizaciones de seguridad (y excluir las actualizaciones de versión), establece 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, usa groups para combinar las actualizaciones de seguridad de varias dependencias en una única solicitud de cambios.

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

Adición automática de revisores y asignados

Para asegurarte de que las actualizaciones de seguridad del proyecto se solucionan rápidamente por parte del equipo adecuado, usa reviewers y assignees para agregar automáticamente usuarios o equipos como revisores o usuarios asignados a las solicitudes de cambios.

Para obtener instrucciones detalladas, consulta Adición automática de revisores y usuarios asignados.

Etiquetado de solicitudes de cambios con etiquetas personalizadas

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

Para obtener instrucciones detalladas, consulta Etiquetado de solicitudes 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 cambios, usa commit-message para especificar el prefijo que quieres para los mensajes de confirmación y los títulos de solicitudes de cambios.

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

Asociación de solicitudes de cambios con un hito

Para realizar el seguimiento del progreso hacia un objetivo o versión del proyecto, usa milestone para asociar las solicitudes de cambios de Dependabot con un hito.

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

Cambio del separador en el nombre de la rama de solicitud de cambios

Para asegurarte de que los nombres de rama se alinean con las convenciones existentes del equipo, usa pull-request-branch-name.separator para especificar el separador que quieres que Dependabot utilice para los nombres de rama.

Para obtener instrucciones detalladas, consulta Cambio del separador en el nombre de la rama de solicitud 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 cambios y agregue automáticamente revisores y usuarios 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 reviewers and 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 reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests for security updates with assignees
    assignees:
      - "user-name"
  - package-ecosystem: "gomod"
    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 revisores y etiquetas personalizadas a las actualizaciones de versión y 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"
    # Raise all npm pull requests for security and version updates with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    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"

Información adicional