Skip to main content

Gestion des mises à jour des dépendances

Discussion avec Copilot peut vous aider à configurer Dependabot pour simplifier les mises à jour des dépendances.

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.

  1. Dans vos paramètres « Sécurité du code », assurez-vous que Dependabot alerts et Dependabot security updates sont tous deux définis sur « Activé ».
  2. Créez et validez un fichier .github/dependabot.yml vide dans le référentiel.

Exemple d’invite

Vérifiez que votre référentiel est attaché à l’invite de contexte.

Copilot prompt
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

Copilot prompt
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

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"