Build the Code Self-Review process with GitLab Description Templates

GitLab:11.11.8

對於一個多人開發的專案來說,Code Review 是很重要的一個環節,除了可以找出開發者本身沒注意到的盲點之外,也可以激發出不同的解決方式,讓大家都有互相學習的機會。

但是隨著組織的規模越變越大,權責越分越細,專案中需要注意的事情會大幅增加,比如說資料庫連線、共用 Library 的版本等等,有時候完成一個功能可能需要同時改動到數個 Repository,甚至在 deploy 時還有先後順序;通常到了這種規模,很容易就會因為漏看或沒注意到一些專案以外的細節,導致 merge 到看起來沒問題,實際上不能動的 code。

雖然把這些該注意的細節定義成規範讓開發者參考的話,可能可以減少這些事情的發生,但有沒有確實參考規範執行卻又是另一回事了。

但是,如果把規範直接整合進去 Merge Request 的流程裡,並建立 Code Review 的自我檢核表,在請其他 reviewer 看之前先自我驗證一次,出錯的機會也許就可以大幅降低。

GitLab 提供了 Description Templates 的功能,可以透過這個功能直接在 Repository 中建立自我檢核表的 Template,在每一次建立 Merge RequestIssue 時,就可以選用我們自行建立的 Template

Basic Usage

要使用這個功能,必須要在專案中的 default branch 建立 .gitlab 資料夾。

建立完成以後,可以在 .gitlab 底下建立兩個不同的資料夾分別控制 Merge RequestIssueTemplate

名稱 功用
issue_templates 存放 Issue 的 template
merge_request_templates 存放 Merge Request 的 template

Template Example

Template 是使用 Markdown file( *.md )撰寫,檔名就是 Template 名稱。

General.md

# 目的
_(write something)_
# 調整內容
_(write something)_
### 機器異動
_(write something)_
### MR 的影響範圍及錯誤因應方式
_(write something)_
# 使用者驗證流程
_(write something)_
# 參考資料
_(write something)_

# 自我檢測
自己給我測起來!!
### Style
- [ ] 至少通過任一種 style-check
- [ ] 同 Project 內的 naming convention 應該要一致
### UnitTest
- [ ] 測試覆蓋率不可下降
- [ ] 只要有修改 code 就要有對應的兩個 unit test(正向測試及 Exception 測試)

完成以後就可以選取 Template 使用了。
MR Template

Categories: GitLab