6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pr-agentを入れてみるテスト

Last updated at Posted at 2024-02-13

ai-pr-reviewerが有料になってるので、pr-agentを検証しました。
どっちも触ってみた感想ですが、レビューの仕方はこちらの方が好みです。
自前でsecretsにOPENAI_API_KEYを用意しておいてください。

Codium-ai/pr-agent: 🚀CodiumAI PR-Agent: An AI-Powered 🤖 Tool for Automated Pull Request Analysis, Feedback, Suggestions and More! 💻🔍 https://github.com/Codium-ai/pr-agent

Workflow サンプル

.github/workflow/pr-agent.yml
name: Code Review

permissions:
  issues: write
  pull-requests: write

on:
  pull_request:
    types: [opened, reopened, ready_for_review, review_requested]
  issue_comment:
    types: [created, edited]
  workflow_dispatch:

concurrency:
  group: ${{ github.repository }}-${{ github.event.number || github.head_ref || github.sha }}-${{ github.workflow }}-${{ github.event_name == 'pull_request_review_comment' && 'pr_comment' || 'pr' }}
  cancel-in-progress: ${{ github.event_name != 'pull_request_review_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

    if: ${{ github.event.sender.type != 'Bot' }}
    env:
      COMMON_INSTRUCTIONS: >-
        - 日本語で回答してください
        - 以下の原則に従ってコメントしてください。
          - URLなどの構造化テキストを文字列結合で作ってはいけない。
          - 置換でいじってはいけない。
          - オブジェクトまたはライブラリを使ってください。
          - 利用技術
            - Next.js@13
            - React@18
            - Typescript@5.3
    steps:
      - name: PR Agent action step
        id: pragent
        uses: Codium-ai/pr-agent@main
        env:
          OPENAI_KEY: ${{ secrets.OPENAI_API_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GITHUB_ACTION.AUTO_REVIEW: true
          GITHUB_ACTION.AUTO_IMPROVE: true

          # レビュー総評コメントである "PR Feedback" への追加プロンプト
          PR_REVIEWER.EXTRA_INSTRUCTIONS: ${{ env.COMMON_INSTRUCTIONS }}
          # プルリクの要約 "PR Descrition" に関する追加プロンプト
          PR_DESCRIPTION.EXTRA_INSTRUCTIONS: >-
            日本語で回答してください。
            タイトルは feat: 、chore: 、test: 、fix: 、ci: 、docs: などの
            commitlint パターンの接頭辞を含む必要があります。
          # /improve で呼び出す修正コードの "Suggestion" 時の追加プロンプト
          PR_CODE_SUGGESTIONS.EXTRA_INSTRUCTIONS: ${{ env.COMMON_INSTRUCTIONS }}
          # /improve コメントの後に提案されるコードの数。
          PR_CODE_SUGGESTIONS.NUM_CODE_SUGGESTIONS: 2
          # Modelを変更
          CONFIG.MODEL: gpt-3.5-turbo-0613

設定ファイル サンプル

ENVでパラメータを渡す以外にも、.pr_agent.tomlにまとめることもできます。
サンプルです。

.pr_agent.toml
[config]
model = "gpt-4o"
enable_custom_labels = true

[ignore]
glob = ['dist/**']

[pr_reviewer]
num_code_suggestions = 4
inline_code_comments = true
remove_previous_review_comment = true
enable_auto_approval = true
extra_instructions = """\
- 日本語で回答してください
- 以下の原則に従ってコメントしてください
  - URLなどの構造化テキストを文字列結合で作ってはいけない
  - 置換でいじってはいけない
  - オブジェクトまたはライブラリを使ってください
  - 利用技術
    - Node v20
    - TypeScript
    - Github Actions
"""


[pr_description]
ask_and_reflect = true
automatic_review = true
persistent_comment = true
enable_review_labels_security = true
enable_review_labels_effort = true
require_all_thresholds_for_incremental_review = false
minimal_commits_for_incremental_review = 2
minimal_minutes_for_incremental_review = 10
enable_help_text = false
enable_auto_approval = true
maximal_review_effort = 5
extra_instructions = """\
- 必ず日本語で回答してください
- タイトルは feat:, chore:, test:, fix:, ci:, docs: などのcommitlint パターンの接頭辞を含む
"""

[pr_code_suggestions]
summarize = true
num_code_suggestions = 4
extra_instructions = """\
- 必ず日本語で回答してください
- 以下の原則に従ってコメントしてください
  - URLなどの構造化テキストを文字列結合で作ってはいけない
  - 置換でいじってはいけない
  - オブジェクトまたはライブラリを使ってください
  - 利用技術
    - Node v20
    - TypeScript
    - Github Actions
"""

[pr_update_changelog]
push_changelog_changes = false
extra_instructions = """\
- 必ず日本語で回答してください
- 以下の原則に従ってコメントしてください
  - URLなどの構造化テキストを文字列結合で作ってはいけない
  - 置換でいじってはいけない
  - オブジェクトまたはライブラリを使ってください
  - 利用技術
    - Node v20
    - TypeScript
    - Github Actions
"""

[pr_add_docs]
extra_instructions = """\
- 必ず日本語で回答してください
- 以下の原則に従ってコメントしてください
  - URLなどの構造化テキストを文字列結合で作ってはいけない
  - 置換でいじってはいけない
  - オブジェクトまたはライブラリを使ってください
  - 利用技術
    - Node v20
    - TypeScript
    - Github Actions
"""

[github_action_config]
auto_review = true
auto_describe = true
auto_improve = true

[custom_labels."Link Update"]
description = "Whenever any link in the code is updated"

[custom_labels."Code Update"]
description = "Whenever any code is updated"

image.png

参考

【ChatGPT + PR Agent + GitHub Actions】 プルリクの AI コードレビューを10分で自動化し、レビューのルールを詳細にカスタマイズする - GMOインターネットグループ グループ研究開発本部 https://recruit.gmo.jp/engineer/jisedai/blog/chatgpt-pr-agent-github-actions/

coderabbitai/ai-pr-reviewer: AI-based Pull Request Summarizer and Reviewer with Chat
Capabilities. https://github.com/coderabbitai/ai-pr-reviewer

6
3
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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?