关于gitlab权限问题

关于gitlab权限问题,第1张

公司切入Gitlab来管理代码已经有一年多了,其中遇到很多权限问题,如没有权限clone、没有权限提交代码等等,这里做个总结. 权限分为访问权限和行为权限两个层次.

访问权限 - Visibility Level

这个是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目,包含3种

Private - 私有,只有属于该项目成员才有原先查看

Internal - 内部,用个Gitlab账号的人都可以clone

Public - 公开,任何人可以clone

行为权限

在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些 *** 作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等.

角色

Gitlab定义了以下几个角色:

Guest - 访客

Reporter - 报告者可以理解为测试员、产品经理等,一般负责提交issue等

Developer - 开发者负责开发

Master - 主人一般是组长,负责对Master分支进行维护

Owner - 拥有者一般是项目经理

权限

不同角色,拥有不同权限,下面列出Gitlab各角色权限

1. 工程权限

行为 Guest Reporter Developer Master Owner

创建issue ✓ ✓ ✓ ✓ ✓

留言评论 ✓ ✓ ✓ ✓ ✓

更新代码 ✓ ✓ ✓ ✓

下载工程 ✓ ✓ ✓ ✓

创建代码片段 ✓ ✓ ✓ ✓

创建合并请求 ✓ ✓ ✓

创建新分支 ✓ ✓ ✓

提交代码到非保护分支 ✓ ✓ ✓

强制提交到非保护分支 ✓ ✓ ✓

移除非保护分支 ✓ ✓ ✓

添加tag ✓ ✓ ✓

创建wiki ✓ ✓ ✓

管理issue处理者 ✓ ✓ ✓

管理labels ✓ ✓ ✓

创建里程碑 ✓ ✓

添加项目成员 ✓ ✓

提交保护分支 ✓ ✓

使能分支保护 ✓ ✓

修改/移除tag ✓ ✓

编辑工程 ✓ ✓

添加deploy keys ✓ ✓

配置hooks ✓ ✓

切换visibility level ✓

切换工程namespac

进入JENKINS_HOME目录,找到config.xml文件,找到了<useSecurity>和<authorizationStrategy>节点。<useSecurity>节点代表是否使用用户权限,<authorizationStrategy>节点代表用户权限是怎么划分的。

下面提供2种方法:

1、恢复默认设置

直接删除<useSecurity>和<authorizationStrategy>节点

2、配置管理员权限

这种方法适用于已经存在一堆的权限,重新配置麻烦。

在<authorizationStrategy>节点中添加内容如下:

<permission>hudson.model.Hudson.Administer:anonymous</permission>

<permission>hudson.model.Hudson.ConfigureUpdateCenter:anonymous</permission>

<permission>hudson.model.Hudson.Read:anonymous</permission>

<permission>hudson.model.Hudson.RunScripts:anonymous</permission>

<permission>hudson.model.Hudson.UploadPlugins:anonymous</permission>

在写gitlab 自动化脚本构建的时候,会发现无权限问题:

The requested URL returned error: 403

此时,可以尝试采用ssh_key的方式来解决这个问题。

将公钥粘贴到gitlab的profile页面中。

接着在gitlab 仓库上设置好对应的变量,变量名为 SSH_PRIVATE_KEY 。 它的值,就是用你的gitlab 身份账号生成的一个ssh 私有秘钥。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7972537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存