首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些项目的GitLab页面API 404错误

某些项目的GitLab页面API 404错误
EN

Stack Overflow用户
提问于 2017-12-06 15:27:32
回答 1查看 1.4K关注 0票数 1

我一直在编写自动化脚本,使用Namesilo、Letsencrypt和Gitlab API生成和更新SSL证书。我几乎要结束了,但是当我试图更新Gitlab上的SSL证书时,我得到了一个404错误。

奇怪的是,错误只发生在我的两个项目中的一个上。具体而言,运行:

代码语言:javascript
复制
curl --header "Private-Token: XXXXXX" "https://gitlab.com/api/v4/projects/pallavagarwal07%2Fshort-links/pages/domains/pallav.xyz"

工作良好,并获取项目short-links中域short-links的详细信息。

但是,跑步:

代码语言:javascript
复制
curl --header "Private-Token: XXXXX" "https://gitlab.com/api/v4/projects/pallavagarwal07%2Fpallavagarwal07.gitlab.io/pages/domains/varstack.com"

返回404错误。然而,更奇怪的是,如果我将域名varstack.com从URL中删除,它就会给出所期望的域名列表:

代码语言:javascript
复制
curl --header "Private-Token: XXXXX" "https://gitlab.com/api/v4/projects/pallavagarwal07%2Fpallavagarwal07.gitlab.io/pages/domains"

返回:

代码语言:javascript
复制
[{"domain":"varstack.com","url":"https://varstack.com","certificate":....]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-06 16:02:57

我终于弄明白了(尽管我仍然会把它归类为GitLab的一个bug )。

ID需要进行url编码,这就是为什么我将存储库名称中的/替换为%2F的原因。但是,字符.不应该是一个问题(前一个-中的-没有引起任何问题)。但是,用.代替%2E会产生预期的(正确的)结果。

我觉得这是个问题,因为:

  1. 没有记录此行为(允许哪些字符?)。
  2. 即使没有编码.,没有域名的URL也能完美地工作,包括添加新域的API (它也将域作为表单参数,而不是在URL中)。

TL;DR

使用:

代码语言:javascript
复制
pallavagarwal07%2Fpallavagarwal07%2Egitlab%2Eio

而不是

代码语言:javascript
复制
pallavagarwal07%2Fpallavagarwal07.gitlab.io

在URL中让它工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47677846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档