我可以通过GitHub实现这一目标。但我无法对GitLab做同样的事情。目前,我所拥有的是:
curl -u "$user:$token" -H "Content-Type:application/json" -H "PRIVATE-TOKEN:$token" \
-X DELETE https://git.lab.com/api/v4/projects/$repo_name
然后我收到这个错误:
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
我已经有一个使用curl的工作脚本在命令行上创建一个GitLab存储库,所以我的curl工作正常。我只需要删除部分。
curl -H 'Content-Type: application/json' -H 'Private-Token: $privatetoken' \
-X DELETE https://gitlab.com/api/v4/projects/$namespace%2F$projectname
URI由服务器端的正斜杠拆分,然后对生成的路径元素进行分类。
由于正斜杠被视为特殊字符,如果我们想将它包含为URI路径元素,我们需要URL encode,因此服务器不会尝试拆分它。
如果您在ID后面执行带有其他参数的请求,这可能会导致问题更加明显。
在下面的例子中,$namespace
是foo
,而$projectname
是bar
。
好
要求:GET /projects/foo%2Fbar/users
URI路径元素:
projects
- 将执行调用的资源foo%2Fbar
- 具体资源(项目)名称是foo/bar
(URL解码后)users
- 返回的资源坏
要求:GET /projects/foo/bar/users
URI路径元素:
projects
- 将执行调用的资源foo
- 具体资源(项目)名称是foo
(没有这样的项目,缺少名称空间)bar
- 要查询的资源或要执行的操作(没有此类资源或操作)users
- 附加查询参数(父资源或操作首先不存在)如果您使用的是https://gitlab.com/上托管的公共GitLab,则应使用gitlab.com
域名而不是git.lab.com
,后者不归GitLab Inc.所有。