Automatisieren von Abhängigkeitsupdates
Beispielszenario
Angenommen, dein Projekt hängt von zahlreichen Bibliotheken und Paketen ab. Anfällige oder veraltete Abhängigkeiten erzeugen Sicherheitsrisiken, die sich auf dein Projekt und andere auswirken können, die darauf angewiesen sind.
Copilot Chat kann dir dabei helfen, Dependabot-Sicherheits- und Versionsupdates einzurichten, sodass deine Abhängigkeiten immer auf den sichersten und aktuellsten Versionen verbleiben. Weitere Informationen findest du unter Informationen zu Dependabot-Sicherheitsupdates und Informationen zu Updates von Dependabot-Versionen.
Bevor du beginnst, stelle sicher, dass Dependabot unter den „Einstellungen“ deines Repositorys vollständig aktiviert ist.
- Stelle unter den Einstellungen „Codesicherheit“ sicher, dass Dependabot alerts und Dependabot security updates beide auf „Aktiviert“ festgelegt sind.
- Erstelle eine leere
.github/dependabot.yml
-Datei, und committe sie an das Repository.
Beispiel für Prompt
Stelle sicher, dass dein Repository an die Promptaufforderung für den Kontext angefügt ist.
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.
Beispielausgabe
Copilot Chat analysiert dein Repository und schreibt den Inhalt der dependabot.yml
-Konfigurationsdatei für dich, wodurch Dependabot weiß, nach welchen Abhängigkeiten gesucht werden muss.
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"
Nachdem du die dependabot.yml
-Datei an dein Repository committet hast, beginnt Dependabot mit dem Öffnen von Pull Requests für dein Repository, wenn eine anfällige oder veraltete Abhängigkeit erkannt wird.
Anpassen der Abhängigkeitsverwaltung
Beispielszenario
Beispielszenario
Angenommen, dein Team hat die grundlegende Konfiguration von Dependabot für einige Monate verwendet, und du erhältst viele Pull Requests für Abhängigkeitsupdates. Du stellst jedoch Folgendes fest:
- Pull Requests bleiben ungeprüft, da sie keiner Person automatisch zugewiesen werden.
- Du möchtest, dass Pull Requests automatisch über ein Etikett dem Projektboard deines Teams hinzugefügt wird.
- Deine CI ist mit zu vielen gleichzeitigen Abhängigkeits-Pull-Requests überfordert.
- Du erhältst Updates für Entwicklungsabhängigkeiten, die sich nicht auf die Produktion auswirken.
Du möchtest deine Dependabot-Konfiguration anpassen, dass sie besser zum Arbeitsablauf deines Teams passt, wie z. B. die automatische Zuweisung von Pull-Requests an die richtigen Teammitglieder, das Hinzufügen von Labels zum Hinzufügen von Pull Requests zum Projektboard, die Begrenzung der Anzahl offener Pull Requests und die Konzentration auf Produktionsabhängigkeiten.
Copilot Chat kann eine aktualisierte dependabot.yml
schreiben, die den Anforderungen deines Teams besser entspricht.
Beispiel für 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.
Tipp
- Es gibt viele Anpassungsoptionen, die du dir ansehen kannst. Weitere Informationen findest du unter Anpassen von Pull Requests für Dependabot-Sicherheitsupdates und Anpassen von Dependabot-Pull-Requests an deine Prozesse.
- Du kannst unterschiedliche Anpassungen pro Paketökosystem angeben.
Beispielausgabe
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"