群組申請說明
由於儲存空間的限制,目前並不允許在CS Gitlab上直接建立群組。
如實驗室或課程上有需求可以來信洽詢,會有承辦人員協助建立Gitlab群組。
在群組中的專案會計算為群組的儲存空間,因此課程帳號也可以上傳程式碼到群組專案中,不受個人儲存容量限制。
將使用者批次加入群組
考慮到在課程方面的使用,為了方便教授及助教將學生加進建立好的群組中,系計中在Linux工作站上有提供現成的腳本,可以批次將使用者加入群組。
操作步驟如下:
- 以群組擁有者的身份登入 Gitlab,並點選右上角頭像進入設定
- 在左側的選單中選擇 Access Token
- 輸入 Token 的名字(任意名稱皆可),並勾選 Scopes 中的 api 選項
- 建立 Token,並複製產生出的 Access Token
- 將學生名單以SFTP等方式上傳到工作站上
- 登入 linux[1-4].cs.nycu.edu.tw 任意一台Linux工作站
- 執行以下指令:
cs_gitlab_group -A 學生權限 -T "Access Token" 群組名稱 < 學生名單檔名
- 學生權限的數值可以是以下幾種之一
- guest:只能進入群組、檢視群組專案、開issue
- reporter:管理issue & 標籤、建立MR、檢視大部分logs, analytics
- developer:可以建立專案、可以push、Merge MR
- maintainer:可以編輯大部份專案設定
- owner:擁有所有權限
- 註:群組中每個專案的權限可以另外獨立設定
- 如須詳細的權限可以參考:Gitlab Docs (Permissions)
- Access Token 也可以用
CS_GITLAB_TOKEN
這個環境變數傳給腳本
- 若有學生無法加入(e.g.沒有帳號、未曾登入過CS Gitlab) 則會顯示在輸出中,可以待問題排除之後,重新執行一次腳本,已加入的學生不會受影響
如須詳細的說明可以執行
cs_gitlab_group --help
學生名單格式
學生名單為文字檔格式,一行一個學生,填入學生的學號或是系計中帳號。
可以加入以 # 開頭的註解。
# Comment starts with '#' mark
# Students
0716001
0716002
0716003
# Other TAs
309550010
309550011
309550012
此外,可以另外為學生個別指派權限、過期日
當只需要指定過期日時,權限可以填入default
,就會自動套用指令中以 -A 選項指定的
過期日的格式為 YYYY-MM-DD
# Students
0716001
0716002 guest 2022-07-31
0716003 default 2022-07-31
# Other TAs
309550010 maintainer 2023-07-31 # TA with expire date
309550011 owner # old TA
309550012 maintainer # TA