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 a la project y a otros usuarios que dependen de ella.
chat de Copilot puede ayudarte a configurar con actualizaciones de seguridad y versiones de Dependabot para que las dependencias tengan siempre las versiones más seguras y actualizadas. Consulta Sobre las actualizaciones de seguridad de Dependabot y Acerca de las actualizaciones a la versión del Dependabot.
Antes de comenzar, asegúrate de que Dependabot esté totalmente habilitado en la "Configuración" del repositorio.
- En la configuración de "Seguridad de código", asegúrate de que Dependabot alerts y Dependabot security updates estén establecidos en "Activado".
- Cree y confirme un archivo
.github/dependabot.ymlvacío en el repositorio.
Ejemplos de indicaciones
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 Copilot analiza el repositorio y escribe el contenido del archivo de configuración de dependabot.yml automáticamente, lo que indica a 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 comprometido el archivo dependabot.yml a tu repositorio, Dependabot comenzará a abrir solicitudes de extracción contra tu repositorio, siempre que se detecte una dependencia vulnerable o obsoleta.
Personalización de la administración de dependencias
Escenario de ejemplo
Imagínate que tu equipo ha estado utilizando la configuración básica de Dependabot durante unos meses y estás recibiendo muchas solicitudes 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 solicitudes de cambios se agreguen automáticamente al panel del proyecto del equipo mediante 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 que se ajuste mejor al flujo de trabajo del equipo, como asignar automáticamente solicitudes de cambios a los miembros del equipo correctos, agregar etiquetas para agregar solicitudes de cambios al panel del proyecto, limitar el número de solicitudes de cambios abiertas y centrarse solo en dependencias de producción.
chat de Copilot puede escribir un dependabot.yml actualizado que se adapte mejor a las necesidades de tu equipo.
Ejemplos de indicaciones
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 más información, consulta Personalización de solicitudes de incorporación de cambios para actualizaciones de seguridad de Dependabot y Personalización de las solicitudes de cambios de Dependabot para ajustarlas a los 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"