Github Actions:qwen-code-action
概要
qwen-code-action は、Qwen Code CLI を介して Qwen Code を開発ワークフローに統合する GitHub Action です。日常的なコーディングタスクのための自律エージェントとして動作するとともに、必要なときに作業を迅速に委任できるオンデマンドのコラボレーターとしても機能します。
これを使用して、GitHub リポジトリ内で Qwen Code と会話形式で(例:@qwencoder fix this issue)プルリクエストレビュー、Issue のトリアージ、コード分析や修正などを行うことができます。
機能
- 自動化: イベント(例:Issue のオープン)やスケジュール(例:毎晩)に基づいてワークフローをトリガーします。
- オンデマンドコラボレーション: Issue やプルリクエストのコメントで Qwen Code CLI をメンション(例:
@qwencoder /review)することでワークフローをトリガーします。 - ツールで拡張可能: Qwen Code モデルのツール呼び出し機能を活用して、GitHub CLI (
gh) などの他の CLI と連携できます。 - カスタマイズ可能: リポジトリ内の
QWEN.mdファイルを使用して、Qwen Code CLI にプロジェクト固有の指示やコンテキストを提供できます。
クイックスタート
わずか数分でリポジトリに Qwen Code CLI を導入できます。
1. Qwen API キーを取得する
DashScope (Alibaba Cloud の AI プラットフォーム)から API キーを取得します。
2. GitHub Secrets に追加する
API キーを QWEN_API_KEY という名前の Secret としてリポジトリに保存します。
- リポジトリの Settings > Secrets and variables > Actions に移動します。
- New repository secret をクリックします。
- Name:
QWEN_API_KEY、Value: ご自身の API キーを入力します。
3. .gitignore を更新する
.gitignore ファイルに以下のエントリを追加します。
# qwen-code-cli settings
.qwen/
# GitHub App credentials
gha-creds-*.json4. ワークフローを選択する
ワークフローをセットアップするには、2つのオプションがあります。
オプション A: セットアップコマンドを使用 (推奨)
-
ターミナルで Qwen Code CLI を起動します。
qwen -
ターミナルの Qwen Code CLI で、次のように入力します。
/setup-github
オプション B: 手動でワークフローをコピーする
examples/workflowsディレクトリから、リポジトリの.github/workflowsディレクトリにビルド済みワークフローをコピーします。 注:qwen-dispatch.ymlワークフローも必ずコピーしてください。これがワークフローを実行するトリガーとなります。
5. 試してみる
プルリクエストレビュー:
- リポジトリでプルリクエストを開き、自動レビューを待ちます。
- 既存のプルリクエストに
@qwencoder /reviewとコメントして、手動でレビューをトリガーします。
Issue のトリアージ:
- Issue を開き、自動トリアージを待ちます。
- 既存の Issue に
@qwencoder /triageとコメントして、手動でトリアージをトリガーします。
一般的な AI アシスタンス:
- Issue またはプルリクエストで、
@qwencoderに続けてリクエストを入力します。 - 例:
@qwencoder explain this code change@qwencoder suggest improvements for this function@qwencoder help me debug this error@qwencoder write unit tests for this component
ワークフロー
このアクションは、さまざまなユースケースに対応するビルド済みワークフローを提供します。各ワークフローは、リポジトリの .github/workflows ディレクトリにコピーし、必要に応じてカスタマイズできるように設計されています。
Qwen Code Dispatch
このワークフローは Qwen Code CLI の中央ディスパッチャーとして機能し、トリガーイベントとコメントで指定されたコマンドに基づいて、適切なワークフローにリクエストをルーティングします。ディスパッチワークフローのセットアップ方法の詳細なガイドについては、Qwen Code Dispatch ワークフロードキュメント を参照してください。
Issue トリアージ
このアクションは、GitHub Issues を自動的、またはスケジュールに従ってトリアージするために使用できます。動作する Issue トリアージのセットアップ例については、自動 Issue トリアージワークフロー を参照してください。
プルリクエストレビュー
このアクションは、プルリクエストがオープンされたときに自動的にレビューするために使用できます。プルリクエストレビューシステムのセットアップ方法の詳細なガイドについては、GitHub PR レビューワークフロードキュメント を参照してください。
Qwen Code CLI アシスタント
このタイプのアクションは、プルリクエストや Issue 内で汎用的な会話型の Qwen Code AI アシスタントを呼び出し、さまざまなタスクを実行するために使用できます。汎用 Qwen Code CLI ワークフローのセットアップ方法の詳細なガイドについては、Qwen Code アシスタントワークフロードキュメント を参照してください。
設定
入力
-
qwen*api_key: *(任意)_ Qwen API の API キー。 -
qwen*cli_version: *(任意、デフォルト:latest)_ インストールする Qwen Code CLI のバージョン。“latest”、“preview”、“nightly”、特定のバージョン番号、または git ブランチ、タグ、コミットを指定できます。詳細については、Qwen Code CLI リリース を参照してください。 -
qwen*debug: *(任意)_ デバッグログと出力ストリーミングを有効にします。 -
qwen*model: *(任意)_ Qwen Code で使用するモデル。 -
prompt: (任意、デフォルト:You are a helpful assistant.) Qwen Code CLI の--prompt引数 に渡される文字列。 -
settings: (任意) CLI のプロジェクト設定を構成するために.qwen/settings.jsonに書き込まれる JSON 文字列。 詳細については、設定ファイルに関するドキュメント を参照してください。 -
use*qwen_code_assist: *(任意、デフォルト:false)_ デフォルトの Qwen Code API キーの代わりに Code Assist を使用して Qwen Code モデルにアクセスするかどうか。 詳細については、Qwen Code CLI ドキュメント を参照してください。 -
use*vertex_ai: *(任意、デフォルト:false)_ デフォルトの Qwen Code API キーの代わりに Vertex AI を使用して Qwen Code モデルにアクセスするかどうか。 詳細については、Qwen Code CLI ドキュメント を参照してください。 -
extensions: (任意) インストールする Qwen Code CLI 拡張機能のリスト。 -
upload*artifacts: *(任意、デフォルト:false)_ アーティファクトを GitHub Action にアップロードするかどうか。 -
use*pnpm: *(任意、デフォルト:false)_ qwen-code-cli のインストールに npm の代わりに pnpm を使用するかどうか。 -
workflow*name: *(任意、デフォルト:${{ github.workflow }})_ テレメトリー目的で使用される GitHub ワークフロー名。
出力
リポジトリ変数
以下の値はリポジトリ変数として設定し、すべてのワークフローで再利用することを推奨します。または、個々のワークフローでアクション入力としてインラインで設定したり、リポジトリレベルの値を上書きすることもできます。
| 名前 | 説明 | タイプ | 必須 | 必要な場合 |
|---|---|---|---|---|
DEBUG | Qwen Code CLI のデバッグログを有効にします。 | 変数 | いいえ | なし |
QWEN_CLI_VERSION | インストールする Qwen Code CLI のバージョンを制御します。 | 変数 | いいえ | CLI バージョンを固定する場合 |
APP_ID | カスタム認証用の GitHub App ID。 | 変数 | いいえ | カスタム GitHub App を使用する場合 |
リポジトリ変数を追加するには:
- リポジトリの Settings > Secrets and variables > Actions > New variable に移動します。
- 変数名と値を入力します。
- 保存します。
リポジトリ変数の詳細については、GitHub の変数に関するドキュメント を参照してください。
Secrets
以下の Secrets をリポジトリに設定できます。
| 名前 | 説明 | 必須 | 必要な場合 |
|---|---|---|---|
QWEN_API_KEY | DashScope からの Qwen API キー。 | はい | Qwen を呼び出すすべてのワークフローで必須。 |
APP_PRIVATE_KEY | GitHub App の秘密鍵(PEM 形式)。 | いいえ | カスタム GitHub App を使用する場合。 |
Secret を追加するには:
- リポジトリの Settings > Secrets and variables > Actions > New repository secret に移動します。
- Secret 名と値を入力します。
- 保存します。
詳細については、暗号化された Secrets の作成と使用に関する公式 GitHub ドキュメント を参照してください。
認証
このアクションは、GitHub API と、オプションで Qwen Code サービスへの認証を必要とします。
GitHub 認証
GitHub への認証方法は 2 つあります。
- デフォルトの
GITHUB_TOKEN: よりシンプルなユースケースでは、ワークフローが提供するデフォルトのGITHUB_TOKENを使用できます。 - カスタム GitHub App (推奨): 最も安全で柔軟な認証のために、カスタム GitHub App を作成することを推奨します。
Qwen 認証と GitHub 認証の両方の詳細なセットアップ手順については、認証ドキュメント を参照してください。
拡張機能
Qwen Code CLI は、拡張機能を通じて追加機能で拡張できます。これらの拡張機能は、それぞれの GitHub リポジトリからソースコードとしてインストールされます。
拡張機能のセットアップと設定方法の詳細については、拡張機能ドキュメント を参照してください。
ベストプラクティス
自動ワークフローのセキュリティ、信頼性、効率性を確保するために、ベストプラクティスに従うことを強く推奨します。これらのガイドラインは、リポジトリのセキュリティ、ワークフロー構成、監視などの主要な領域をカバーしています。
主な推奨事項:
- リポジトリの保護: ブランチ保護とタグ保護の実装、プルリクエスト承認者の制限。
- 監視と監査: アクションログの定期的な確認、OpenTelemetry の有効化によるパフォーマンスと動作の詳細な分析。
リポジトリとワークフローを保護するための包括的なガイドについては、ベストプラクティスドキュメント を参照してください。
カスタマイズ
リポジトリのルートに QWEN.md ファイルを作成して、Qwen Code CLI にプロジェクト固有のコンテキストと指示を提供します。これは、特定のリポジトリに対してモデルが従うべきコーディング規約、アーキテクチャパターン、その他のガイドラインを定義するのに便利です。
コントリビューション
コントリビューションを歓迎します! 始め方の詳細については、Qwen Code CLI の コントリビューションガイド を参照してください。