在 GitHub Packages 上,你可以透過 API 來查詢或刪除已發布的 NuGet 套件版本。本篇文章將介紹如何使用 curl
來執行這些操作。
🔍 查詢 NuGet 套件的所有版本
如果你想要取得某個 GitHub Organization 內的 NuGet 套件的所有版本,可以使用以下 curl
指令:
curl -H "Authorization: Bearer ghp_xxxxxx" \
-H "Accept: application/vnd.github+json" \
"https://api.github.com/orgs/YourOrgName/packages/nuget/ProjectName/versions"
這段指令會:
- 使用
-H "Authorization: Bearer ghp_xxxxxx"
提供你的 GitHub Personal Access Token(PAT)來進行身份驗證。 - 加上
-H "Accept: application/vnd.github+json"
以確保回傳的 JSON 資料格式符合最新 API 版本。 - 向 GitHub API 發送請求,列出 Organization
YourOrgName
下,NuGet 套件ProjectName
的所有版本。
範例回應結果:
[
{
"id": 12345678,
"name": "1.0.0",
"created_at": "2024-03-13T12:34:56Z"
},
{
"id": 87654321,
"name": "0.9.0",
"created_at": "2024-03-10T10:20:30Z"
}
]
其中的 "id"
就是該版本的 Package ID,你可以用它來刪除該版本。
🗑️ 刪除特定的 NuGet 套件版本
如果你想要刪除某個特定版本的 NuGet 套件(例如 1.0.0
),你需要取得對應的 Package ID
,然後使用以下指令:
curl -X DELETE \
-H "Authorization: Bearer ghp_xxxxxx" \
"https://api.github.com/orgs/YourOrgName/packages/nuget/ProjectName/versions/YourPackageID"
這段指令會:
- 使用
-X DELETE
發送刪除請求。 - 使用
-H "Authorization: Bearer ghp_xxxxxx"
進行身份驗證。 - 刪除 Organization
YourOrgName
下,NuGet 套件ProjectName
的特定版本(對應的YourPackageID
)。
如果刪除成功,GitHub API 會回傳類似以下的訊息:
{
"message": "Package version deleted successfully."
}
⚠️ 注意事項
- 請確保你的 GitHub Personal Access Token (PAT) 擁有
delete:packages
和read:packages
權限,否則 API 會回傳403 Forbidden
。 - 刪除套件版本後,無法恢復,請謹慎操作!
- 請使用你的 **Organization 名稱** 和 **專案名稱** 替換
YourOrgName
和ProjectName
。
🔗 延伸閱讀
透過這些 API,你可以自動化管理 GitHub Packages 的 NuGet 套件,提高開發與部署的效率!🚀