GitHub Actions: qwen-code-action
Übersicht
qwen-code-action ist eine GitHub Action, die Qwen Code über die Qwen Code CLI in deinen Entwicklungs-Workflow integriert. Sie fungiert sowohl als autonomer Agent für wichtige Routine-Coding-Aufgaben als auch als bedarfsgesteuerter Mitarbeiter, an den du Aufgaben schnell delegieren kannst.
Nutze sie, um GitHub Pull-Request-Reviews durchzuführen, Issues zu triagieren, Code-Analysen und -Modifikationen vorzunehmen und mehr – alles konversationell mit Qwen Code (z. B. @qwencoder fix this issue) direkt in deinen GitHub-Repositories.
Funktionen
- Automatisierung: Löse Workflows basierend auf Events (z. B. Öffnen eines Issues) oder Zeitplänen (z. B. nächtlich) aus.
- Bedarfsgesteuerte Zusammenarbeit: Löse Workflows in Issue- und Pull-Request-Kommentaren aus, indem du die Qwen Code CLI erwähnst (z. B.
@qwencoder /review). - Erweiterbar mit Tools: Nutze die Tool-Calling-Fähigkeiten der Qwen Code-Modelle, um mit anderen CLIs wie der GitHub CLI (
gh) zu interagieren. - Anpassbar: Verwende eine
QWEN.md-Datei in deinem Repository, um der Qwen Code CLI projektspezifische Anweisungen und Kontext bereitzustellen.
Schnellstart
Starte in wenigen Minuten mit der Qwen Code CLI in deinem Repository:
1. Qwen API Key besorgen
Beziehe deinen API Key von DashScope (der KI-Plattform von Alibaba Cloud).
2. Als GitHub Secret hinzufügen
Speichere deinen API Key als Secret mit dem Namen QWEN_API_KEY in deinem Repository:
- Gehe zu Settings > Secrets and variables > Actions deines Repositories
- Klicke auf New repository secret
- Name:
QWEN_API_KEY, Value: dein API Key
3. Deine .gitignore aktualisieren
Füge die folgenden Einträge zu deiner .gitignore-Datei hinzu:
# qwen-code-cli settings
.qwen/
# GitHub App credentials
gha-creds-*.json4. Workflow auswählen
Du hast zwei Möglichkeiten, einen Workflow einzurichten:
Option A: Setup-Befehl verwenden (Empfohlen)
-
Starte die Qwen Code CLI in deinem Terminal:
qwen -
Gib in der Qwen Code CLI in deinem Terminal Folgendes ein:
/setup-github
Option B: Workflows manuell kopieren
- Kopiere die vorgefertigten Workflows aus dem Verzeichnis
examples/workflowsin das Verzeichnis.github/workflowsdeines Repositories. Hinweis: Der Workflowqwen-dispatch.ymlmuss ebenfalls kopiert werden, da er die Ausführung der anderen Workflows auslöst.
5. Ausprobieren
Pull-Request-Review:
- Öffne einen Pull Request in deinem Repository und warte auf das automatische Review
- Kommentiere einen bestehenden Pull Request mit
@qwencoder /review, um ein Review manuell auszulösen
Issue-Triage:
- Erstelle ein Issue und warte auf die automatische Triage
- Kommentiere bestehende Issues mit
@qwencoder /triage, um die Triage manuell auszulösen
Allgemeine KI-Unterstützung:
- Erwähne in einem beliebigen Issue oder Pull Request
@qwencoder, gefolgt von deiner Anfrage - Beispiele:
@qwencoder explain this code change@qwencoder suggest improvements for this function@qwencoder help me debug this error@qwencoder write unit tests for this component
Workflows
Diese Action bietet mehrere vorgefertigte Workflows für verschiedene Anwendungsfälle. Jeder Workflow ist darauf ausgelegt, in das Verzeichnis .github/workflows deines Repositories kopiert und bei Bedarf angepasst zu werden.
Qwen Code Dispatch
Dieser Workflow fungiert als zentraler Dispatcher für die Qwen Code CLI und leitet Anfragen basierend auf dem auslösenden Event und dem im Kommentar angegebenen Befehl an den entsprechenden Workflow weiter. Eine detaillierte Anleitung zur Einrichtung des Dispatch-Workflows findest du in der Qwen Code Dispatch Workflow-Dokumentation.
Issue Triage
Diese Action kann verwendet werden, um GitHub Issues automatisch oder nach Zeitplan zu triagieren. Eine detaillierte Anleitung zur Einrichtung des Issue-Triage-Systems findest du in der GitHub Issue Triage Workflow-Dokumentation.
Pull Request Review
Diese Action kann verwendet werden, um Pull Requests automatisch zu reviewen, sobald sie geöffnet werden. Eine detaillierte Anleitung zur Einrichtung des Pull-Request-Review-Systems findest du in der GitHub PR Review Workflow-Dokumentation.
Qwen Code CLI Assistant
Dieser Action-Typ kann verwendet werden, um einen allgemeinen, konversationellen Qwen Code KI-Assistenten innerhalb von Pull Requests und Issues aufzurufen, um eine Vielzahl von Aufgaben zu erledigen. Eine detaillierte Anleitung zur Einrichtung des allgemeinen Qwen Code CLI Workflows findest du in der Qwen Code Assistant Workflow-Dokumentation.
Konfiguration
Inputs
-
qwen*api_key: (Optional) Der API Key für die Qwen API. -
qwen*cli_version: (Optional, Standard:latest) Die zu installierende Version der Qwen Code CLI. Kann “latest”, “preview”, “nightly”, eine spezifische Versionsnummer oder ein Git-Branch, -Tag oder -Commit sein. Weitere Informationen findest du unter Qwen Code CLI Releases . -
qwen*debug: (Optional) Aktiviert Debug-Logging und Output-Streaming. -
qwen*model: (Optional) Das Modell, das mit Qwen Code verwendet werden soll. -
prompt: (Optional, Standard:You are a helpful assistant.) Ein String, der an das--prompt-Argument der Qwen Code CLI übergeben wird. -
settings: (Optional) Ein JSON-String, der in.qwen/settings.jsongeschrieben wird, um die Projekt-Einstellungen der CLI zu konfigurieren. Weitere Details findest du in der Dokumentation zu Einstellungsdateien . -
use*qwen_code_assist: (Optional, Standard:false) Gibt an, ob Code Assist für den Zugriff auf Qwen Code-Modelle anstelle des standardmäßigen Qwen Code API Keys verwendet werden soll. Weitere Informationen findest du in der Qwen Code CLI-Dokumentation . -
use*vertex_ai: (Optional, Standard:false) Gibt an, ob Vertex AI für den Zugriff auf Qwen Code-Modelle anstelle des standardmäßigen Qwen Code API Keys verwendet werden soll. Weitere Informationen findest du in der Qwen Code CLI-Dokumentation . -
extensions: (Optional) Eine Liste der zu installierenden Qwen Code CLI-Erweiterungen. -
upload*artifacts: (Optional, Standard:false) Gibt an, ob Artefakte in die GitHub Action hochgeladen werden sollen. -
use*pnpm: (Optional, Standard:false) Gibt an, ob pnpm anstelle von npm zur Installation von qwen-code-cli verwendet werden soll. -
workflow*name: (Optional, Standard:${{ github.workflow }}) Der Name des GitHub Workflows, der für Telemetrie-Zwecke verwendet wird.
Outputs
-
summary: Die zusammengefasste Ausgabe der Qwen Code CLI-Ausführung. -
error: Die Fehlerausgabe der Qwen Code CLI-Ausführung, falls vorhanden.
Repository-Variablen
Wir empfehlen, die folgenden Werte als Repository-Variablen festzulegen, damit sie in allen Workflows wiederverwendet werden können. Alternativ kannst du sie inline als Action-Inputs in einzelnen Workflows festlegen, um Werte auf Repository-Ebene zu überschreiben.
| Name | Beschreibung | Typ | Erforderlich | Wann erforderlich |
|---|---|---|---|---|
DEBUG | Aktiviert Debug-Logging für die Qwen Code CLI. | Variable | Nein | Nie |
QWEN_CLI_VERSION | Steuert, welche Version der Qwen Code CLI installiert wird. | Variable | Nein | Pinning der CLI-Version |
APP_ID | GitHub App ID für benutzerdefinierte Authentifizierung. | Variable | Nein | Verwendung einer benutzerdefinierten GitHub App |
So fügst du eine Repository-Variable hinzu:
- Gehe zu Settings > Secrets and variables > Actions > New variable deines Repositories.
- Gib den Variablennamen und den Wert ein.
- Speichere die Änderungen.
Details zu Repository-Variablen findest du in der GitHub-Dokumentation zu Variablen .
Secrets
Du kannst die folgenden Secrets in deinem Repository festlegen:
| Name | Beschreibung | Erforderlich | Wann erforderlich |
|---|---|---|---|
QWEN_API_KEY | Dein Qwen API Key von DashScope. | Ja | Erforderlich für alle Workflows, die Qwen aufrufen. |
APP_PRIVATE_KEY | Privater Schlüssel für deine GitHub App (PEM-Format). | Nein | Verwendung einer benutzerdefinierten GitHub App. |
So fügst du ein Secret hinzu:
- Gehe zu Settings > Secrets and variables > Actions > New repository secret deines Repositories.
- Gib den Secret-Namen und den Wert ein.
- Speichere die Änderungen.
Weitere Informationen findest du in der offiziellen GitHub-Dokumentation zum Erstellen und Verwenden verschlüsselter Secrets .
Authentifizierung
Diese Action erfordert eine Authentifizierung gegenüber der GitHub API und optional gegenüber den Qwen Code-Diensten.
GitHub-Authentifizierung
Du kannst dich auf zwei Arten bei GitHub authentifizieren:
- Standard-
GITHUB_TOKEN: Für einfachere Anwendungsfälle kann die Action das vom Workflow bereitgestellte Standard-GITHUB_TOKENverwenden. - Benutzerdefinierte GitHub App (Empfohlen): Für die sicherste und flexibelste Authentifizierung empfehlen wir, eine benutzerdefinierte GitHub App zu erstellen.
Detaillierte Anleitungen zur Einrichtung der Authentifizierung für Qwen und GitHub findest du in der Authentifizierungsdokumentation.
Erweiterungen
Die Qwen Code CLI kann durch Erweiterungen um zusätzliche Funktionen erweitert werden. Diese Erweiterungen werden aus dem Quellcode ihrer GitHub-Repositories installiert.
Detaillierte Anleitungen zur Einrichtung und Konfiguration von Erweiterungen findest du in der Erweiterungsdokumentation.
Best Practices
Um die Sicherheit, Zuverlässigkeit und Effizienz deiner automatisierten Workflows zu gewährleisten, empfehlen wir dringend, unsere Best Practices zu befolgen. Diese Richtlinien decken Schlüsselbereiche wie Repository-Sicherheit, Workflow-Konfiguration und Monitoring ab.
Zu den wichtigsten Empfehlungen gehören:
- Sicherung deines Repositories: Implementierung von Branch- und Tag-Schutz sowie Einschränkung von Pull-Request-Approvern.
- Monitoring und Auditing: Regelmäßige Überprüfung der Action-Logs und Aktivierung von OpenTelemetry für tiefere Einblicke in Performance und Verhalten.
Einen umfassenden Leitfaden zur Sicherung deines Repositories und deiner Workflows findest du in unserer Best Practices-Dokumentation.
Anpassung
Erstelle eine QWEN.md-Datei im Root-Verzeichnis deines Repositories, um der Qwen Code CLI projektspezifischen Kontext und Anweisungen bereitzustellen. Dies ist nützlich, um Coding-Konventionen, Architekturmuster oder andere Richtlinien zu definieren, denen das Modell für ein bestimmtes Repository folgen soll.
Contributing
Beiträge sind willkommen! Wirf einen Blick in den Contributing Guide der Qwen Code CLI, um weitere Details zum Einstieg zu erhalten.