当使用名称空间/projectname而不是id时,Gitlab api v4在项目搜索时返回404

当使用名称空间/projectname而不是id时,Gitlab api v4在项目搜索时返回404,gitlab,apache2,gitlab-api,gitlab-ce,Gitlab,Apache2,Gitlab Api,Gitlab Ce,我尝试将Gitlab工作流插件用于VS代码。不幸的是,它没有找到我的项目。我调试了它,发现它调用 https://mydomain/gitlab/api/v4/projects/mygroup%2Fmyproject 然后api返回 { error: "404 Project Not Found" } 这应该按照计划进行 如果我呼叫https://mydomain/gitlab/api/v4/projects/:id其中id是我得到的项目编号 path_with_names

我尝试将Gitlab工作流插件用于VS代码。不幸的是,它没有找到我的项目。我调试了它,发现它调用

https://mydomain/gitlab/api/v4/projects/mygroup%2Fmyproject

然后api返回

{
error: "404 Project Not Found"
}
这应该按照计划进行

如果我呼叫
https://mydomain/gitlab/api/v4/projects/:id
其中id是我得到的项目编号

path_with_namespace: "mygroup/myproject",
浏览互联网时,我发现一些人声称这对他们也不起作用,但没有解决办法。其他人说,这对他们来说非常有效

我尝试过Gitlab CE 12.x.x,现在使用升级到最新版本13(13.0.6)

我试过几个项目,但都没有成功

我是项目的维护者

访问令牌具有api和读取用户身份的权限

很明显我遗漏了什么。但是什么呢

编辑:

我的设置是将docker容器放在反向代理apache后面。可能授权没有按预期工作。插件发送头
PRIVATE-TOKEN
。我将检查头是否传递给api

没有。docker容器接收PRIVATE-TOKEN头

编辑2:

我建立了一个公共组和一个公共项目来消除身份验证问题。还是不行。搜索返回404

编辑3:

由于Dashrath Mundkar询问curl命令:

curl -H "PRIVATE-TOKEN:XXXXXXX" https://mydomain/gitlab/api/v4/projects/mygroup%2Fmyproject

嗯。我找到了答案,它有点特定于我的设置

因为它可能与其他在Gitlab前面使用Apache2.4作为反向代理的人也非常相关,所以我回答了自己的问题

我的Apache配置包含
allowencodedslass NoDecode
,因此对Gitlab的请求可以包含Api所需的URL编码路径,例如
mygroup%2Fmyproject
(否则Apache将已经抛出404,请参阅)

不幸的是,这还不够。通常也是这样

因此,我的后端收到了
mygroup%252Fmyproject
(注意添加的25,在%2F中编码%char),这导致了Gitlab的404


在我将Apache配置更改为
ProxyPass/gitlab之后http://gitlab.local:80/gitlab nocanon
(我添加了nocanon)一切正常。

可以分享您如何使用full curl命令调用api(显然隐藏您的url和令牌,只需将XXXX放在那里并粘贴在这里)我也面临着这个问题,但在GitLab中打开WebIDE时,WebIDE本身加载良好,但找不到项目。我必须同时添加,
allowencodedslass NoDecode
以及
nocanon
附录。