如何将 GitLab 上的 API 读取权限仅授予单个存储库?

问题描述 投票:0回答:3

可以在 GitHub 上授权第 3 方应用程序/服务仅访问单个存储库。我没有找到 GitLab 的这种可能性,看来你只能授予对所有内容的访问权限。这是正确的还是有更好的方法?

gitlab gitlab-api
3个回答
0
投票

您正在寻找的是项目访问令牌。您可以将它们限制为不同的范围,甚至为它们分配基于项目的权限,例如

Maintainer
Developer
Reporter
等。

您可以在项目中找到它们:

Settings > Access Tokens

enter image description here

同时,也可以对群组执行此操作 - 您会在群组内的同一位置找到它。

通过这些设置,您可以授予对单个存储库的专用访问权限,甚至是写入访问权限。如果您只想在没有 api 的情况下进行读取访问(例如部署),请查看

Deploy Tokens
 中的 
Settings > Repository


0
投票

您可以使用身份验证令牌仅在单个项目上授权应用程序/服务访问。项目中的单个存储库是不可能的。

https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#create-a-project-access-token


0
投票

使用部署令牌,它们提供对存储库和注册表的只读访问权限。转到您的项目,设置 > 存储库 > 部署令牌 https://docs.gitlab.com/ee/user/project/deploy_tokens/index.html

关于之前关于Private和Group token的回答: 根据GitLab文档和未解决的问题,项目访问令牌和组令牌存在漏洞,例如持有者可以访问任何内部存储库

来自 https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#create-a-project-access-token

项目访问令牌被视为内部用户。如果内部 用户创建一个项目访问令牌,该令牌能够访问所有项目 可见性级别设置为内部的项目。

来自 https://gitlab.com/gitlab-org/gitlab/-/issues/413028

这样做的后果之一是,如果我们共享一个只读 项目访问令牌与外部用户,他们可以访问任何 我们的 Gitlab 服务器实例中的内部项目,我们认为这是一个 明显的安全漏洞。

© www.soinside.com 2019 - 2024. All rights reserved.