Pull request審查
大多數事件都始於一次變更。Polylane對照已連接儲存庫中每個pull request所部署的生產資源進行審查,並發布一則說明通過或不通過的留言。
它做什麼
代理讀取差異,以及儲存庫所部署資源的即時指標、日誌與開啟中的問題,然後判斷這次變更是否可能傷害生產環境。你會得到pull request上的一則留言、一個選用的Polylane production impact檢查,以及主控台中一個帶有完整分析的對話串。
它如何運作
- 對預設分支開啟pull request、推送到它,或把它標記為可供審查,都會啟動對其head提交的審查。草稿不會被審查。
- 之後的推送會取代進行中的審查,所以只有最新的提交會被評判。
- 只觸及文件、測試或CI檔案的變更不經調查即通過。
- Polylane沿著儲存庫的部署邊找到它的生產資源,沒有部署邊時則對照整個工作區的雲端帳戶審查。
- 代理在對話串中調查,並記錄
pass或fail判定。 - 每個pull request只有一則留言,每次審查時編輯它。不通過時顯示Hold this merge,附帶影響程度與發現;通過時顯示Production impact unlikely,或說明某個已偵測問題的修復是否預期能解決它。當之後的推送處理了疑慮時,留言會翻回通過並說明。
代理也可以建議可觀測性改進,以一次批次的建議留言審查或一個堆疊的pull request呈現。它們永遠不影響判定。
對審查採取行動
在pull request的留言中提及@polylane,Polylane會在同一段對話中回答;非成員則會收到一則關於存取權的說明。
| 你要求 | 會發生什麼 |
|---|---|
| 一個問題 | 代理從審查對話串回答,證據就在眼前。 |
| 再看一次 | 代理重新審查最新的推送並重新考慮判定。 |
| 一個修復 | Polylane啟動一次修復執行,並對pull request的分支開啟一個堆疊的pull request,從留言連結過去。 |
主控台中儲存庫的Changes分頁列出每次審查。不通過的審查提供Fix with Polylane,它會啟動同樣的修復執行,以及在疑慮不適用時使用的Dismiss:pull request仍會持續被審查,但在你Restore它之前不會再收到留言。
| 狀態 | 說明 |
|---|---|
| In review | Polylane正在審查最新的推送。 |
| Flagged | 審查發現了生產環境疑慮。 |
| Passed | 未發現生產環境疑慮。 |
| Resolved | 之後的推送處理了疑慮。 |
| Dismissed | 成員駁回了審查;pull request不會再收到留言。 |
設定
每個已連接的儲存庫都會啟用審查。Settings > Pull request reviews可在整個工作區關閉它們,並設定審查對話串是否與pull request的檢視者共享。在Settings > Repositories底下,儲存庫的Settings分頁多了三個欄位。
| 欄位 | 說明 |
|---|---|
| Review pull requests for production impact | 只為這個儲存庫關閉審查。 |
| Pull request review instructions | 代理在每次審查時讀取的自由文字:對部署至關重要的路徑,或已由其他關卡處理的疑慮。 |
| Block merging on production concerns | 在每個受審查的pull request上發布Polylane production impact檢查;有疑慮時它會失敗。預設開啟。在分支保護中要求它即可阻擋合併。 |
這個檢查在merge queue的提交上也會完成,因為pull request在進入佇列前就已受審查。不通過的判定可以寄出Production Concern Found電子郵件,在通知底下預設關閉。
方案說明
每個方案都包含每月一定數量的pull request審查;Free方案的額度列在計費與用量,額度快用完時會以電子郵件通知成員。超過額度後,主控台把pull request記錄為Production impact not verified,且不會在GitHub上發布任何東西。