Azure DevOps 服務
Important
本功能目前為有限預覽。
由於 Microsoft 分階段推出預覽功能,部分功能可能尚未在你的環境中提供。 功能可能會在無預警的情況下變更或移除。 預覽功能沒有服務水準協議(SLA),且支援有限。
使用 GitHub Copilot 來檢視 Azure Repos 中的拉取請求。 Copilot 就像自動審查員一樣,會針對修改後的程式碼發表評論和建議,所以在人工審核員簽核前,你就能收到回饋。
使用此功能時,Project Collection 管理員會為組織啟用此功能,Project 管理員負責管理 project 層級的預設值與儲存庫覆蓋,儲存庫管理員在允許覆寫時設定個別儲存庫,個別使用者則透過預覽功能選擇加入(除非管理員啟用所有人的預覽功能)。
先決條件
| 類別 | Requirements |
|---|---|
| 組織 | Azure DevOps 中的組織 |
| 存放庫 | A Git repository in Azure Repos. TFVC 不被支援。 |
| 組織權限 | Project Collection Administrator 以啟用組織層級的此功能。 |
| 專案權限 | Project 管理員可在 project 層級啟用此功能。 |
| 存放庫權限 | 當專案設定允許覆寫時,存放庫擁有者或管理員可啟用此功能,並為存放庫設定預設的審查工作量。 |
| 帳單 | 已連結至您的 Azure DevOps 組織的 Azure 訂閱。 Copilot 程式碼審查使用量會透過 Azure 成本管理 計費。 詳情請參見 帳單。 |
啟用 Copilot 程式碼審查
在組織層級
專案集合管理員必須先為組織啟用 Copilot 程式碼審查,專案擁有者才能針對個別專案和存放庫啟用。
如果你選擇組織層級的「全部啟用」選項,組織內每個專案及其每個儲存庫都會啟用 Copilot 程式碼審查。 你不需要分別啟用每個專案或儲存庫。
登入您的 Azure DevOps 組織 (
https://dev.azure.com/{yourorganization})。選擇 組織設定>存放庫>存放庫。
在 GitHub Copilot 程式碼審查 下,將 允許此組織中的存放庫使用 Copilot 程式碼審查 切換為 開啟。
在專案層級
啟用組織層級存取後,Project 管理員可選擇性地在 project 層級啟用此功能。 此選項提供細緻控制,決定組織內哪些專案可以使用 Copilot 程式碼審查。
如果你選擇專案層級的「全部啟用」選項,Copilot 程式碼審查會對該專案中的每個儲存庫啟用。 你不需要分別啟用每個儲存庫。
選取 專案設定>存放庫>存放庫。
在 GitHub Copilot 程式碼審查下,將 啟用此專案的 Copilot 程式碼審查 設為 開啟。
此設定適用於專案中的所有儲存庫,除非在儲存庫層級另行設定。 你仍然可以根據需要為個別倉庫啟用或關閉此功能。
在儲存庫層級
啟用組織層級存取(可選專案層級存取)後,儲存庫擁有者會為每個應該使用該儲存庫開啟 Copilot 程式碼審查。
選取 專案設定>存放庫>存放庫。
選擇你想啟用的儲存庫。
在 Settings 索引標籤上,將 Enable Copilot code review for pull requests in this repository 切換為 On。
要驗證此功能是否啟用,請打開儲存庫中的任何拉取請求。 GitHub Copilot 現在應該會顯示在 Reviewers 列表中作為可用審稿人。
設定 Copilot 程式碼審查
在這三個層級都啟用此功能後,你可以設定 Copilot 在你的存放庫中審查提取要求的方式。
設定預設的檢閱工作量
審查工作控制 Copilot 對拉取請求分析的徹底程度。 專案管理員負責設定專案中所有儲存庫的預設工作量,並決定倉庫管理員是否能覆寫該作業。 使用者可在個別審查中選擇不同的工作量等級,而無需更改專案或儲存庫預設值。
較高的努力度通常會消耗更多代幣,並可能增加評論成本。 如需詳細資訊,請參閱帳單。
設定專案預設值
選取 專案設定>存放庫>存放庫。
在 GitHub Copilot 程式碼審查中,從預設工作量層級中選擇一個選項。
若要讓儲存庫管理員設定不同的預設值,請選擇 「允許個別儲存庫設定自己的預設作業量等級」。 清除此選項,要求所有倉庫使用專案預設值。
設定儲存庫預設值
若專案允許儲存庫覆寫,儲存庫管理員可設定不同的預設值:
- 選取 專案設定>存放庫>存放庫。
- 選擇儲存庫,然後選擇 設定 標籤。
- 在 GitHub Copilot 程式碼審查中,從預設工作量層級中選擇一個選項。
如果專案不允許儲存庫覆寫, 預設作業等級 為唯讀,並顯示繼承的專案設定。
設定自動審查政策
Copilot 可以自動審查 Pull Request,不需要手動提出要求。 若要啟用自動審查,請為每個你希望 Copilot 審查提取要求的目標分支設定分支原則。
功能啟用與自動審查是分開的設定。 啟用 Copilot 程式碼審查後,程式碼會被儲存庫存取。 當拉取請求針對已設定的分支時,分支政策會自動請求 Copilot 審查。
您必須擁有編輯分行政策的權限。 欲了解更多資訊,請參閱 「設定與管理分支政策」。
- 選取 [存放庫>分支]。
- 找出你想讓 Copilot 審查提取要求的目標分支。
- 選擇分支旁的 「更多選項 」圖示,然後選擇 分支政策。
- 啟用自動請求 Copilot 程式碼審查政策。
對於每個您想要啟用自動審查的目標分支,請重複這些步驟。 你仍然可以在 pull request 中選擇 GitHub Copilot 旁邊的請求,手動請求額外的審查。
選擇代理人池
Copilot 程式碼審查是透過使用 Azure Pipelines 代理池執行審查工作。 預設情況下,它會使用你組織中預設的 Azure Pipelines 池。
有些組織會關閉預設的 Azure Pipelines 池。 在這種設定下,Copilot code review 必須等到您選取受支援的替代集區後才能執行。
如果你的組織已經設定了受管理的 DevOps 池,你可以選擇它來執行 Copilot 程式碼審查,而不是預設的池。
在為 Managed DevOps Pool 選取映像時,請確保選擇最新的 Ubuntu Server。
Windows 映像檔不支援 Copilot 程式碼審查。 不要在同一個集區中混用 Ubuntu 和 Windows 代理程式。
Note
自架代理池不支援 Copilot 程式碼審查。
選擇 組織設定>存放庫>存放庫。
在 GitHub Copilot 程式碼審查中,從下拉選單選擇運算池。
你組織的運算池設定決定了可用的運算池。 若無可用的池,請聯絡您的組織管理員。
選取 [儲存]。
選取的集區會負責處理您組織中各存放庫的所有 Copilot 程式碼審查。 您可以隨時變更這項設定。 若要為不同專案或倉庫使用不同的池,請透過 管理型 DevOps 池來設定池的指派。
自訂 Copilot 的審核行為
關於如何使用自訂指令與代理技能來調整 Copilot 的程式碼審查回饋,請參閱「配置 Copilot 程式碼審查指令」。
使用 Copilot 程式碼審查
當你在全部三個範圍中啟用此功能時,就可以要求 Copilot 審查提取要求。 以下章節說明可期待的內容。
請求審查
預設情況下,GitHub Copilot 只會在你要求時審查拉取請求:
開啟提取要求。
在審核者區塊中,請使用以下選項之一,位於 GitHub Copilot 旁邊:
- 要使用該倉庫的預設工作量等級,請選擇 請求。
- 若要使用此評測不同的努力等級,請開啟 「請求 」旁的下拉選單並選擇努力等級。
請等評論完成。 審查可能需要幾分鐘,視倉庫大小及拉取請求的變更數量而定。 審查結束後,狀態會變為 審查已完成。
如果 Copilot 發現潛在問題,會直接在拉取請求中加入評論和建議,供你檢視並處理。
所選的努力程度僅適用於該審查。 Azure DevOps 會記錄 pull request 活動中的請求者和工作量等級。
閱讀 Copilot 的留言
- Copilot 會在提取要求中,以名為 GitHub Copilot 的一般審查者身分發表意見。
- 每則註解都會出現在該程式碼行中,並在可能的情況下附上建議變更,您可以一鍵套用。
- Copilot總是會留下Comment的評論。 它從不批准提取要求,也不會要求變更,因此其審查不符合必填審查者政策,也不會阻止合併。
- Copilot 的評論表現得像是人類評論者的評論。 你可以回覆他們、回應他們、解決他們,或是隱藏他們。 Copilot 不看回覆,也不會跟進。
新提交後重新審查
Copilot 不會在你推送新的提交時自動重新審查提取要求。 在提交後若要重新取得審查,請在 Reviewers 清單中,再次選取 GitHub Copilot 旁的 Request。
取消進行中的審查
如果程式碼審查比預期更久,或你需要停止審查,你可以取消審查執行。
- 開啟 Copilot 目前正在審查的提取要求。
- 在審核者區塊,GitHub Copilot 旁邊,選擇取消按鈕(或選擇更多選項>取消審核)。
- 出現提示時,確認取消。
評論立即停止,且不再新增評論。 部分審查結果(包括在取消前新增的留言)仍會保留在 Pull Request 中。 您可以隨時申請新的審查。
要求與限制
預覽期間適用以下要求與限制,且可能有所變動。
Copilot 只會在 pull request 符合以下條件時審查:
| 需求 | 價值 |
|---|---|
| 提取要求狀態 | 現役 |
| 拉取請求合併狀態 | 無合併衝突(合併成功) |
| 儲存庫大小 | 10 GB 或以下 |
| 提取要求中變更的檔案 | 100 個檔案或更少 |
| 提取要求中的變更數量 | 100次或更少的變動 |
這些並發與速率限制也適用於:
| 極限 | 價值 |
|---|---|
| 在同一個拉取請求版本上重複審查 | 每合併提交完成一次審查 |
| 每個提取要求的並行審查 | 1 |
| 每個組織的並行審查 | 5 |
| 每位用戶同時評論 | 2 |
計費
每次完成一次程式碼審查都會消耗代幣,包括你傳送給模型的輸入代幣、模型產生的輸出代幣,以及重複使用現有上下文的快取代幣。 每次評論使用的代幣會轉換成一個標準的計費單位,稱為 GitHub AI 信用點,其中 1 點數等於 0.01 美元。
所選的審查工作會影響消費。 較高的努力層級通常會分析更多的上下文,並比起較低的努力層級消耗更多 Token。 拉取請求大小、儲存庫自訂指令及模型變更也可能影響消耗。 有關目前的參考範圍與注意事項,請參見 預估消耗。
關於 Copilot 程式碼審查計費及成本的常見問題解答,請參閱「排除 Copilot 程式碼審查問題」。
收費會匯入與你 Azure DevOps 組織連結的 Azure 訂閱,並在 Azure 成本管理 中以獨立的計量表顯示。 要估算環境中的預期成本,請啟用此功能給一到兩個儲存庫,比較審查工作量,並監控每日使用情況。
Important
費用會在程式碼審查完成後 48 小時才顯示於 Azure 入口網站。
Azure 成本管理
若要查看每日收費:
在 Azure 入口網站 中,移至您的訂用帳戶。
選取 [成本管理] [成本分析]。
要篩選 Copilot Code Review,請選擇:
- 計量類別:GitHub
- Meter 子分類:GitHub Copilot for AzDO
請依組織與專案篩選或分組,使用以下標籤:
- 標籤:
_organizationname_ - 標籤:
_projectname_
設定預算提醒
建立一個 Azure 預算,當支出達到你設定的門檻時會通知你。 預算只會通知你。 他們不會停止評論或更改任何資源。 您需要在與 Azure DevOps 組織連結的訂閱上擁有擁有者、貢獻者或成本管理貢獻者權限。
在 Azure 入口網站中,開啟與您的 Azure DevOps 組織連結的訂用帳戶。
選擇 成本管理>預算,然後選擇 新增。
在篩選條件下,新增產品篩選器,並選擇 GitHub Copilot for AzDO。
如果訂閱連結到多個 Azure DevOps 組織,請新增標籤篩選器,並選擇你想讓警示鎖定的組織名稱標籤。 如果有專案標籤,你也可以依專案標籤篩選或分組,建立專案層級的預算警示。
輸入預算名稱,選擇重置期間和到期日,設定預算金額,然後選擇 「下一步」。
將一個或多個警示閾值以預算百分比計算(例如75% 和90%),將 類型 設為 實際 或 預測,並輸入通知的電子郵件地址。
選取 [建立]。
當花費達到門檻時,Azure 會在下一次評估後一小時內發送電子郵件。 要檢視已觸發的警示,請選擇 成本管理>成本警示。 若要避免提醒電子郵件進入垃圾郵件匣,請將 azure-noreply@microsoft.com 新增至核准的寄件者清單。 欲了解更多資訊,請參閱 「建立與管理預算」。
關閉 Copilot 程式碼審查
要停止使用 Copilot 程式碼審查,請在你想關閉的範圍設定開關為 Off:
- 針對單一使用者:在使用者設定中關閉 預覽功能 切換鈕。
- 對於一個儲存庫:在 Project 設定>Repos>Repositories 關閉儲存庫切換。
- 針對整個組織:在 組織設定>存放庫>存放庫 中關閉組織切換開關。 此動作會使所有儲存庫的此功能失效。
分享意見反應
若要回報問題或分享對此預覽的回饋,請造訪 Azure DevOps 開發人員社群。
Copilot 程式碼檢閱疑難排解
如需帳單、資料處理、合規性,以及自訂指示疑難排解問題的常見問題解答,請參閱「Copilot 程式碼審查疑難排解」。
後續步驟
檢閱提取要求 (英文)