GitHub Deployment Protection Rules 設定指南
前言
一般 Git 需要審核的情境,主要有以下 2 種情境:
- 發 PR merge 到受保護的 branch 時
- Deploy 到 Production Environment 時 ⭐
這裡要提到的是第 2 種 ☝️
在 Deploy 時,當有團隊成員想要 Deploy 某些 change 到 Production Environment(或是極為重要的 Environment),需要其他團隊成員同意後才能 Deploy,為了防止有人偷偷上 code,在 GitHub 中有個功能叫做 Deployment Protection Rules,就能用來做這種審核的設置。
在 GitHub 頁面設置 Deployment Protection Rules
如果還未添加 Environment
請至 Settings > Environments,點擊new environment
設置你的環境名稱
新增完 Environment 後,進入配置頁面
配置頁面最上面第一個設置就是 Deployment Protection Rules
打勾 Required reviewers即可開啟這個功能
在 Add up to 6 more reviewers最多可以添加 6 個審核者
Prevent self-review 可以防止有人自己 Approve 自己的請求
Wait timer 有打勾的話可以設置等待時間(單位:分鐘),會在觸發 Deploy 審核關卡後開始計時(不管是否有 Approve),用來防止有人不小心上錯東西,可以延緩 Deploy 執行時間讓你來的及取消
看要不要給管理者權限的人開無敵通道
沒有的話就取消打勾 Allow administrators to bypass configured protection rules
任何人 Deploy 都要經過審核
設定好後即可 Save
設置GitHub workflow yaml
在 job 中要設置 environment,GitHub 才會將牠們關連起來
就加一行就好,就是這麼簡單~
Deployment Protection Rules 審核流程
當觸發 pipeline 時,GitHub 會去找對應的 environment 設定
若是這環境有開啟 Required reviewers,該 job 即會暫停動作 (status:Waiting)
GitHub 會寄 mail 通知 reviewer 們
有人 Approve 後就會繼續 Deploy了
是誰 Approve 的也會顯示在 action 中,方便抓戰犯 😈
End






