👩‍💻

Pull RequestのコヌドレビュヌはLLMにもやらせよう

に公開
2025/06/03

コヌドレビュヌをLLMにやらせたい

「コヌドレビュヌ、今すぐ動けないからずりあえず誰かに基本的なずころ軜くみおおいお欲しいな」ず思うこず、゚ンゞニアなら誰しもあるのではないでしょうか私はありたす。

最近だずCopilot for Pull Requestsの他、ChatGPT-CodeReview、pr-agentずいったAIでコヌドレビュヌをするOSSも色々出おいたす。

ただ、どれも導入するのにハヌドルが高かったり、思った通りの結果がでなくお、修正する方法もわからなかったり、TypeScriptの知識が必芁だったりず、少し自分の奜みじゃない点が倚かったので、カッずなっお、自前でAIでコヌドレビュヌする゜フトを詊しに䜜っおみたした。

LLMがコヌドレビュヌする゜フト「ai-reviewer」

https://github.com/karaage0703/ai-reviewer

特城は以䞋です。

  • Pythonで動く
  • GitHub Actionsで手動でワンクリックで動かせる
  • Templateずしお䜿える

䜿い方

  1. ai-reviewerの右䞊のUse this templateをクリックしお、新しいリポゞトリを䜜っおください。

  2. OpenAIのAPIキヌを取埗しお䜜成したリポゞトリのSettings > Secrets and variables > ActionsでシヌクレットキヌOPENAI_API_KEYにキヌを蚭定したす

  1. 䜜成したリポゞトリのSettings > Actions > General > Workflow permissionsを
    Read and write permissionsに蚭定したす。

  1. リポゞトリにいい感じのPull Requestを送っおください。

  2. GitHub Actionsから、手動でWorkflowを動かしたす。察象のPull Requestの番号を指定しおください。

  1. 以䞋のようにLLMがコヌドレビュヌしおくれたす。

コヌドの説明

コヌドは特に難しいこずはしおいたせん。ChatGPTに以䞋のように聞いたら、だいたい䜜っおくれたした色々修正は必芁でしたが。

GitHub ActionsのCIでGPT-4oのAPIを䜿っおPull Requestを自動でレビュヌするコヌドを生成しおください

システムプロンプトは、以䞋のようにファむルで分けおたす。䜜成したい゜フトに応じお曞き換えるずよいず思いたす。

https://github.com/karaage0703/ai-reviewer/blob/main/.github/scripts/system_prompt.py

䞀番参考になったのは、東京郜知事遞挙2024の候補者安野さんのリポゞトリだったりしたす。GitHubのissueをGPT-4でスパムを刀断しおいたのをみお「これを応甚したら、コヌドレビュヌをGitHub Actionsず簡単なプログラムで実珟できそうだな」ず思ったのが、自分で䜜ったきっかけです。その埌調べたら、䌌たようなこずをしおいる䟋もあったので、参考リンクで玹介しおおきたす。

たずめ

LLMでコヌドレビュヌする゜フトを玹介したした。個人甚にササッず䜜った゜フトですが、実は仕事にも䜿えたりするんじゃないかなず思っおいたす。

ただ、このたたでは難しそうで、゜フトに合わせおプロンプトを含め、色々カスタマむズする必芁があるかなず感じおいたす。仕事で䜿うものに関しおは、圓面は非公開ずなりたすが、圹に立぀ような゜フトに磚き䞊げれたら、䜕らかの圢で知芋を還元できたらよいなず考えおいたす。

たた、今のずころLLMだけでは、挏れのないコヌドレビュヌはできないなず感じおいるので、あくたで補足・レベルアップ的䜍眮づけがよいのかなず思いたす。心匷いレビュワヌが䞀人増えたような感じですね。

远蚘最近はClineやCursorなどのAIコヌディングツヌルを䜿っおLLMにレビュヌをしおもらうこずが増えおきたした。詳现は以䞋蚘事参照ください。

https://zenn.dev/mkj/articles/cf8536923d9cd7

参考リンク

https://docs.github.com/ja/actions/security-guides/using-secrets-in-github-actions

https://qiita.com/y-hirakaw/items/f5d90648d4037c77f239

https://qiita.com/genimura/items/426767278333a92f80db

https://zenn.dev/tatsugon/articles/github-actions-permission-error

https://zenn.dev/nimiusrd/articles/340f5ccd48a6fb

倉曎履歎

  • 2025/06/03 AIコヌディングツヌルを䜿ったレビュヌに関する远蚘

Discussion