GitHub API — полезные примеры curl запросов с releases API

Очередная подборка полезных curl запросов для работы с GitHub API:

  1. Получить объект 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"\"')')"
  2. Получить uploadUrl для загрузки нового asset в данный release объект:
    uploadUrl="$(jq -r '.upload_url' <<< "${release}")"
  3. Удаление 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.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *