DEV Community

Cover image for CodiumAI PR-Agent,在 GitHub 上用 AI 來 Code Review
Let's Write
Let's Write

Posted on • Originally published at letswrite.tw

CodiumAI PR-Agent,在 GitHub 上用 AI 來 Code Review

本篇要解決的問題

上次寫了一篇〈CodiumAI PR-Agent,在 GitLab 上用 AI 來 Code Review〉,原本在最後說下一篇會寫的是自己做一個用 AI 來 Code Review 的文章。

但這週下班後,在幫朋友寫一些東西時,發現常用的還是 GitHub 平台,而且加了 AI Code Review,真的是很有幫助,所以就決定先寫這篇 GitHub 使用的筆記文。

因為大部份的工跟 GitLab 那篇幾乎相同,所以這篇就是速速的寫。

本篇主要是用 GitHub Action 的方式,參考資源:

GitHub Run as a GitHub Action


準備好必要東西:GitHub 帳號、OpenAI API Key

GitHub 帳號,應該大部份的工程師大大們都有了,這邊就跳過。

OpenAI API Key,上一篇的段落已經寫過,就不再重寫,請看:OpenAI API Key


GitHub 專案,設定 secret 變數

OpenAI API Key 不能外露,因此需要像 .env 檔一樣,將其設定為隱藏變數。

在 GitHub 建立好專案後,點擊:Settings > Secrets and variables > Actions > New repository secret:

在 GitHub 專案的設定頁面中,如何進入 Secrets and variables > Actions 以新增 OpenAI API Key 的畫面

在建立 secrect 時,要填寫二個欄位。

Name:填上 OPENAI_KEY

Secret:填寫「OpenAI API Key」的那一串。

在 GitHub 的 New repository secret 頁面上填寫 OpenAI API Key 的名稱和密鑰欄位

填寫之後,點擊「Add secret」,就新增成功。


提交必要檔案

接著,我們把官方提供的程式碼,提交到 GitHub 專案上,就可以使用 AI Code Review 了。

1 .pr_agent.toml

先推送 .pr_agent.toml 檔案的原因,在 GitLab 那篇有完整的說明,簡單來說,就是要省 $$。

專案根目錄下,新增名為「.pr_agent.toml」的檔案,檔案內容如下:

[config]
model = "gpt-4o-mini-2024-07-18"
model_turbo = "gpt-4o-mini-2024-07-18"
fallback_models = ["gpt-4o-mini-2024-07-18", "gpt-4o-mini"]
Enter fullscreen mode Exit fullscreen mode

這個檔案建立了以後,先提交到 GitHub 上。

pr_agent.yml

這個檔名跟前一個相同,只是副檔名不同,是要觸發 GitHub Action 用的。

我們專案的根目錄,建立 GitHub Action 用的資料夾跟檔案:

.github/workflows/pr_agent.yml

pr_agent.yml 的檔案內容如下:

on:
  pull_request:
    types: [opened, reopened, ready_for_review]
  issue_comment:
jobs:
  pr_agent_job:
    if: ${{ github.event.sender.type != 'Bot' }}
    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: Codium-ai/pr-agent@main
        env:
          OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Enter fullscreen mode Exit fullscreen mode

這段程式碼的最後,有看到 secrets 除了 OPENAI_KEY 之外,其實還需要另一個 GITHUB_TOKEN,這一點官方文件上說,GitHub 會自行生成,所以我們不用擔心。

檔案建立完成後,可以立即提交,也可以等到開發完成某個階段後再提交。

這個檔案一提交上去,之後只要有合併請求,就會自動觸發 AI Code Review。


測試一下威力

跟在 GitLab 時一樣,我們也來看一下 GitHub 上的 AI Code Review。

提交程式碼後,點擊 Pull Request,其實 AI 回應的東西蠻多的,上一篇 GitLab 只截圖了其中一小塊,這次就把收到的所有內容都一次截圖下來:

顯示在 GitHub 的 Pull Request 頁面中,AI Code Review 自動生成的回饋內容範例,包含程式碼檢查和建議


再小結一次

自從加進了 AI Code Review,在寫程式上真的覺得有幫助,最簡單的比方拼錯字,都會被指出來。

AI 也會另外提供一些沒意料到的 Bug,有幾次真的是看到 AI 的回饋,才想到漏寫、漏想了什麼。

GitHub 安裝方式因為不用再手動建立 GitHub Token,所以比 GitLab 又少了一個步驟,要安裝很容易。

最近一直在想,該怎麼樣把更多的 AI 打進工作流裡,減少人力的負擔,把工作心力可以釋放到其他區塊上。

有把 AI 大量應用在工作、生活上的棒油們,歡迎留言提供你的作法~

Top comments (0)