Skip to main content

Personalización de las solicitudes de cambios de Dependabot para ajustarlas a los 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 solicitudes de cambios de Dependabot para que se adapten mejor a tus propios procesos internos.

Por ejemplo:

  • Para maximizar la eficacia, Dependabot puede agregar automáticamente usuarios o equipos específicos como revisores a sus solicitudes de cambios para un ecosistema de paquetes determinado.
  • Para integrar las solicitudes de cambios de Dependabot en las canalizaciones de CI/CD, puedes aplicarles etiquetas personalizadas, que puedes 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 revisores y asignados

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

Pero es posible que quieras que las solicitudes de cambios se revisen de forma coherente, o bien que las controle un equipo o individuo específico que tenga experiencia en ese ecosistema de paquetes, o que se asignen automáticamente a un equipo de seguridad designado. En cualquier caso, puedes usar reviewers y assignees para establecer estos valores en función de cada ecosistema de paquetes.

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 lo siguiente:

  • Un equipo ("my-org/team-name") y un individuo ("octocat") agregados automáticamente como revisores a las solicitudes de cambios.
  • Un individuo ("user-name") asignado automáticamente a las solicitudes de cambios.
YAML
# `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: "weekly"
    # Raise all npm pull requests with reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests with assignees
    assignees:
      - "user-name"

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.

Vea también assignees y reviewers.

Etiquetado de solicitudes de cambios con 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 solicitud de cambios, lo que indica qué lenguaje o ecosistema actualiza la solicitud de cambios. Por ejemplo, agregar java para actualizaciones de Gradle o submodules para actualizaciones de submódulo de Git.

Dependabot crea las etiquetas predeterminadas que aplica a las solicitudes de cambios si aún no existen en el repositorio. Si quieres usar etiquetas personalizadas, debes crearlas personalmente. Para obtener más información, consulta Administrar las etiquetas.

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 la solicitud de cambios a un panel 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

Predeterminadamente, el Dependabot intenta detectar tus preferencias de mensajes de confirmación y utiliza patrones similares. Además, Dependabot rellena los títulos de las solicitudes de cambios en función de los mensajes de confirmación.

Puedes especificar un prefijo propio para los mensajes de confirmación de Dependabot (y los títulos de solicitud 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 de la solicitud de cambios.
  • 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 del tipo de las dependencias (deps o deps-dev) actualizadas en la confirmación.

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 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 opción milestone a fin de asociar solicitudes de cambios para las actualizaciones de dependencias 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 milestones y Acerca de los hitos.

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

El Dependabot genera una rama para cada solicitud de extracción. Cada nombre de rama incluye dependabot, así como el administrador de paquetes y la dependencia que se van 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 solicitudes de cambios en una rama no predeterminada

De manera predeterminada, Dependabot revisa si hay archivos de manifiesto en la rama predeterminada y genera solicitudes de cambios para las actualizaciones en esa rama.

Por lo general, tiene más sentido mantener las comprobaciones y actualizaciones de Dependabot en la rama predeterminada. Pero es posible que haya casos en los que quieras especificar otra rama de destino. Si, por ejemplo, los procesos del equipo requieren que primero pruebes y valides las actualizaciones en una rama que no sea de producción, puedes usar target-branch para especificar una rama diferente para Dependabot a fin de generar solicitudes de cambios.

Note

Dependabot genera solicitudes de cambios para 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.