繁体   English   中英

Gitlab API Miroring 不接受带有 %20 的地址

[英]Gitlab API Miroring dost not accept address with %20

我正在尝试通过 API 在我的 GitLab 上创建镜像,我可以做到这一点。 当我尝试为其中包含 URL 编码空间“%20”的地址创建镜像时出现问题。

当我用以下 curl 调用 git 实验室 API 时:

curl --request POST --data 'url=https://user:password@remotegit.com/Repo%20Mirror%20Test/_git/Repo%20Mirror%20Test' --data "enabled=true" --header "Authorization: Bearer TOKEN" "https://mygit.com/api/v4/projects/171/remote_mirrors"

我得到以下回应:

{"id":171,"enabled":true,"url":null,"update_status":"none","last_update_at":null,"last_update_started_at":null,"last_successful_update_at":null,"last_error":null,"only_protected_branches":false,"keep_divergent_refs":null}

当我使用没有“%20”的任何其他地址时,“url”:null 不会出现

当我通过 UI 使用相同的 URL 执行此操作时,它工作得很好。 我试图更改“for”以阻止任何扩展的发生,但没有运气。在 UI 中,我还查看了开发人员工具是否有任何不同,但字符串以相同的格式发送,未更改。

GitLab 服务器版本:15.2.2

有什么想法可能导致这个问题吗?

好的,整个 URL 需要编码,您可以在“https://www.urlencoder.org”中执行此操作,或者在我的情况下,我需要在 Bash 脚本中使用它,因此我安装了一个包含“grid”的 ZEFE90A8E604A7C840E88D0 “urlencode”基本上做同样的事情。 一旦地址被编码,一切都按预期工作。 所以最终的请求看起来像这样:

curl --request POST --data  'url=https%3A%2F%2Fuser%3Apassword%40remotegit.com%2FRepo%2520Mirror%2520Test%2F_git%2FRepo%2520Mirror%2520Test' --data "enabled=true" --header "Authorization: Bearer TOKEN" "https://mygit.com/api/v4/projects/171/remote_mirrors"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM