Очередная подборка полезных curl запросов для работы с GitHub API:
- Получить объект release с выбранным tag_name:
release="$(curl -s -X GET -H "Authorization:token ${GITHUB_TOKEN}" "https://api.github.com/repos/${GITHUB_REPO}/releases" | jq -r '.[] | select(.tag_name=='\""$TAG_NAME"\"')')"
- Получить uploadUrl для загрузки нового asset в данный release объект:
uploadUrl="$(jq -r '.upload_url' <<< "${release}")"
- Удаление asset из release:
existingAsset="$(curl -s -X GET -H "Authorization:token ${GITHUB_TOKEN}" "https://api.github.com/repos/${GITHUB_REPO}/releases/${releaseID}/assets" | jq -r '.[] | select(.name=='\""$ARTIFACT"\"')')" existingAssetID="$(jq -r '.id' <<< "${existingAsset}")" resp="$(curl -s -X DELETE -H "Authorization:token ${GITHUB_TOKEN}" -H "Content-Type:application/octet-stream" "https://api.github.com/repos/${GITHUB_REPO}/releases/assets/${existingAssetID}")" echo "$resp"
Для работы bash снипетов необходимо установить расширение jq, добавить GITHUB_TOKEN и GITHUB_REPO.