群組申請說明

由於儲存空間的限制,目前並不允許在CS Gitlab上直接建立群組。
如實驗室或課程上有需求可以來信洽詢,會有承辦人員協助建立Gitlab群組。

在群組中的專案會計算為群組的儲存空間,因此課程帳號也可以上傳程式碼到群組專案中,不受個人儲存容量限制。

將使用者批次加入群組

考慮到在課程方面的使用,為了方便教授及助教將學生加進建立好的群組中,系計中在Linux工作站上有提供現成的腳本,可以批次將使用者加入群組。

操作步驟如下:

  1. 群組擁有者的身份登入 Gitlab,並點選右上角頭像進入設定
  2. 在左側的選單中選擇 Access Token
  3. 輸入 Token 的名字(任意名稱皆可),並勾選 Scopes 中的 api 選項
  4. 建立 Token,並複製產生出的 Access Token
  5. 將學生名單以SFTP等方式上傳到工作站上
  6. 登入 linux[1-4].cs.nycu.edu.tw 任意一台Linux工作站
  7. 執行以下指令:
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 這個環境變數傳給腳本
  1. 若有學生無法加入(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