github.com/goreleaser/goreleaser@v1.25.1/scripts/get-releases.sh (about) 1 #!/usr/bin/env bash 2 set -euo pipefail 3 4 get_last_page() { 5 local url="$1" 6 curl -sSf -I -H "Authorization: Bearer $GITHUB_TOKEN" \ 7 "$url" | 8 grep -E '^link: ' | 9 sed -e 's/^link:.*page=//g' -e 's/>.*$//g' || echo "1" 10 } 11 12 generate() { 13 local url="$1" 14 local file="$2" 15 last_page="$(get_last_page "$url")" 16 tmp="$(mktemp -d)" 17 18 for i in $(seq -w 1 "$last_page"); do 19 page="$(echo "$i" | awk '$0*=1')" # removes leading zeroes 20 echo "page: $page file: $tmp/$i.json" 21 curl \ 22 -H "Authorization: Bearer $GITHUB_TOKEN" \ 23 -sSf "$url?page=$page" | 24 jq 'map({tag_name: .tag_name}) | [.[] | select(.tag_name != "nightly")]' >"$tmp/$i.json" 25 26 done 27 28 jq -s 'add' "$tmp"/*.json >"$file" 29 du -hs "$file" 30 } 31 32 latest() { 33 local url="$1" 34 local file="$2" 35 curl -sfL "$url/latest" | jq -r ".tag_name" >"$file" 36 du -hs "$file" 37 } 38 39 latest "https://api.github.com/repos/goreleaser/goreleaser/releases" "www/docs/static/latest" 40 latest "https://api.github.com/repos/goreleaser/goreleaser-pro/releases" "www/docs/static/latest-pro" 41 generate "https://api.github.com/repos/goreleaser/goreleaser/releases" "www/docs/static/releases.json" 42 generate "https://api.github.com/repos/goreleaser/goreleaser-pro/releases" "www/docs/static/releases-pro.json"