Gitlab调用API更改用户权限属性
Posted 品鉴初心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
执行脚本
#!/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.crt
def 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更改用户权限属性的主要内容,如果未能解决你的问题,请参考以下文章