GitHub Actions:qwen-code-action
概要
qwen-code-action は、Qwen Code CLI を通じて Qwen Code を開発ワークフローに統合する GitHub アクションです。これは、重要な日常的なコーディングタスクを自律的に実行するエージェントとしても機能し、また必要に応じて素早く作業を委任できるコラボレーターとしても機能します。
GitHub のプルリクエストレビュー、課題のトリアージ、コード解析および修正などの作業を、Qwen Code を会話形式で(例:@qwencoder この課題を修正してください)直接 GitHub リポジトリ内で実行するためにご利用ください。
機能
- 自動化: イベント(例:イシューの作成)やスケジュール(例:毎晩実行)に基づいてワークフローを起動します。
- オンデマンドなコラボレーション: イシューおよびプルリクエストのコメント内で Qwen Code CLI をメンションすることでワークフローを起動します(例:
@qwencoder /review)。 - ツールによる拡張性: Qwen Code モデルのツール呼び出し機能を活用し、GitHub CLI (
gh) などの他の CLI と連携できます。 - カスタマイズ可能: リポジトリ内に
QWEN.mdファイルを作成して、プロジェクト固有の指示やコンテキストを Qwen Code CLI に提供できます。
クイックスタート
数分で、お使いのリポジトリにて Qwen Code CLI を始められます。
1. Qwen API キーを取得する
API キーは Alibaba Cloud の AI プラットフォームである DashScope から取得してください。
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: setup コマンドを使用(推奨)
-
ターミナルで 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 このコード変更を説明してください@qwencoder この関数の改善案を提案してください@qwencoder このエラーのデバッグを手伝ってください@qwencoder このコンポーネントのユニットテストを書いてください
ワークフロー
このアクションでは、さまざまなユースケース向けに事前に構築された複数のワークフローが提供されています。各ワークフローは、リポジトリの .github/workflows ディレクトリにコピーし、必要に応じてカスタマイズできるよう設計されています。
Qwen Code Dispatch
このワークフローは、Qwen Code CLI の中央ディスパッチャーとして機能し、トリガーイベントおよびコメント内のコマンドに応じて、適切なワークフローへリクエストをルーティングします。Dispatch ワークフローのセットアップ方法については、Qwen Code Dispatch ワークフローのドキュメント を参照してください。
Issue トリアージ
このアクションは、GitHub Issue を自動的または定期的にトリアージするために使用できます。Issue トリアージシステムのセットアップ方法については、GitHub Issue トリアージ ワークフローのドキュメント を参照してください。
プルリクエストのレビュー
このアクションは、プルリクエストが作成された際に自動でレビューを行うために使用できます。プルリクエストレビュー機能のセットアップ方法については、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 モデルへのアクセスに、デフォルトの Qwen Code API キーではなく Code Assist を使用するかどうか。
詳細については、Qwen Code CLI のドキュメント を参照してください。 -
use*vertex_ai: (任意、デフォルト:false)Qwen Code モデルへのアクセスに、デフォルトの Qwen Code API キーではなく Vertex AI を使用するかどうか。
詳細については、Qwen Code CLI のドキュメント を参照してください。 -
extensions: (任意)インストールする Qwen Code CLI 拡張機能のリスト。 -
upload*artifacts: (任意、デフォルト:false)アーティファクトを GitHub アクションにアップロードするかどうか。 -
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 の コントリビューションガイド をご覧ください。