Automatiser les mises à jour des dépendances
Exemple de scénario
Supposons que votre projet dépend de nombreuses bibliothèques et packages. Les dépendances vulnérables ou obsolètes créent des risques de sécurité qui peuvent affecter votre projet et ceux qui en dépendent.
Discussion avec Copilot peut vous aider à configurer Dependabot afin de gérer les mises à jour de sécurité et de version, pour que vos dépendances restent toujours sur les versions les plus sûres et les plus récentes. Consultez À propos des mises à jour de sécurité Dependabot et À propos des mises à jour de version Dependabot.
Avant de commencer, assurez-vous que Dependabot est bien activé dans les « Paramètres » de votre dépôt.
- Dans vos paramètres « Sécurité du code », assurez-vous que Dependabot alerts et Dependabot security updates sont tous deux définis sur « Activé ».
- Créez et validez un fichier
.github/dependabot.ymlvide dans le référentiel.
Exemple d’invite
Vérifiez que votre référentiel est attaché à l’invite de contexte.
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.
Exemple de sortie
Discussion avec Copilot analyse votre référentiel et écrit le contenu du fichier de dependabot.yml configuration pour vous, ce qui indique Dependabot les dépendances dont il a besoin pour rechercher.
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"
Une fois que vous avez validé le fichier dependabot.yml dans votre dépôt, Dependabot commencera à créer des pull requests sur votre dépôt dès qu’une dépendance vulnérable ou obsolète sera détectée.
Personnalisez la gestion des dépendances
Exemple de scénario
Supposons que votre équipe utilise la configuration de base Dependabot depuis quelques mois et que vous receviez beaucoup de pull requests de mise à jour des dépendances. Toutefois, vous constatez que :
- Les pull requests sont non examinées, car personne n'est automatiquement assigné.
- Vous souhaitez que les pull requests soient automatiquement ajoutées au tableau de projet de votre équipe via une étiquette.
- Votre CI est submergée par un trop grand nombre de pull requests de dépendance simultanées.
- Vous obtenez des mises à jour pour les dépendances de développement qui n’affectent pas la production.
Vous souhaitez personnaliser votre Dependabot configuration pour mieux adapter le flux de travail de votre équipe, par exemple en affectant automatiquement des demandes de tirage aux membres de l’équipe appropriés, en ajoutant des étiquettes pour ajouter des demandes de tirage à la carte de projet, en limitant le nombre de demandes de tirage ouvertes et en se concentrant uniquement sur les dépendances de production.
Discussion avec Copilot peut écrire une mise à jour dependabot.yml qui convient mieux aux besoins de votre équipe.
Exemple d’invite
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.
Conseil
- Il existe de nombreuses options de personnalisation à explorer. Pour plus d’informations, consultez « Personnalisation des demandes de tirage pour les mises à jour de sécurité de Dependabot » et « Personnalisation des demandes de tirage Dependabot pour les adapter à vos processus ».
- Vous pouvez spécifier différentes personnalisations par écosystème de packages.
Exemple de sortie
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"