Common Q&A of gitlab-ce

Q1. 能否保護特定branch不讓人Push?
可以,並可將使用者分成五種權限,分別可以對CI/CD不同階段有不同的操作。
可以依Group設定對Group底下所有Repository的權限
亦可依每個Repository做設定,假設兩者都有設定了,會以比較高的為優先
e.g., Jimmy在Group的權限預設是Guest,在A repository是 Developer。則在該Repository的權限即是Developer,可以PUSH到 Unprotected的 branch
Q2. 能否有討論區
有接近需求的討論區(Issue),但畢竟是respositry based的,所以沒有獨立討論區
但每個repository都有一個Issue block可以討論
Q3. 能否有Webhook通知?
能,以Slack來說,可以依據想通知的事件(e.g., Push, Issue…etc)
發通知到Slack
Mail的部分要另外設定SMTP,可以自架mail server(郵件伺服器)
亦可用外部或公司內部郵件伺服器服務
信件的通知,比較是走個人訂閱層面的;Webhook的用途比較像廣播
Q4. 上的Change如何link到Issue
透過Crosslinking Issue。
在Commit Message加上 #<該Issue編號> push上來,在gitlab瀏覽時會自動連結,如下
Q5. 能否像Gerrit Server Cherry-pick 一個change?
可以。程序是
  1. 先push到一個非target branch
  2. 從gitlab 操作介面對該change cherrypick 並發merge pull request過去
    此時會產生一個cherry-pick-xxx的temporary branch,那筆change就在其上
  3. Target branch的maintainer如果覺得OK就可以merge該cherry-pick-xxx branch

留言