Automatización de las actualizaciones de dependencias
Escenario de ejemplo
Imagina que tu proyecto depende de numerosas bibliotecas y paquetes. Las dependencias vulnerables o obsoletas crean riesgos de seguridad que pueden afectar al proyecto y a otros usuarios que dependen de él.
Chat de Copiloto puede ayudarle a configurar las Dependabot actualizaciones de seguridad y versiones para que las dependencias permanezcan siempre en las versiones más seguras y up-to-date. Consulte Sobre las actualizaciones de seguridad de Dependabot y Acerca de las actualizaciones a la versión del Dependabot.
Antes de comenzar, asegúrese de que Dependabot está totalmente habilitado en la "Configuración" del repositorio.
- En la configuración de "Seguridad del código", asegúrese de que Dependabot alerts y Dependabot security updates estén ambos configurados como "Activado".
- Crea y confirma un archivo
.github/dependabot.ymlvacío en el repositorio.
Mensaje de ejemplo
Asegúrate de que el repositorio está adjunto al mensaje para otorgar contexto.
Analyze the codebase and project structure of this repository. Detect all package managers and package ecosystems in use, including their respective locations (e.g., npm, yarn, pip, maven, gradle, composer, github-actions, etc.). For each detected ecosystem, create a configuration entry in a single, top-level .github/dependabot.yml file that enables security and version updates on a reasonable schedule. Use the recommended best practices for each ecosystem. Clearly specify the directory for each ecosystem detected. If multiple ecosystems or multiple directories are present, include them all in the configuration. In the output, include any notes on the configuration or best practices, as well as next steps that include how to commit the dependabot.yml file to the repository via the GitHub web browser and how to check that Dependabot version updates and Dependabot security updates are enabled.
Analyze the codebase and project structure of this repository. Detect all package managers and package ecosystems in use, including their respective locations (e.g., npm, yarn, pip, maven, gradle, composer, github-actions, etc.).
For each detected ecosystem, create a configuration entry in a single, top-level .github/dependabot.yml file that enables security and version updates on a reasonable schedule. Use the recommended best practices for each ecosystem. Clearly specify the directory for each ecosystem detected. If multiple ecosystems or multiple directories are present, include them all in the configuration.
In the output, include any notes on the configuration or best practices, as well as next steps that include how to commit the dependabot.yml file to the repository via the GitHub web browser and how to check that Dependabot version updates and Dependabot security updates are enabled.
Salida de ejemplo
Chat de Copiloto analiza el repositorio y escribe el contenido del dependabot.yml archivo de configuración automáticamente, que indica Dependabot qué dependencias necesita examinar.
version: 2
updates:
# Python (pip)
- package-ecosystem: "pip"
directory: "/" # Location of requirements.txt
schedule:
interval: "weekly" # Weekly updates are a good balance for libraries
day: "sunday"
time: "06:00"
timezone: "UTC"
open-pull-requests-limit: 5
allow:
- dependency-type: "all"
commit-message:
prefix: "pip"
labels:
- "dependencies"
- "python"
ignore:
- dependency-name: "pip" # Ignore pip self-updates
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/" # Looks for workflow files under .github/workflows/
schedule:
interval: "weekly"
day: "sunday"
time: "06:00"
timezone: "UTC"
open-pull-requests-limit: 5
commit-message:
prefix: "actions"
labels:
- "dependencies"
- "github-actions"
Una vez que hayas añadido el archivo dependabot.yml a tu repositorio, Dependabot comenzará a abrir solicitudes de extracción en tu repositorio cada vez que se detecte una dependencia vulnerable u obsoleta.
Personalización de la administración de dependencias
Escenario de ejemplo
Supongamos que el equipo ha estado usando la configuración básica Dependabot durante unos meses y recibe muchas solicitudes de incorporación de cambios de actualización de dependencias. Pero descubres que:
- Las solicitudes de cambios no se revisan porque no se ha asignado a nadie automáticamente.
- Quieres que las pull requests se agreguen automáticamente al tablero de proyecto del equipo utilizando una etiqueta.
- La CI se sobrecarga con demasiadas solicitudes de cambios de dependencia simultáneas.
- Recibes actualizaciones para dependencias de desarrollo que no afectan a producción.
Quieres personalizar la configuración de Dependabot para adaptarla mejor al flujo de trabajo de tu equipo, por ejemplo, asignando automáticamente las solicitudes de extracción a los miembros adecuados del equipo, añadiendo etiquetas para incorporar las solicitudes de extracción al tablero del proyecto, limitando el número de solicitudes de extracción abiertas y centrándote solo en las dependencias de producción.
Chat de Copiloto puede escribir un dependabot.yml actualizado que se adapte mejor a las necesidades de tu equipo.
Mensaje de ejemplo
I want to customize my pull requests for Dependabot security and version updates, so that: * Pull requests are automatically assigned to the team "octocat-reviewers." * The label "security-management" is automatically added to every pull request. * The number of open Dependabot PRs is limited. * Development dependencies are ignored. Draft an update to the dependabot.yml file in my repository that specifies these customization options.
I want to customize my pull requests for Dependabot security and version updates, so that:
* Pull requests are automatically assigned to the team "octocat-reviewers."
* The label "security-management" is automatically added to every pull request.
* The number of open Dependabot PRs is limited.
* Development dependencies are ignored.
Draft an update to the dependabot.yml file in my repository that specifies these customization options.
Sugerencia
- Hay muchas opciones de personalización para explorar. Para obtener más información, vea Personalización de solicitudes de incorporación de cambios para actualizaciones de seguridad de Dependabot y Personalización de las pull requests de Dependabot para adaptarlas a tus procesos.
- Puedes especificar diferentes personalizaciones para cada ecosistema de paquetes.
Salida de ejemplo
version: 2
updates:
# Python (pip)
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
day: "sunday"
time: "06:00"
timezone: "UTC"
open-pull-requests-limit: 5
allow:
- dependency-type: "production" # Ignore development dependencies
assignees:
- "octocat-reviewers" # Assign PRs to the team
labels:
- "dependencies"
- "security-management" # Custom label for all PRs
- "python"
commit-message:
prefix: "pip"
ignore:
- dependency-name: "pip"