问题:
将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删除这些分支?
答案 0 :(得分:1)
因为它是一个URL,所以有些字符不能在上下文之外使用。例如,即使该区域表示字符串,URL中间也不能有_space_
,因此您必须使用%20
而不是_space_
对于test/test
,您可能需要将/
替换为%2F
所以测试%2Ftest