分支和标记无法通过API删除

时间:2018-02-12 05:48:10

标签: git curl gitlab gitlab-api

问题:

将GitLab从10.3.5升级到9.3.6后,如果分支中包含/(示例release/branch),则分支和标记删除API无效。但它适用于旧版本。

C:\Users\test>curl.exe --request DELETE --header "PRIVATE-TOKEN:token" "https://gitlab.company.com/api/v4/projects/1582/repository/branches/test/test"
{"error":"404 Not Found"}
C:\Users\test>curl.exe --request DELETE --header "PRIVATE-TOKEN:token" "https://gitlab.company.com/api/v4/projects/1582/repository/branches/testz"
C:\Users\test>curl.exe --request DELETE --header "PRIVATE-TOKEN:token" "https://gitlab.company.com/api/v4/projects/1582/repository/tags/tag/test"
{"error":"404 Not Found"}
C:\Users\test>curl.exe --request DELETE --header "PRIVATE-TOKEN:token" "https://gitlab.company.com/api/v4/projects/1582/repository/tags/tagtest"

在上面的curl数据中,我可以删除分支testz,但test/test也会在tag中抛出相同的错误。如何通过API删除这些分支?

1 个答案:

答案 0 :(得分:1)

因为它是一个URL,所以有些字符不能在上下文之外使用。例如,即使该区域表示字符串,URL中间也不能有_space_,因此您必须使用%20而不是_space_

对于test/test,您可能需要将/替换为%2F

所以测试%2Ftest