偵測

Pull request審查

已連接儲存庫中的每個pull request都會對照它所部署的生產環境檢查,而你在合併前就會知道結果。

大多數事件都始於一次變更。Polylane對照已連接儲存庫中每個pull request所部署的生產資源進行審查,並發布一則說明通過或不通過的留言。

它做什麼

代理讀取差異,以及儲存庫所部署資源的即時指標、日誌與開啟中的問題,然後判斷這次變更是否可能傷害生產環境。你會得到pull request上的一則留言、一個選用的Polylane production impact檢查,以及主控台中一個帶有完整分析的對話串。

它如何運作

  1. 對預設分支開啟pull request、推送到它,或把它標記為可供審查,都會啟動對其head提交的審查。草稿不會被審查。
  2. 之後的推送會取代進行中的審查,所以只有最新的提交會被評判。
  3. 只觸及文件、測試或CI檔案的變更不經調查即通過。
  4. Polylane沿著儲存庫的部署邊找到它的生產資源,沒有部署邊時則對照整個工作區的雲端帳戶審查。
  5. 代理在對話串中調查,並記錄pass或fail判定。
  6. 每個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 reviewPolylane正在審查最新的推送。
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上發布任何東西。

相關頁面

  • 儲存庫:連接儲存庫並連結它的資源。
  • 修復執行:審查對話串如何得出判定。
  • Autofix:修復執行開啟的pull request。
  • 通知:不通過的審查可以寄出的電子郵件。