Skip to main content

Personalización de las pull requests de Dependabot para adaptarlas a tus procesos

Aprende a adaptar las solicitudes de cambios de Dependabot para ajustarlas mejor a tus propios flujos de trabajo internos.

¿Quién puede utilizar esta característica?

Users with write access

Hay varias maneras de personalizar las Dependabot solicitudes de incorporación de cambios para que se adapten mejor a sus propios procesos internos.

Por ejemplo, para integrar Dependabotlas solicitudes de incorporación de cambios en las canalizaciones de CI/CD, puede aplicar etiquetas personalizadas a las solicitudes de incorporación de cambios, que después puede usar para desencadenar flujos de trabajo de acción.

Hay varias opciones de personalización diferentes que se pueden usar de manera conjunta, adaptadas a cada ecosistema de paquetes.

Adición automática de usuarios asignados

De forma predeterminada, Dependabot genera solicitudes de extracción sin ninguna persona asignada.

Para asignar automáticamente solicitudes de incorporación de cambios a un equipo de seguridad designado, puedes usar assignees para establecer estos valores por ecosistema de paquetes.

En el archivo de ejemplo dependabot.yml siguiente, se cambia la configuración de npm para que todas las solicitudes de extracción abiertas con actualizaciones de versión y seguridad para npm tengan:

  • Un individuo ("user-name") asignado automáticamente a las solicitudes de incorporación de cambios.
YAML
# `dependabot.yml` file with
#  assignee for all npm pull requests

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise all npm pull requests with assignees
    assignees:
      - "user-name"

Adición automática de revisores

De forma predeterminada, Dependabot genera solicitudes de incorporación de cambios sin revisores.

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

Etiquetado de solicitudes de cambios con etiquetas personalizadas

De forma predeterminada, Dependabot genera solicitudes de extracción con la etiqueta dependencies.

Dependabot también aplica una etiqueta del ecosistema, como java, npmo github-actions, a las solicitudes de incorporación de cambios. Dependabot agrega tanto la etiqueta dependencies como la etiqueta del ecosistema a todas las solicitudes de extracción, incluidas las actualizaciones de un solo ecosistema, para mejorar el filtrado y el triaje.

Dependabot crea las etiquetas predeterminadas que aplica a las solicitudes de extracción si aún no existen en el repositorio. Si quiere usar etiquetas personalizadas en lugar de los valores predeterminados, puede establecer la opción labels en su archivo dependabot.yml por ecosistema de paquetes; esto sobrescribe los valores predeterminados. Para obtener más información, consulta Administrar las etiquetas y labels.

Si las etiquetas de versión semántica (SemVer) están presentes en el repositorio, Dependabot también las aplicará automáticamente para indicar el tipo de actualización de versión (major, minoro patch). Estas etiquetas se aplican además de las etiquetas personalizadas que defina.

Puedes usar labels para invalidar las etiquetas predeterminadas y especificar etiquetas personalizadas propias para cada ecosistema de paquetes. Esto es útil, por ejemplo, si quieres:

  • Usar etiquetas para asignar una prioridad a determinadas solicitudes de cambios.
  • Usar etiquetas para desencadenar otro flujo de trabajo, como agregar automáticamente el pull request a un tablero de proyecto.

En el archivo dependabot.yml de ejemplo siguiente se cambia la configuración de npm para que todas las solicitudes de cambios que se hayan abierto con actualizaciones de versión y seguridad para npm tengan etiquetas personalizadas.

YAML
# `dependabot.yml` file with
# customized npm configuration

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

Configurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use target-branch para buscar actualizaciones de versión en una rama diferente a la predeterminada.

Consulte también labels.

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

De forma predeterminada, Dependabot intenta detectar las preferencias del mensaje de confirmación y usar patrones similares. Además, Dependabot rellena los títulos de las solicitudes de incorporación de cambios en función de los mensajes de confirmación.

Puede especificar su propio prefijo para los Dependabotmensajes de confirmación (y títulos de solicitud de incorporación de cambios) para un ecosistema de paquetes específico. Esto puede ser útil si, por ejemplo, vas a ejecutar automatizaciones que procesan mensajes de confirmación o títulos de solicitudes de cambios.

Para especificar explícitamente tus preferencias, usa commit-message junto con las siguientes opciones admitidas:

  • prefix:
    • especifica un prefijo para todos los mensajes de confirmación.
    • El prefijo también se agrega al inicio del título del pull request.
  • prefix-development:
    • especifica un prefijo independiente para todos los mensajes de confirmación que actualizan las dependencias de desarrollo, en función de lo definido por el administrador de paquetes o el ecosistema.
    • Compatible con bundler, composer, mix, maven, npm y pip.
  • include: "scope":
    • Especifica que cualquier prefijo va seguido por los tipos de dependencias (deps o deps-dev) actualizadas en la confirmación del commit.

