omc-ado-review
Azure DevOpsリポジトリにおけるプルリクエストレビューのワークフローです。ユーザーがAzure DevOpsでプルリクエストのレビュー、レビュアーの追加、レビューコメントの作成、プルリクエストへの投票、またはプルリクエストスレッドの管理を行いたい場合に使用できます。プルリクエストの作成(git-masterエージェントを使用)、スプリント計画(omc-ado-sprintを使用)、作業項目の分類(omc-ado-triageを使用)、またはADO以外のリポジトリには使用しないでください。
description の原文を見る
Pull request review workflow for Azure DevOps repositories. WHEN: User wants to review PRs, add reviewers, create review comments, vote on PRs, or manage PR threads in Azure DevOps. DO NOT USE FOR: Creating PRs (use git-master agent), sprint planning (use omc-ado-sprint), work item triage (use omc-ado-triage), or non-ADO repositories.
SKILL.md 本文
OMC ADO Review
Azure DevOps プルリクエストレビュー全体を実行します。.omcp/config.json から接続設定を読み込み、オープン PR を一覧表示し、既存のレビュースレッドを表示し、コメント追加、レビュアー管理、PR ステータス更新をサポートします。
このスキルが呼び出されたときは、以下のワークフローを直ちに実行してください。これらの指示を言い換えたり、要約したりするだけではいけません。
トリガーパターン
- "ado review"
- "review pr"
- "review pull request"
- "add reviewer"
- "pr comments"
- "vote on pr"
- "manage pr threads"
- "omc-ado-review"
ステップ 1: 設定を読み込む
.omcp/config.json を読み込みます:
cat .omcp/config.json 2>/dev/null || echo "NOT_FOUND"
ado キーから以下を抽出します:
org— 組織の完全な URL(例:https://dev.azure.com/contoso)project— ADO プロジェクト名repo— リポジトリ名
設定が見つからないか ado キーがない場合は、ユーザーに /oh-my-copilot:omc-ado-setup を最初に実行するよう指示して終了します。
ステップ 2: オープン PR を一覧表示
設定されたリポジトリのすべてのアクティブなプルリクエストを取得します。
MCP(推奨):
mcp__azure-devops__repo_list_pull_requests_by_repo_or_project
→ repositoryId: "{repo}"
→ project: "{project}"
→ status: "active"
az CLI フォールバック:
az repos pr list \
--repository "{repo}" \
--project "{project}" \
--org "{org}" \
--status active \
-o json 2>&1
結果をテーブルで表示します:
### オープン プルリクエスト ({N})
| ID | タイトル | 作成者 | ターゲットブランチ | レビュアー | 経過時間 |
|----|---------|--------|------------------|-----------|--------|
| !42 | Add retry logic | alice | main | 3 中 2 承認 | 3 日 |
| !43 | Fix login timeout | bob | dev | 投票なし | 1 日 |
各 PR について、レビュアーの投票ステータスを要約します:
-10= 却下-5= 作成者の対応待ち0= 投票なし5= 提案付きで承認10= 承認
オープン PR がない場合は「(0)」と報告し、ユーザーに特定の PR ID で確認したいかを尋ねます。
ステップ 3: レビュー対象の PR を選択
ユーザーにリストから PR を選択するよう促すか、PR ID を直接受け付けます。
完全な PR 詳細を取得します:
MCP(推奨):
mcp__azure-devops__repo_get_pull_request_by_id
→ pullRequestId: {prId}
→ project: "{project}"
az CLI フォールバック:
az repos pr show \
--id {prId} \
--org "{org}" \
-o json 2>&1
要約を表示します:
### PR !{id}: {title}
作成者: {author}
ソース: {sourceBranch} → {targetBranch}
作成日時: {createdDate}
説明: {description}
作業項目: #{id} {title}
レビュアー: {name} ({voteLabel}), ...
自動完了: {有効/無効}
ステップ 4: 変更をレビュー
既存のレビュースレッドとコメントを取得して、新しいフィードバックを追加する前に、現在のレビュー状態を把握します。
4a. PR スレッドを一覧表示:
MCP(推奨):
mcp__azure-devops__repo_list_pull_request_threads
→ repositoryId: "{repo}"
→ pullRequestId: {prId}
→ project: "{project}"
4b. スレッドコメントを読む(アクティブなスレッドの場合):
MCP(推奨):
mcp__azure-devops__repo_list_pull_request_thread_comments
→ repositoryId: "{repo}"
→ pullRequestId: {prId}
→ threadId: {threadId}
→ project: "{project}"
スレッドの要約を表示します:
### レビュースレッド({N} アクティブ、{N} 解決済み)
| スレッド | ファイル | コメント | 作成者 | ステータス |
|---------|---------|---------|--------|-----------|
| #1 | src/auth.ts:42 | "Should handle null case" | charlie | アクティブ |
| #2 | — (全般) | "LGTM overall" | alice | 解決済み |
スレッドがない場合は「レビュースレッドはまだありません」と記載します。
ステップ 5: レビューコメントを追加
新しいレビューフィードバックをスレッドとして作成します。スレッドは特定のファイル/行をターゲットにするか、一般的な PR レベルのコメントにできます。
ファイルレベルのコメント:
MCP(推奨):
mcp__azure-devops__repo_create_pull_request_thread
→ repositoryId: "{repo}"
→ pullRequestId: {prId}
→ project: "{project}"
→ comments: [{ content: "{comment}", commentType: 1 }]
→ threadContext: { filePath: "{filePath}", rightFileStart: { line: {lineNumber}, offset: 1 }, rightFileEnd: { line: {lineNumber}, offset: 1 } }
→ status: 1
一般的な PR コメント:
MCP(推奨):
mcp__azure-devops__repo_create_pull_request_thread
→ repositoryId: "{repo}"
→ pullRequestId: {prId}
→ project: "{project}"
→ comments: [{ content: "{comment}", commentType: 1 }]
→ status: 1
az CLI フォールバック:
az repos pr comment create \
--id {prId} \
--content '{comment}' \
--org "{org}" \
-o json 2>&1
既存スレッドに返信:
MCP(推奨):
mcp__azure-devops__repo_reply_to_comment
→ repositoryId: "{repo}"
→ pullRequestId: {prId}
→ threadId: {threadId}
→ project: "{project}"
→ content: "{reply}"
az CLI フォールバック:
az repos pr comment create \
--id {prId} \
--content '{reply}' \
--reply-id {commentId} \
--thread-id {threadId} \
--org "{org}" \
-o json 2>&1
各アクション後に確認します:
PR !{id} の {filePath}:{line} にコメントを追加しました
ステップ 6: レビュアーを管理
PR からレビュアーを追加または削除します。
MCP(推奨):
mcp__azure-devops__repo_update_pull_request_reviewers
→ repositoryId: "{repo}"
→ pullRequestId: {prId}
→ project: "{project}"
→ reviewers: [{ id: "{userId}", vote: 0, isRequired: true }]
レビュアーのユーザー ID を見つけるには、以下を使用します:
mcp__azure-devops__core_get_identity_ids
→ identities: ["{email or display name}"]
az CLI フォールバック:
az repos pr reviewer add \
--id {prId} \
--reviewers "{email}" \
--org "{org}" \
-o json 2>&1
レビュアーを削除するには:
az repos pr reviewer remove \
--id {prId} \
--reviewers "{email}" \
--org "{org}" \
-o json 2>&1
確認:
PR !{id} に {name} をレビュアーとして追加しました
ステップ 7: PR ステータスを更新
投票を投じる、自動完了を有効にする、ドラフトステータスを設定する、または PR を放棄/再度有効にします。
MCP(推奨):
mcp__azure-devops__repo_update_pull_request
→ repositoryId: "{repo}"
→ pullRequestId: {prId}
→ project: "{project}"
→ [以下の 1 つ以上のフィールド:]
status: "active" | "abandoned" | "completed"
isDraft: true | false
autoCompleteSetBy: { id: "{userId}" }
mergeStrategy: "squash" | "rebase" | "rebaseMerge" | "noFastForward"
投票を投じる(承認/却下)には、レビュアーエントリを更新します:
mcp__azure-devops__repo_update_pull_request_reviewers
→ reviewers: [{ id: "{currentUserId}", vote: 10 }]
(vote: 10=承認、5=提案付きで承認、0=投票なし、-5=作成者の対応待ち、-10=却下)
az CLI フォールバック:
# ステータスを設定
az repos pr update \
--id {prId} \
--status {active|abandoned|completed} \
--org "{org}" \
-o json 2>&1
# 投票(承認)
az repos pr set-vote \
--id {prId} \
--vote approve \
--org "{org}" \
-o json 2>&1
# 自動完了を有効化
az repos pr update \
--id {prId} \
--auto-complete true \
--merge-strategy squash \
--org "{org}" \
-o json 2>&1
確認:
PR !{id} を更新しました: {変更内容}
MCP ツールリファレンス
| ツール | 目的 |
|---|---|
repo_list_pull_requests_by_repo_or_project | オープン PR を一覧表示 |
repo_get_pull_request_by_id | PR 詳細を取得 |
repo_create_pull_request_thread | レビューコメントスレッドを作成 |
repo_list_pull_request_threads | 既存の PR スレッドを一覧表示 |
repo_list_pull_request_thread_comments | スレッドコメントを読む |
repo_reply_to_comment | 既存スレッドに返信 |
repo_update_pull_request_reviewers | レビュアーを追加/削除 |
repo_update_pull_request | PR ステータス/プロパティを更新 |
az CLI フォールバックコマンド
MCP ツールが現在のセッションで利用できない場合に使用してください:
# オープン PR を一覧表示
az repos pr list \
--repository "{repo}" --project "{project}" --org "{org}" \
--status active -o table
# PR 詳細を表示
az repos pr show --id {prId} --org "{org}" -o json
# コメントを追加
az repos pr comment create \
--id {prId} --content '{comment}' --org "{org}" -o json
# コメントを一覧表示
az repos pr comment list --id {prId} --org "{org}" -o table
# レビュアーを追加
az repos pr reviewer add \
--id {prId} --reviewers "{email}" --org "{org}" -o json
# PR に投票
az repos pr set-vote \
--id {prId} --vote {approve|reject|wait|reset} --org "{org}" -o json
# PR ステータスを更新
az repos pr update --id {prId} --status {status} --org "{org}" -o json
エラーハンドリング
| エラー | 対応 |
|---|---|
.omcp/config.json が見つからない | ユーザーに /oh-my-copilot:omc-ado-setup を最初に実行するよう指示 |
az login が必要 | ユーザーに認証を求めます。中止しません — そのセクションをスキップ |
| PR が見つからない | PR ID を確認し、設定内のリポジトリ名が ADO と一致することを確認 |
| レビュアーの ID が見つからない | core_get_identity_ids を使用してユーザーをメールで検索します。ユーザーに完全なメールアドレスを提供するよう促す |
| 投票の権限がない | ユーザーがレビュアーとしてリストされていない可能性があります。ステップ 6 を通じてまず自分を追加 |
| スレッド更新が失敗 | スレッドがまだ「アクティブ」であることを確認してください。解決済みのスレッドには新しい返信を受け取ることができません |
| レート制限 / 429 | 2 秒待機して 1 回再試行します。それでも失敗する場合は、そのセクションを利用不可として記載 |
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- RobinNorberg
- ライセンス
- MIT
- 最終更新
- 2026/5/12
Source: https://github.com/RobinNorberg/oh-my-copilot / ライセンス: MIT