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.
# `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"
# `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.
# `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"
# `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
ypip
.
include: "scope"
:- especifica que cualquier prefijo va seguido del tipo de las dependencias (
deps
odeps-dev
) actualizadas en la confirmación.
- especifica que cualquier prefijo va seguido del tipo de las dependencias (
En el ejemplo siguiente se muestran varias opciones diferentes, adaptadas para cada ecosistema de paquetes:
# 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"
# 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.
# Specify a milestone for pull requests version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Associate pull requests with milestone "4" milestone: 4
# 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.
# 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: "-"
# 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.
# 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"
# 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
.