Пришлось на днях работать над выводом списка релизов с Github. Для остроты ощущений был написан простой sh скрипт, который выводит в stdout список всех релизов указанного репозитория на гитхабе. Для манипуляции с JSON ответом была выбрана библиотека jq.
#!/usr/bin/env sh
# Get releases
DRAFTS=""
i=1
while [ $i -le ${PAGES} ]; do
p=$(curl --silent --get "https://${ACCESS_TOKEN}@api.github.com/repos/${REPOSITORY}/releases?per_page=100" | jq -r '.[] | select(.draft==false) | [ .tag_name, .id|tostring ] | join(";")')
DRAFTS="$DRAFTS$p"
i=$(( i + 1 ))
done
DRAFT_COUNT=$(echo "${DRAFTS}" | wc -l)
DRAFT_COUNT=$((DRAFT_COUNT + 0))
echo "Found ${DRAFT_COUNT} releases"
Для работы необходимо предоставить ACCESS_TOKEN для с github и REPOSITORY вида team_name/repo_name
Данный скрипт заберет только первые сто релизов, так что если нужно больше то нужно делать еще пагинацию.