Github Actions:qwen-code-action
概要
qwen-code-action は、Qwen Code CLI を介して開発ワークフローに Qwen Code を統合する GitHub Action です。これは、重要な日常的なコーディングタスクの自律エージェントとして機能するだけでなく、迅速に作業を委任できるオンデマンドのコラボレーターとしても機能します。
GitHub リポジトリ内で直接、Qwen Code を使用して会話形式(例:@qwencoder fix this issue)で GitHub プルリクエストのレビュー、問題のトリアージ、コード分析と修正などを実行するために使用します。
機能
- 自動化: イベント(例: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 (アリババクラウドのAIプラットフォーム)からAPIキーを取得してください。
2. GitHubシークレットとして追加する
APIキーを QWEN_API_KEY という名前のシークレットとしてリポジトリに保存します:
- リポジトリの Settings > Secrets and variables > Actions に移動します
- New repository secret をクリックします
- Name:
QWEN_API_KEY、Value: あなたのAPIキー
3. .gitignoreを更新する
以下のエントリを .gitignore ファイルに追加してください:
# qwen-code-cli 設定
.qwen/
# GitHub App 認証情報
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を追加して、手動でレビューをトリガーする
イシューのトリアージ:
- イシューを開き、自動トリアージを待つ
- 既存のイシューにコメント
@qwencoder /triageを追加して、手動でトリアージをトリガーする
一般的なAIアシスタント機能:
- 任意のイシューまたはプルリクエストで、
@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 ディスパッチ
このワークフローは、Qwen Code CLI の中央ディスパッチャーとして機能し、トリガーイベントとコメント内のコマンドに基づいて適切なワークフローにリクエストをルーティングします。ディスパッチワークフローの設定方法に関する詳細ガイドについては、Qwen Code ディスパッチワークフローのドキュメント を参照してください。
Issue トリアージ
このアクションは、GitHub Issues を自動的にまたはスケジュールに従ってトリアージするために使用できます。Issue トリアージシステムの設定方法に関する詳細ガイドについては、GitHub Issue トリアージワークフローのドキュメント を参照してください。
Pull Request レビュー
このアクションは、プルリクエストがオープンされた際に自動的にレビューを行うために使用できます。プルリクエストレビューシステムの設定方法に関する詳細ガイドについては、GitHub PR レビュー ワークフローのドキュメント を参照してください。
Qwen Code CLI アシスタント
このタイプのアクションは、プルリクエストやイシュー内で汎用的な会話型 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 Actions にアップロードするかどうか。 -
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 ドキュメント を参照してください。
シークレット
リポジトリに以下のシークレットを設定できます:
| 名前 | 説明 | 必須 | 必須となるタイミング |
|---|---|---|---|
QWEN_API_KEY | DashScope から取得した Qwen API キー。 | はい | Qwen を呼び出すすべてのワークフローで必要。 |
APP_PRIVATE_KEY | GitHub App の秘密鍵(PEM 形式)。 | いいえ | カスタム GitHub App を使用する場合。 |
シークレットを追加するには:
- リポジトリの Settings > Secrets and variables > Actions > New repository secret に移動します。
- シークレット名と値を入力します。
- 保存します。
詳しくは、暗号化されたシークレットの作成と利用に関する公式 GitHub ドキュメント をご参照ください。
認証
このアクションでは、GitHub API への認証、およびオプションで Qwen Code サービスへの認証が必要です。
GitHub 認証
GitHub への認証には以下の 2 つの方法があります。
- デフォルトの
GITHUB_TOKEN: よりシンプルなユースケースでは、ワークフローによって提供されるデフォルトのGITHUB_TOKENを使用できます。 - カスタム GitHub App(推奨): 最も安全で柔軟な認証を行うために、カスタム GitHub App の作成を推奨します。
Qwen および GitHub 認証の詳細なセットアップ手順については、
認証ドキュメント を参照してください。
拡張機能
Qwen Code CLI は、拡張機能を通じて追加の機能で拡張できます。
これらの拡張機能は、GitHub リポジトリからソースコードをインストールして利用します。
拡張機能のセットアップと設定方法の詳細については、
拡張機能ドキュメント を参照してください。
ベストプラクティス
自動化ワークフローのセキュリティ、信頼性、効率を確保するために、ベストプラクティスに従うことを強く推奨します。これらのガイドラインは、リポジトリのセキュリティ、ワークフロー設定、モニタリングなどの主要分野をカバーしています。
主な推奨事項:
- リポジトリの保護: ブランチとタグの保護を実装し、プルリクエストの承認者を制限する。
- モニタリングと監査: アクションログを定期的に確認し、パフォーマンスと動作の詳細なインサイトを得るためにOpenTelemetryを有効にする。
リポジトリとワークフローを保護する包括的なガイドについては、ベストプラクティスドキュメントをご参照ください。
カスタマイズ
プロジェクト固有のコンテキストと指示をQwen Code CLIに提供するために、リポジトリのルートにQWEN.mdファイルを作成してください。これは、コーディング規約、アーキテクチャパターン、または特定のリポジトリでモデルが従うべきその他のガイドラインを定義するのに役立ちます。
コントリビューションについて
コントリビューションを歓迎します!詳しくは Qwen Code CLI の「コントリビューションガイド」をご確認ください。スタート方法についてはこちらをご覧ください。