Вывод релизов с Github API при помощи SH скрипта

Пришлось на днях работать над выводом списка релизов с 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

Данный скрипт заберет только первые сто релизов, так что если нужно больше то нужно делать еще пагинацию.

Leave a Comment

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