fix: lib: get all releases (#544)
Loop over all pages instead of getting the first one only to not miss any version. Reviewed-on: https://code.forgejo.org/forgejo/end-to-end/pulls/544 Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org> Co-authored-by: limiting-factor <limiting-factor@posteo.com> Co-committed-by: limiting-factor <limiting-factor@posteo.com>
This commit is contained in:
parent
6f6466b3f6
commit
310322d01f
1 changed files with 14 additions and 1 deletions
15
lib/lib.sh
15
lib/lib.sh
|
|
@ -89,12 +89,25 @@ function retry() {
|
|||
fi
|
||||
}
|
||||
|
||||
function get_versions() {
|
||||
local releases=$1
|
||||
local page=1
|
||||
while true; do
|
||||
curl --fail -sS "$releases?limit=100&page=$page" | jq -r '.[] | .tag_name' >/tmp/page
|
||||
cat /tmp/page
|
||||
if ! test -s /tmp/page; then
|
||||
break
|
||||
fi
|
||||
page=$(expr $page + 1)
|
||||
done | grep -v -e '-rc' | sort --version-sort
|
||||
}
|
||||
|
||||
function full_version() {
|
||||
local version=$1
|
||||
local owner=$2
|
||||
|
||||
if [[ $version =~ ^[0-9]+\.[0-9]+$ ]]; then
|
||||
full_version=$(curl -sS "$FORGEJO_INSTANCE/api/v1/repos/$owner/forgejo/releases?limit=50" | jq -r '.[] | .tag_name | select(startswith("v'$version'"))' | sort --reverse --version-sort | head -1)
|
||||
full_version=$(get_versions "$FORGEJO_INSTANCE/api/v1/repos/$owner/forgejo/releases" | sed -n -e "/^v$version/p" | sort --reverse --version-sort | head -1)
|
||||
echo ${full_version#v}
|
||||
else
|
||||
echo $version
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue