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.
Copilot Chat peut vous aider à configurer les mises à jour de sécurité et de version de Dependabot afin que vos dépendances restent toujours sur les versions les plus sécurisées et à jour. Consultez À propos des mises à jour de sécurité Dependabot et À propos des mises à jour de version Dependabot.
Avant de commencer, vérifiez que Dependabot est entièrement activé sous les « Paramètres » de votre référentiel.
- Dans vos paramètres de « Sécurité du code », assurez-vous que Dependabot alerts et Dependabot security updates sont tous deux réglés sur « Activé ».
- Créez et validez un fichier
.github/dependabot.yml
vide dans le référentiel.
Exemples 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.
Exemple de sortie
Copilot Chat analyse votre référentiel et écrit le contenu du fichier de configuration dependabot.yml
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 le fichier validé dependabot.yml
dans votre référentiel, Dependabot commence à ouvrir des demandes de tirage sur votre référentiel, chaque fois qu’une dépendance vulnérable ou obsolète est détectée.
Personnalisez la gestion des dépendances
Exemple de scénario
Exemple de scénario
Supposons que votre équipe utilise la configuration de base Dependabot depuis quelques mois et que vous obtenez de nombreuses demandes de tirage de mise à jour des dépendances. Toutefois, vous constatez que :
- Les demandes de tirage restent en suspens, car personne n’est automatiquement affecté.
- Vous souhaitez que les demandes de tirage soient automatiquement ajoutées à la carte de projet de votre équipe via une étiquette.
- Votre CI est submergé par un trop grand nombre de demandes de tirage 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 configuration Dependabot pour mieux adapter le flux de travail de votre équipe, par exemple en assignant automatiquement les demandes d'extraction aux membres appropriés de l'équipe, en ajoutant des étiquettes pour ajouter des demandes d'extraction au tableau du projet, en limitant le nombre de demandes d'extraction ouvertes, et en vous concentrant uniquement sur les dépendances de la production.
Copilot Chat peut écrire une dependabot.yml
mise à jour qui convient davantage aux besoins de votre équipe.
Exemples 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.
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 de Dependabot pour répondre à 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"