0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

過去のコードレビューから自分用のレビュアーを作る

Posted at

はじめに

まず、VSCodeのGitHub Copilotではレビューをしてもらえる機能があります

こういうやつ↓

image.png

今回は、過去のコードレビューからカスタム指示(custom instructions)用のファイルを作成し、自分用のレビュアーを作ってみました

レビューコメントの収集

以下のようなシェルスクリプトを作成して、結果をファイルに出力します

例)hoge.sh > hoge.txt

  • レビューコメントを詳細に取得する gh のコマンドが見つからなかったので、gh api を使用(もしかしたら現在はあるかも)
  • org、repo、user、limitは個人に合わせて指定(一応、limitは1000とかでも行けました)
  • 自分のコメントはノイズだったので除外するようにしてます
#!/bin/bash

org='<組織名>'
repo='<リポジトリ名>'
user='<ユーザー名>'
limit=<取得件数>

pr_numbers=$(gh pr list \
    --repo $org/$repo \
    --author $user \
    --state 'all' \
    --json number \
    --jq '.[].number' \
    --limit $limit)

for number in $pr_numbers; do
    gh api \
        -H 'Accept: application/vnd.github+json' \
        -H 'X-GitHub-Api-Version: 2022-11-28' \
        /repos/$org/$repo/pulls/$number/comments \
        --jq "
            .[]
            | select(.user.login != \"${user}\")
            | \"### [\(.id)]\n\n\`\`\`\n\(.diff_hunk)\n\`\`\`\n\n\(.body)\n\n\"
        "
    done

ChatGPTに投げる

作成したファイルを添付して、CopilotやChatGPTやGeminiなどに雑に投げます

  • プロンプトは雰囲気でそれっぽいのを書いてます
あなたは優秀なバックエンドエンジニアです。参考情報を元にタスクに取り組んでください

### 参考情報
- 添付したファイルは過去のコードレビューのコメント
- 以下はGitHub Copilotのカスタム指示についてのページ
  - https://docs.github.com/ja/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot

### タスク
1. 添付ファイルを元にレビューの意図を理解する
2. レビュー内容を汎用化して整理する
3. レビュー項目としてまとめる

### フォーマット
- markdown形式にすること
- LLMが理解しやすい形式にすること
  - GitHub Copilotのカスタム指示(レビュー用)で利用する

ChatGPTに投げた例です。

ファイル添付しても Deep Research が使えることをこの時初めて知りました🧐

添付したファイルだけをひたすら読みまくっていて新鮮、1つの資料をしっかりと見てくれるのは色々と使い道ありそう

image.png
image.png

カスタム指示の設定

  • 返ってきた内容を整理して .github/.copilot-review-instructions.md に追加
  • VSCode の settings.jsongithub.copilot.chat.reviewSelection.instructions の部分を追加で完了
{
	...
  "github.copilot.chat.reviewSelection.instructions": [
    {
      "file": ".copilot-review-instructions.md"
    }
  ]
}

おわりに

どこまでちゃんとレビューしてくれるかはこれからのところです!

コンテキスト莫大になったり、フィルタリング結構必要になりますが、リポジトリ全体で作ってみるのも良さそうです

以上雑記事でした🙇‍♂️
少しでも参考になれば幸いです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?