Gitlab调用API更改用户权限属性

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述Gitlab调用API更改用户权限属性相关的知识,希望能为你提供帮助。
需求说明修改服务器配置文件之后,创建新的用户,默认就不会带有创建项目组权限了。但是这里有个问题,之前创建好的用户,不会因为修改了服务端的配置而更改权限,需要人为手动去改。
处理流程 禁止创建个人项目

Gitlab调用API更改用户权限属性

文章图片

Gitlab调用API更改用户权限属性

文章图片

禁止用户创建项目组
# 在/etc/gitlab/gitlab.rb中 gitlab_rails[gitlab_default_can_create_group] = false # 保存 gitlab-ctl reconfigure # 查看gitlab的版本信息 head -1 /opt/gitlab/version-manifest.txt

批量更改已存在的账户权限使用脚本批量更改,排除一些不用修改的用户,比如管理员,或者自己,机器人,僵尸账号等。
GitLab配置personal access token
Gitlab调用API更改用户权限属性

文章图片

Gitlab调用API更改用户权限属性

文章图片

Gitlab调用API更改用户权限属性

文章图片

Gitlab调用API更改用户权限属性

文章图片

执行脚本
#!/bin/python3__autor__ = "wutf" __date__ = "2022-06-17"import gitlab import logging import sys""" pip install python-gitlab 批量修改gitlab之前创建好的用户权限: 禁止用户创建项目组 禁止创建个人项目 """ url = https://gitlab.test.com/# gitlab安装地址 private_token = a_QypV123456NRat# gitlab 登录密钥 需自己设置 ssl_verify = E:\\important\\Gitlab\\gitlab.test.com.crtdef gitlab_user(urlpath, token, ssl_crt): # 定义日志格式 logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s", handlers=[ logging.FileHandler("debug.log"), logging.StreamHandler(sys.stdout) ] ) logging.debug(This message is skipped as a level is set as INFO) logging.info(So should this) logging.warning(And this, too) logging.error(Testing non-ASCII character, ? and ?)# 登录 获取gitlab操作对象gl gl = gitlab.Gitlab(url=urlpath, private_token=token, ssl_verify=ssl_crt) # 获取所有的用户列表 users = gl.users.list(all=True) for user in users: if user.id != 1 and user.id != 4 and user.id != 79: # 修改用户属性权限 logging.info("正在处理当前用户: user".format(user=user.username)) user.can_create_group = False user.projects_limit = 0 user.save() logging.info( "用户名:user ,名字: name, ID: id, projects limit: pro_limit,允许创建组: cre_group".format( user=user.username, name=user.name, id=user.id, pro_limit=user.projects_limit, cre_group=user.can_create_group))if __name__ == __main__: start_change = gitlab_user(url, private_token, ssl_verify) print(start_change)

pthon3 gitlab_change_user.py

... 2022-06-17 13:29:29,004 [INFO] 正在处理当前用户: guojiawen 2022-06-17 13:29:29,056 [INFO] 用户名:guojiawen ,名字: guojiawen, ID: 61, projects limit: 0,允许创建组: False ...

验证处理结果
Gitlab调用API更改用户权限属性

文章图片

【Gitlab调用API更改用户权限属性】
Gitlab调用API更改用户权限属性

文章图片


    推荐阅读