Gitlab 可以向匿名用户公开构建和覆盖徽章吗?

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

我们在 GitHub 上托管一些存储库,在 GitLab 上托管其他一些存储库。

有时,发布了包但没有发布源代码。

我们始终在

README.md
中显示构建状态和代码覆盖率。

有没有办法让匿名者始终可以访问 GitLab 上的构建和覆盖徽章?

github gitlab gitlab-ci gitlab-omnibus gitlab-api
2个回答
2
投票

自 Gitlab release 11.4.8 起,不可能再通过个人访问令牌公开项目的徽章。因为改变“ 将个人访问令牌限制在 Web 请求的 API 范围内。”

删除此“解决方法”的提交已作为安全修复程序发布 目前正在讨论一个“持续存在的问题”,以寻找另一个解决方案。让我们看看进展如何。

随后是

问题13324

2
投票

它包括:

仅供参考,我有一个使用 GitLab API 的解决方法。

假设您已在 GitLab 中为用户创建了一个令牌
(注意:该“用户”不一定是人类 - 我的用例是在托管于不同虚拟机上的仪表板上显示徽章)。


<img src="https://<gitlab-uri>/<namespace>/<project>/badges/<branch>/build.svg?private_token=<token>

2018 年 12 月更新:通过令牌无法实现记录器(请参阅
Paul B.

answer

)。 这是因为“代币范围执行不当”:

GitLab Web 界面容易受到授权问题的影响,该问题允许用户使用任何范围的个人访问令牌 (PAT) 访问 Web UI。 该问题现已在最新版本中得到缓解,并被分配为

CVE-2018-19569


但是...:

更新:2018 年 11 月 28 日:我们收到报告称,此更改影响了某些用户下载存储库文件和作业工件的方式。

有关如何通过 API 执行此操作的说明,请参阅

我们的支持问题


您还有一个当前的解决方法

,它会重复 API 访问:

可以将项目头像添加到具有特定文件名(徽标)的项目存储库中,然后该文件将用于头像。这里有一个例子:

https://gitlab.com/issue-reproduct/project-avatar-repo

您将能够通过存储库文件 API 检索文件:

https://docs.gitlab.com/ee/api/repository_files.html#get-file-from-repository

示例: https://gitlab.com/api/v4/projects/issue-reproduce%2Fproject-avatar-repo/repository/files/logo.png?ref=master


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