程式碼審查
程式碼審查
在 ChatGPT 和 Codex 客戶端中審查程式碼更改
- ChatGPT 桌面應用 在桌面端處理專案、檔案和耗時較長的任務。
- ChatGPT 網頁版 在瀏覽器中使用聊天、專案和 Work。
- Codex CLI 在終端中使用 Codex。
- Codex IDE 擴充套件 在編輯器中使用 Codex。
使用 ChatGPT 或 Codex 瞭解程式碼更改、排查潛在問題, 並準備審查回饋。
PR審查
Code Review 外掛會顯示PR的描述、變更檔案、 評論和檢查結果。使用它在核准前排查潛在問題。
GitHub 程式碼審查已正式推出。Code Review 對 GitLab 合併請求的支援
目前處於預覽階段。要通過 GitLab 使用
@codex review 或自動合併請求審查觸發雲端審查,請參閱
使用 Codex 審查 GitLab 合併請求。
有關由儲存庫觸發的審查,請參閱 GitHub 整合 指南和 Codex Cloud (Legacy) 環境 設定。
桌面應用內建了 Code Review。你可以從已安裝的外掛中 將它置頂到應用側邊欄。
檢視PR
- 從側邊欄開啟 Code Review。
- 根據提示連線你的程式碼託管帳號。請使用有權存取 待審查儲存庫的帳號。
- 從側邊欄選擇一個PR,或在搜尋框中輸入其連結。
- 檢視摘要,瞭解描述、動態、評論和檢查結果。開啟 變更,對照差異檢視變更檔案和評論。
尋找需要關注的審查
使用個人收件箱尋找各個儲存庫中的 GitHub PR。 選擇分配給我 檢視請求你審查的內容,選擇分配給我的 團隊 檢視團隊收到的請求,或選擇由我建立 返回你自己的變更。 檢視審查狀態,然後開啟PR,檢查回饋和檢查結果。
要稍後返回某項審查,請選擇其工具欄中的置頂圖示。該PR 會顯示在側邊欄的已置頂 下。
檢查變更檔案和相關PR
在變更 中,審查完檔案後,選擇該檔案上的標記為已檢視。再次選擇 此控制項即可清除標記。已檢視標記僅適用於當前顯示的 修訂版本。
對於分散在相互依賴的PR中的變更,使用摘要 中的堆疊 開啟相關PR,檢查其差異、評論和檢查結果。 當 Code Review 發現一組尚未關閉的堆疊式PR時,會顯示此部分。
檢視自動雲端審查
連線 ChatGPT Codex 連接器、授予所需的儲存庫權限並啟用自動 審查後,Codex 就可以在你開啟 GitHub PR之前對其進行審查。 評論會顯示在 GitHub 和 Code Review 中。
雲端審查無需你建立或管理雲端環境。
有關連線要求、儲存庫設定以及通過
@codex review 觸發的審查,請參閱在 GitHub 中使用 Codex。
對照差異核查審查發現。自動雲端審查與 你在PR聊天中發起的審查相互獨立。
針對變更提問
在PR的聊天中,描述預期行為,並讓 Codex 解釋或調查這項變更。
選擇使用 Codex 審查,在新聊天中開始審查。如果你正在現有聊天旁 檢視PR,可以在該聊天中針對變更提問。
使用已安裝的技能和已連線的資料來源,向 Codex 提供團隊的審查 指南或設計文件。讓它總結變更並說明 風險,然後核實它引用的上下文和程式碼。
例如,某個PR為議題看板添加了未關閉 和已關閉 篩選器。你希望全部 仍為預設選項,並在沒有 匹配議題時顯示空狀態:
Walk me through this pull request. Focus on the default filter and what
happens when there are no matching issues. All should remain the default.要求提供依據:
Show me the code path and tests for the no-matches case. Explain what is
covered and what still needs verification.對照預期行為檢查所引用的差異和測試。
選擇一項審查發現,在變更 中檢視其說明和相關程式碼行。 先結合最新差異、預期行為和測試進行核查,再決定 是否需要修復。使用審查聊天停止正在執行的審查。
自定義審查
選擇使用 Codex 審查 旁的審查指令 齒輪圖示。你也可以 在設定 > Code Review 中編輯這些指令。
向 Codex 提供適用於所有審查的標準和報告格式, 例如:
Start with a short summary. Prioritize behavior changes, data loss, and
missing edge-case tests. For each finding, explain the triggering input,
expected behavior, and actual behavior. Use our team's concise review style.這些指令適用於你在各個儲存庫中通過使用 Codex 審查 發起的 審查。在審查執行期間做出的修改會在下次審查時生效。 針對某項變更的具體問題,請使用PR聊天。
你還可以選擇漫畫、視覺化 或 PDF,新增一條建議 指令,以相應格式解釋變更。根據需要編輯文本, 然後選擇儲存 或執行審查。
分享回饋並跟進
在聊天中審查PR不會發布評論、核准或合併該請求。 由你決定分享哪些審查發現。
確認問題後,讓 Codex 幫你起草審查評論:
Using the team review guidelines we discussed, draft a comment describing
the no-matches behavior we verified, what should happen instead, and the test
that would cover it. Keep the comment as a draft.發布前,檢查草稿中引用的檔案和行號。在準備好之前,將草稿保留在聊天中: 在摘要 或變更 中發布評論,會立即將評論傳送到 程式碼託管平台,無需等待提交審查。
使用提交審查 選擇評論、核准 或請求更改, 並將審查傳送到程式碼託管平台。提交前,檢查所選結論和 審查評論。
如果你是作者,請返回自己的PR,讓 Codex 處理 具體回饋。檢查生成的變更,並執行相關測試。 核准或合併前,檢查最新修訂版本、檢查結果和 尚未處理的回饋。
Code Review 不支援編輯附帶圖片的PR 描述。請在 GitHub 中開啟PR,編輯這些描述。
在聊天中繼續
當摘要 中顯示會話 時,選擇其中連結的聊天即可返回該 對話。這些是你與該PR關聯的聊天。
在 Codex 中,對尚未關閉的PR,在檢查 中選擇修復,將失敗的 檢查附加到聊天中。這會準備一條訊息,但不會傳送。檢查或補充 提示詞,然後傳送訊息,讓 Codex 調查。推送修復前,檢查生成的 變更並重新執行相關測試。
可用的診斷資訊取決於檢查提供方。對於第三方 CI, Codex 可以使用上報到 GitHub 的狀態和輸出。
審查本機變更
Codex 內建的 /review 命令用於審查 Git 工作副本中的變更,而
Code Review 外掛用於審查PR。
選擇你使用的客戶端,檢視相應步驟。
在 ChatGPT Work 中,上傳要審查的程式碼,或通過已安裝的源程式碼 外掛提供程式碼。在提示詞中說明拉取 請求、分支、提交、檔案和審查標準。
在應用中審查
開啟審查窗格,瞭解發生了哪些更改、提供針對具體行的回饋, 並決定要暫存、還原、提交或推送哪些內容。
要讓 Codex 審查更改,請在輸入框中輸入 /review。選擇
與基礎分支比較審查 或審查未提交的更改。Codex 會報告
按優先順序排列的發現,但不會更改工作樹。
審查窗格要求專案位於 Git 儲存庫中。如果專案 還不是 Git 儲存庫,應用會提示你建立一個。
輸入 /review 以開啟 CLI 審查預設。Codex 會啟動專用審查器,
讀取所選差異,並報告按優先順序排列且可付諸行動的發現,
而不會更改工作樹。
在 IDE 擴充套件輸入框中輸入 /review。選擇與基礎
分支比較審查 或審查未提交的更改。Codex 會報告按優先順序排列的發現,
但不會更改工作樹。
只有當開啟的專案位於 Git
儲存庫中時,/review 命令才會出現。
選擇審查範圍
在提示詞中指定要檢查的PR、分支、提交或檔案。要 審查無法通過已安裝的源程式碼外掛存取的本機檔案,請將其 上傳到聊天中。
顯示哪些更改
審查窗格反映的是 Git 儲存庫的狀態,而不僅是 Codex 編輯的內容。它包括 Codex 所做的更改、你自己所做的更改,以及 儲存庫中的所有其他未提交更改。
預設情況下,審查窗格顯示未暫存 更改。使用已暫存 檢視 Git 索引,使用提交 檢視選定提交,使用分支 檢視與 基礎分支的差異,或使用上一輪 檢視最近一次助手響應輪次。
審查多個儲存庫
當本機專案包含多個資料夾, 且這些資料夾分別由不同 Git 儲存庫支援時,審查窗格可以顯示每個 儲存庫的更改。開啟審查標題欄中的儲存庫選擇器,即可檢查 另一個儲存庫並檢視新增或刪除的行,無需離開 當前審查窗格。
選擇上一輪 可檢視助手在所有已附加 儲存庫中所做的最新更改。在此檢視中,儲存庫選擇器會顯示所有儲存庫。其他 審查範圍(例如未暫存、已暫存 和分支)適用於你 選擇的儲存庫。
選擇以下 /review 範圍之一:
- 與基礎分支比較審查 會尋找合併基點並審查你的分支差異。
- 審查未提交的更改 包括已暫存、未暫存和未跟蹤的檔案。
- 審查提交 會審查選定提交的確切更改集。
- 自定義審查說明 會按照你提供的標準進行重點審查。
選擇以下 /review 範圍之一:
- 與基礎分支比較審查 會將當前分支與所選分支進行比較。
- 審查未提交的更改 會審查工作樹中的更改。
處理審查結果
審查發現會顯示在網頁聊天中。你可以要求提供證據、請求範圍 更窄的後續審查,或讓 ChatGPT 準備修訂後的檔案。
程式碼審查結果
審查發現會以行內註釋的形式顯示在審查窗格中。
預設情況下,審查在當前聊天中執行。在設定 > 通用 > 程式碼審查 下,選擇獨立 以啟動單獨的審查聊天。請參閱 開發者設定。
審查會作為一輪響應顯示在對話記錄中。如果希望審查使用不同於當前
會話的模型,請在 config.toml 中設定 review_model。
預設情況下,審查在當前聊天中執行。如果希望 /review
啟動單獨的審查聊天,請將 chatgpt.reviewDelivery 設為
detached。請參閱 IDE 擴充套件設定參考。
如果你讓 ChatGPT 準備修訂後的檔案,聊天可用的工具和工作區 權限仍然適用。
如果你讓 Codex 應用它發現的修復,你的常規沙箱和核准 設定仍然適用。
瀏覽審查窗格
- 點選檔名通常會在你選擇的編輯器中開啟該檔案。你 可以在開發者設定中選擇預設編輯器。
- 點選檔名的背景區域可展開或摺疊差異。
- 按住 Command 並點選某一行,會在你選擇的編輯器中開啟該行。
- 如果你對某項變更滿意,可以暫存該變更或撤銷不需要的變更。
使用行內註釋提供回饋
行內註釋可讓你將回饋直接附加到差異中的特定行。 這通常是引導 Codex 找到正確修復方法的最快方式。
要留下行內註釋:
- 開啟審查窗格。
- 將滑鼠懸停在要評論的行上。
- 選擇出現的 + 按鈕。
- 編寫並提交回饋。
- 留完回饋後,向聊天傳送一條訊息。
由於註釋針對具體行,與一般性說明相比,Codex 可以作出 更精確的響應。
Codex 將行內註釋視為審查指導。留下注釋後,請傳送一條 明確說明意圖的後續訊息,例如:“處理行內註釋,並將更改範圍保持在最低限度。”
暫存和還原檔案
審查窗格包含 Git 操作,供你在提交前調整 差異。
你可以在以下級別暫存、取消暫存或還原更改:
- 整個差異:使用審查標題欄中的操作按鈕,例如全部暫存 或全部還原。
- 按檔案:暫存、取消暫存或還原單個檔案。
- 按區塊:暫存、取消暫存或還原單個區塊。
要接受部分工作時使用暫存;要丟棄更改時使用 還原。
已暫存和未暫存狀態
Git 可以在同一檔案中同時表示已暫存和未暫存的更改。發生這種 情況時,該窗格可能會在兩個檢視中顯示同一檔案。這是正常的 Git 行為。