我们在 GitHub 上托管一些存储库,在 GitLab 上托管其他一些存储库。
有时,发布了包但没有发布源代码。
我们始终在
README.md
中显示构建状态和代码覆盖率。
有没有办法让匿名者始终可以访问 GitLab 上的构建和覆盖徽章?
自 Gitlab release 11.4.8 起,不可能再通过个人访问令牌公开项目的徽章。因为改变“ 将个人访问令牌限制在 Web 请求的 API 范围内。”
删除此“解决方法”的提交已作为安全修复程序发布 目前正在讨论一个“持续存在的问题”,以寻找另一个解决方案。让我们看看进展如何。
问题13324它
假设您已在 GitLab 中为用户创建了一个令牌(注意:该“用户”不一定是人类 - 我的用例是在托管于不同虚拟机上的仪表板上显示徽章)。2018 年 12 月更新:通过令牌无法实现记录器(请参阅
<img src="https://<gitlab-uri>/<namespace>/<project>/badges/<branch>/build.svg?private_token=<token>
Paul B.的
)。 这是因为“代币范围执行不当”:
GitLab Web 界面容易受到授权问题的影响,该问题允许用户使用任何范围的个人访问令牌 (PAT) 访问 Web UI。 该问题现已在最新版本中得到缓解,并被分配为
CVE-2018-19569。更新:2018 年 11 月 28 日:我们收到报告称,此更改影响了某些用户下载存储库文件和作业工件的方式。
有关如何通过 API 执行此操作的说明,请参阅
我们的支持问题。,它会重复 API 访问:
您还有一个当前的解决方法
可以将项目头像添加到具有特定文件名(徽标)的项目存储库中,然后该文件将用于头像。这里有一个例子:
https://gitlab.com/issue-reproduct/project-avatar-repohttps://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