🤯
AI で書いたコードを AI にレビューさせる世界
最近、Devin を活用してからコード生成が爆速になっています
新規開発であれば、2 週間で 10 万行くらいコード書けることも実証済みです
ただここで困っているのがレビューです
大量に生成されたコードのレビューがしんどすぎます
そこで AI にコードレビューさせてみました。
採用したのは PR-Agent です
PR-Agent は、Qodo 社(旧:Codium-AI 社)が提供する、AI コードレビューツールです。
repository: https://github.com/qodo-ai/pr-agent
以下のような設定を作成しました(サンプルとは異なり、devin の PR を無視しないように bot の生成した PR を無視しないようにしています
.github/workflows/pr_agent.yml
on:
pull_request:
types: [opened, reopened, ready_for_review]
issue_comment:
jobs:
pr_agent_job:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
name: Run pr agent on every pull request, respond to user comments
steps:
- name: PR Agent action step
id: pragent
uses: qodo-ai/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
結果、AI が PR を作成し
AI がコードレビューをし
AI がそれを自動で修正する世界が生まれました
以下がレビューされた結果の例です
「セキュリティホール空いてますよ」とか「このエラー処理甘いっす」とか、
人間のレビュアーみたいなことを言ってきます
// 修正前: セキュリティの問題
@Controller('api')
export class ApiController {
// ...
}
// 修正後: 認証ガードの追加
@Controller('api')
@UseGuards(JwtAuthGuard)
export class ApiController {
// ...
}
// 修正前: エラーハンドリングの改善
try {
await processData();
} catch (error) {
console.error(error);
}
// 修正後: ちゃんとしたエラー処理
try {
await processData();
} catch (error) {
if (error instanceof ValidationError) {
throw new BadRequestException(error.message);
}
throw new InternalServerErrorException("データ処理中にエラーが発生しました");
}
もっと精度を上げれば、実際の開発で使えそう
大量のコード生成が可能になった結果、コードレビューの負担がボトルネックになりつつあります。
そのため、大量に生成したコードをレビューする仕組みが必須になると考えています
この記事 のように諸々 PR-Agent の設定を試して精度を上げていきたいです。
Discussion