[英]How to delete a GitLab repository using curl?
我可以使用 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 編碼,因此服務器不會嘗試拆分它。
如果您正在執行帶有 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 所有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.