Пришлось на днях работать над выводом списка релизов с 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
Данный скрипт заберет только первые сто релизов, так что если нужно больше то нужно делать еще пагинацию.