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 endependabot.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
en0
.
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.
# 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*"
# 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
paraangular
solo se aplica a las actualizaciones de seguridad. - Especifica que la personalización
groups
paraproduction-dependencies
solo se aplica a las actualizaciones de versión.
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"
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"