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

时间:2018-06-15 22:58:02

标签: github gitlab gitlab-ci gitlab-omnibus gitlab-api

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

有时,包已发布但未发布源代码。

我们始终在//Sort categories $('#categories-list').find('tbody').sortable({ connectWith: 'tbody', opacity: 0.6, cursor: 'move', forcePlaceholderSize: true, update: function(e) { var serialized = $('#categories-list tbody').sortable('serialize'); console.log(serialized); // $.post('admin/ereg_forms/set_category_position', serialized, function(data) { // if (data.status == 'error') { // alert(data.message); // } // }); } }); $('#addmorefool').on('click', AddMore); function AddMore() { let tbody = $('#categories-list').find('tbody'); let rowscount = tbody.find('tr').length; let newRow = '<tr id="category-row-' + rowscount + '"><td><span class="double-arrow-unicode" style="font-size:18px; cursor:pointer;">↕</span></td><td class="category-row-title">test' + rowscount + '</td></tr>'; tbody.append(newRow); } AddMore(); //Add category submit $("#add-category-sumbit").on('click', function(e) { //console.log("howdy"); e.preventDefault(); var myform = $("#add-category-form"); var errorBlock = myform.find(".errors-block"); errorBlock.html(''); errorBlock.dialog({ modal: true, width: 'auto', autoOpen: false }); var catSub = $('#add-category-submit'); catSub.hide(); var myjax = $.ajax({ url: myform.attr('action'), type: 'POST', data: myform.serialize(), dataType: 'json' }) .done(function(data) { catSub.show(); //Check if server side validation passed var category_data = data.data; var tableRow = $('<tr class="category-row-' + category_data.id + '"><td><span class="double-arrow-unicode" style="font-size:18px; cursor:pointer;">&#8597;</span>' + '</td><td>' + category_data.title + '</td><td></tr>'); let tbody = $('#categories-list').find('tbody'); tbody.append(tableRow); resetForm(myform); //Close popup window (out cause have none) //('#add-category').dialog('close'); $("<div title='Success!'>Category has been saved.</div>").dialog({ modal: true, width: 'auto' }); }).fail(function(data) { //Show error on popup dialog errorBlock.html('<span>Sorry, the information that was sent is invalid. Please review the errors at the top of the form and try again.</span>' + data.message); errorBlock.dialog("open"); //catSub.show(); (out cause not in code) }); });中显示构建状态和代码覆盖率。

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

2 个答案:

答案 0 :(得分:1)

之后是issue 13324

它包括:

  

仅供参考,我有一个使用GitLab API的解决方法   假设您已在GitLab中为用户创建了一个令牌(注意:“用户”不一定是人类 - 我的用例是在托管在不同VM上的仪表板上显示徽章)

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

2018年12月更新:这不是通过令牌的可能性(请参阅Paul B.answer)。

这是因为“Improper Enforcement of Token Scope”:

  

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

但是...

  

更新时间:2018-11-28:我们收到报告称此更改影响了某些用户下载repo文件和作业工件的方式。
  有关如何通过API执行此操作的说明,请参阅our support issue

您还有一个重复API访问的current workaround

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

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

  

您将能够通过Repository Files 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

答案 1 :(得分:1)

自Gitlab的release 11.4.8起,就不可能再通过人员访问令牌公开项目的徽章了。由于变化“ 将个人访问令牌限制为Web请求的API范围。”

删除此“替代方法”的提交为published as a security fix

目前正在讨论ongoing issue,以寻求其他解决方案。让我们看看进展如何。