Shell脚本更改Gitlab所有用户创建项目限制数

  • 生产实践:

    使用shell脚本更改Gitlab所有用户创建项目限制数

  • 学习技巧:

    curl使用、双层for循环、shell数组、gitlab api调用

  • 脚本内容:      

最近好几个开发同事反馈gitlab不能创建仓库,没有创建按钮,一看原来是projects_limit数到限制了,gitlab默认是每个用户创建10个项目,看了下生产的配置,设置的是20个不够用,修改默认配置为100个,但是之前创建的用户限制数设置是不会变的,线上1600多个开发用户难道都得手动一个个点进去修改?生产环境改库风险太大不太可行,想想应该能通过gitlab api来搞,实现思路是先把所有用户的id拿出来,通过用户id修改projects_limit。

#!/bin/bash
##############################################################################
# $Name:         op_gitlab.sh
# $Version:      v1.0
# $Function:     Gitlab change all users project limit
# $Author:       Zhihe An
# $Copyright (c) https://chegva.com
# $Create Date:  2019-02-26
##############################################################################

# 执行前请先安装jq
# gitlab默认分页显示20个元素,最大一页显示100个,有1600多个用户需要修改,因此这里要循环17次
for i in {1..17}; do
USER_ID=$(curl -s --insecure -H "PRIVATE-TOKEN: 49auTZXx2xxx" -H 'Accept:application/json' -X GET "https://yougitlab.com/api/v3/users?per_page=100&page=${i}" | jq '.[] | .id')

# 这里${USER_ID[@]}不要用双引号引起来,引起来会将所有数组元素作为一个整体输出
for user_id in ${USER_ID[@]}; do
curl -s -H 'Content-Type:application/json' -H 'Accept:application/json' -X PUT -d '{"projects_limit":100}' "https://yougitlab.com/api/v3/users/${user_id}?per_page=1700&private_token=49auTZXx2xxx" | jq
echo "$user_id  set projects_limit:100 done" | tee -a /tmp/set_gitlab_projects_limit
    done
done

◎查看效果

post返回的结果:

Shell脚本更改Gitlab所有用户创建项目限制数

查看执行结果:

Shell脚本更改Gitlab所有用户创建项目限制数

shell脚本有时还是挺高效的,手动一个个改那还怎么玩。Shell脚本更改Gitlab所有用户创建项目限制数


参考:https://docs.gitlab.com/ee/api/README.html

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/3366.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注