获取最新 Release 的 REST API 无法处理 release tag 带 / 的情况
根据文档,使用 GET /projects/:id/releases/permalink/latest
API 可以获取最新的 Release 信息。
然而,当最新的 Release Tag 中存在 / 时,此接口会返回 404 错误,应该是 302 跳转链接没有对 token 做 urlencode 导致的,encode 之后就可以正常访问:
$ curl 'https://jihulab.com/api/v4/projects/22556/releases/permalink/latest' --header 'PRIVATE-TOKEN: xxxxx'
"This resource has been moved temporarily to /api/v4/projects/22556/releases/webapp/2024.06.25-01-release."
$ curl -L 'https://jihulab.com/api/v4/projects/22556/releases/permalink/latest' --header 'PRIVATE-TOKEN: xxxxx'
{"error":"404 Not Found"}
$ curl 'https://jihulab.com/api/v4/projects/22556/releases/webapp/2024.06.25-01-release' --header 'PRIVATE-TOKEN: xxxxx'
{"error":"404 Not Found"}
$ curl 'https://jihulab.com/api/v4/projects/22556/releases/webapp%2F2024.06.25-01-release' --header 'PRIVATE-TOKEN: xxxxx'
(正常返回)
其他 API 很可能也存在这个问题。