使用GitLab API批量创建subgroup(shell脚本)

在一个group中,批量创建subgroup,并设置一个Owner用户

读取 groupinfo.txt 获取组名和Owner用户账号信息

groupinfo.txt 文件格式:

第一个组	dygz	zhangsan 
第二个组	degz	lisi
第三个组	dsgz	wangwu
#!/bin/bash

#在一个group中,批量创建subgroup,并设置一个Owner用户
#读取groupinfo.txt获取组名和Owner用户账号
#
#文件格式:组名	urlpath	Owner用户名
#	如:	第一个组	dygz	zhangsan

gitlabAddr="http://192.168.201.99"
parentid=4
token="C3jpMsM_z3gJp7nZdgq7"

while read line || [[ -n ${line} ]]
do

groupname=`echo $line | awk '{print $1}'`
pathname=`echo $line | awk '{print $2}'`
username=`echo $line | awk '{print $3}'`

# create group
result=`curl -s --request POST --header "PRIVATE-TOKEN: $token" --data "name=$groupname&path=$pathname&visibility=internal&parent_id=$parentid&" $gitlabAddr/api/v4/groups`

# get groupid
groupid=`echo $result |sed 's/.*"id"://;s/".*//'`
groupid=`echo $groupid | sed 's/,//'`

# get userid by username
result1=`curl -s "$gitlabAddr/api/v4/users?private_token=$token&search=$username"`
userid=`echo $result1 |sed 's/.*"id"://;s/".*//'`
userid=`echo $userid | sed 's/,//'`

# add member to group
result2=`curl -s --request POST --header "PRIVATE-TOKEN: $token" --data "user_id=$userid&access_level=50" $gitlabAddr/api/v4/groups/$groupid/members`
#10 => Guest access
#20 => Reporter access
#30 => Developer access
#40 => Maintainer access
#50 => Owner access # Only valid for groups
echo -e  "$groupname\t$pathname\t$groupid\t$username\t$userid" 

done <$groupinfo

你可能感兴趣的:(工具脚本)