簡體   English   中英

如何使用 curl 刪除 GitLab 存儲庫?

[英]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

SSL 錯誤的可能原因

命名空間路徑編碼

URI 由服務器端的正斜杠分割,然后對生成的路徑元素進行分類。

由於正斜杠被視為特殊字符,如果我們想將其作為 URI 路徑元素包含在內,我們需要對其進行URL 編碼,因此服務器不會嘗試拆分它。

如果您正在執行帶有 ID 后面附加參數的請求,這將如何導致問題變得更加明顯。

在以下示例中, $namespacefoo$projectnamebar

好的

請求: GET /projects/foo%2Fbar/users

URI 路徑元素:

  • projects - 將在其上執行調用的資源
  • foo%2Fbar - 具體資源(項目)名稱為foo/bar (經過 URL 解碼后)
  • users - 要返回的資源

壞的

請求: GET /projects/foo/bar/users

URI 路徑元素:

  • projects - 將在其上執行調用的資源
  • foo - 特定資源(項目)名稱是foo (沒有這樣的項目,缺少命名空間)
  • bar - 要查詢的資源或要執行的操作(沒有這樣的資源或操作)
  • users - 附加查詢參數(父資源或操作首先不存在)

API 端點

如果您使用托管在https://gitlab.com/的公共 GitLab,則應使用gitlab.com域名而不是git.lab.com ,后者不歸 GitLab Inc 所有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM