gitlab批量添加用户的方法

来源:互联网 发布:sql挂起清理注册表 编辑:程序博客网 时间:2024/06/06 00:42

http://blog.sina.com.cn/s/blog_6ff7a3b50102w2a4.html


要在gitlab中添加新的用户,可以用管理员账户在登录gitlab后进入admin area页面,进行添加用户的操作。但是这样只能手工进行操作,一次只能添加一个用户。如果需要一次添加大量用户,不仅操作速度慢,还很容易出错。

要能够​批量添加用户,一个比较好的解决方案是使用gitlab提供的api接口。gitlab API的使用可以参考的gitlab的帮助文档,gitlab提供了很多语言的api 客户端。这里只介绍最简单的http方法。

所有的api请求都要进行身份验证,需要在url或者header中传递private_token参数。用户的private_token可以在profile settings页面的account settings中找到。使用GET或者curl都可以发送api请求。

#获取自己账号的用户信息

curl "http://192.168.1.40/api/v3/user?private_token=YzvfdyZ814krsp-WeuKA"​

GET "http://192.168.1.40/api/v3/user?private_token=YzvfdyZ814krsp-WeuKA"

​#获取所有用户的信息

curl "http://192.168.1.40/api/v3/users?private_token=YzvfdyZ814krsp-WeuKA"​

GET "http://192.168.1.40/api/v3/users?private_token=YzvfdyZ814krsp-WeuKA"

api的路径 是 网址加上api版本信息。数据可以是requests​格式的,也可以是json格式的。

#添加用户账户

curl -d "password=password&email=test04@gitlab.cn&username=test04&name=test04&private_token=YzvfdyZ814krsp-WeuKA" "http://192.168.1.40/api/v3/users"​

curl --header "PRIVATE-TOKEN:YzvfdyZ814krsp-WeuKA" --data "password=password&email=test04@gitlab.cn&username=test04&name=test04" "http://192.168.1.40/api/v3/users"

#查询一个用户

curl "http://192.168.1.40/api/v3/users?search=test04&private_token=YzvfdyZ814krsp-WeuKA"
​#删除一个用户

curl -X DELETE --header "PRIVATE-TOKEN:YzvfdyZ814krsp-WeuKA" "http://192.168.0.40/api/v3/users/5"​

curl -X DELETE "http://192.168.1.40/api/v3/users/5?private_token=YzvfdyZ814krsp-WeuKA"​

以上就是以http方式使用gitlab api的简单命令,可以在这些命令的基础上制作shell脚本或python脚本,实现批量添加用户。如果要使用api进行更复杂的操作,可以使用gitlab提供的客户端,如:python-gitlab、pyapi-gitlab、libsaas-gitlab。

用一个txt 文件导入批量用户的脚本:

#!/bin/bash
userinfo="userinfo.txt"
while read line 
do
    name=`echo $line | awk '{print $1}'`
    username=`echo $line | awk '{print $2}'`
    mail=`echo $line | awk '{print $3}'`
    curl -d "projects_limit=0&can_create_group=false&password=11111111&email=$mail&username=$username&name=$name&private_token=3ciUziSebaQQmruH1NJv" "http://192.168.30.41/api/v3/users"
done <$userinfo

白晶 bai_j bai_j@uisftech.com
王亚南 wang_yn wang_yn@uisftech.com
郝瑞利 hao_rl hao_rl@uisftech.com
艾波 ai_b ai_b@uisftech.com
江慧敏 jiang_hm jiang_hm@uisftech.com
原创粉丝点击