En el ejemplo siguiente se muestran varias opciones diferentes, adaptadas para cada ecosistema de paquetes:

YAML
# Customize commit messages

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      # Prefix all commit messages with "npm: "
      prefix: "npm"

  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      # Prefix all commit messages with "[docker] " (no colon, but a trailing whitespace)
      prefix: "[docker] "

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "weekly"
    # Prefix all commit messages with "Composer" plus its scope, that is, a
    # list of updated dependencies
    commit-message:
      prefix: "Composer"
      include: "scope"

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Include a list of updated dependencies
    # with a prefix determined by the dependency group
    commit-message:
      prefix: "pip prod"
      prefix-development: "pip dev"

Configurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use target-branch para buscar actualizaciones de versión en una rama diferente a la predeterminada.

Consulte también commit-message.

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

Los hitos te ayudan a realizar el seguimiento del progreso de grupos de solicitudes de cambios (o incidencias) hacia un objetivo o una versión del proyecto. Con Dependabot, puede usar la milestone opción para asociar solicitudes de incorporación de cambios para las actualizaciones de dependencia con un hito específico.

Debes especificar el identificador numérico del hito y no su etiqueta. Para buscar el identificador numérico, comprueba la parte final de la dirección URL de la página, después de milestone. Por ejemplo, para https://github.com/<org>/<repo>/milestone/3, "3" es el identificador numérico del hito.

YAML
# Specify a milestone for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Associate pull requests with milestone "4"
    milestone: 4

Configurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use target-branch para buscar actualizaciones de versión en una rama diferente a la predeterminada.

Consulta también milestone y Acerca de los hitos.

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

Dependabot genera una rama para cada solicitud de incorporación de cambios. Cada nombre de rama incluye dependabot, así como el administrador de paquetes y la dependencia que se va a actualizar. De manera predeterminada, estas partes del nombre de la rama están separadas por un símbolo /, por ejemplo:

  • dependabot/npm_and_yarn/next_js/acorn-6.4.1

Para mantener la compatibilidad o la coherencia con los procesos existentes, es posible que tengas que asegurarte de que los nombres de rama coincidan con las convenciones existentes del equipo. En este caso, puedes usar pull-request-branch-name.separator para especificar un separador diferente, si eliges _, / o "-".

En el ejemplo siguiente, la configuración de npm cambia el separador predeterminado de / a "-", para que aparezca de esta forma:

  • Valor predeterminado (/): dependabot/npm_and_yarn/next_js/acorn-6.4.1
  • Personalizado ("-"): dependabot-npm_and_yarn-next_js-acorn-6.4.1

Ten en cuenta que el símbolo de guion ("-") debe estar entre comillas para que no se interprete como el inicio de una lista de YAML vacía.

YAML
# Specify a different separator for branch names

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    pull-request-branch-name:
      # Change the default separator (/) to a hyphen (-)
      separator: "-"

Configurar esta opción también afectará a las solicitudes de incorporación de cambios para las actualizaciones de seguridad en los archivos de manifiesto de este administrador de paquetes, a menos que use target-branch para buscar actualizaciones de versión en una rama diferente a la predeterminada.

Consulte también pull-request-branch-name.separator.

Selección de destino de pull requests en una rama no por defecto

De forma predeterminada, Dependabot busca archivos de manifiesto en la rama predeterminada y crea solicitudes de incorporación de cambios para aplicar actualizaciones a la rama predeterminada.

Por lo general, tiene más sentido mantener sus comprobaciones y actualizaciones en la rama predeterminada de Dependabot. Pero es posible que haya casos en los que quieras especificar otra rama de destino. Si, por ejemplo, los procesos de su equipo requieren probar y validar primero las actualizaciones en una rama de no producción, puede usar target-branch para especificar una rama diferente para que Dependabot cree solicitudes de extracción dirigidas a ella.

Nota:

Dependabot genera solicitudes de incorporación de cambios para las actualizaciones de seguridad solo en la rama predeterminada. Si usas target-branch, como resultado, todas las opciones de configuración de ese administrador de paquetes solo se aplicarán a las actualizaciones de versión y no a las actualizaciones de seguridad.

YAML
# Specify a non-default branch for pull requests for pip

version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise pull requests for version updates
    # to pip against the `develop` branch
    target-branch: "develop"
    # Labels on pull requests for version updates only
    labels:
      - "pip dependencies"

  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      # Check for npm updates on Sundays
      day: "sunday"
    # Labels on pull requests for security and version updates
    labels:
      - "npm dependencies"

Consulte también target-branch.