#!/usr/bin/env bash set -euo pipefail get_last_page() { local url="$1" curl -sSf -I -H "Authorization: Bearer $GITHUB_TOKEN" \ "$url" | grep -E '^link: ' | sed -e 's/^link:.*page=//g' -e 's/>.*$//g' || echo "1" } generate() { local url="$1" local file="$2" last_page="$(get_last_page "$url")" tmp="$(mktemp -d)" for i in $(seq -w 1 "$last_page"); do page="$(echo "$i" | awk '$0*=1')" # removes leading zeroes echo "page: $page file: $tmp/$i.json" curl \ -H "Authorization: Bearer $GITHUB_TOKEN" \ -sSf "$url?page=$page" | jq 'map({tag_name: .tag_name}) | [.[] | select(.tag_name != "nightly")]' >"$tmp/$i.json" done jq -s 'add' "$tmp"/*.json >"$file" du -hs "$file" } latest() { local url="$1" local file="$2" curl -sfL "$url/latest" | jq -r ".tag_name" >"$file" du -hs "$file" } latest "https://api.github.com/repos/goreleaser/goreleaser/releases" "www/docs/static/latest" latest "https://api.github.com/repos/goreleaser/goreleaser-pro/releases" "www/docs/static/latest-pro" generate "https://api.github.com/repos/goreleaser/goreleaser/releases" "www/docs/static/releases.json" generate "https://api.github.com/repos/goreleaser/goreleaser-pro/releases" "www/docs/static/releases-pro.json"