feat(scripts): add script to fetch Gitea release assets
- Adds a Bash script to fetch Gitea release metadata and assets - Supports configurable inputs for URL, token, owner, and repository - Saves release data and assets to a temporary directory
This commit is contained in:
57
scripts/fetch-gitea-release.sh
Executable file
57
scripts/fetch-gitea-release.sh
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Erwartet: $TAG, $GITEA_URL, $GITEA_TOKEN, $GITEA_OWNER, $GITEA_REPO
|
||||||
|
|
||||||
|
if [[ -z "${TAG:-}" ]]; then
|
||||||
|
echo "❌ TAG is not set."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Defaults (können durch INPUT_* oder ENV überschrieben werden)
|
||||||
|
GITEA_URL="${INPUT_GITEA_URL:-${GITEA_URL:-https://gitea.example.tld}}"
|
||||||
|
GITEA_TOKEN="${INPUT_GITEA_TOKEN:-${GITEA_TOKEN:-}}"
|
||||||
|
GITEA_OWNER="${INPUT_GITEA_OWNER:-${GITEA_OWNER:-${GITHUB_REPOSITORY%%/*}}}"
|
||||||
|
GITEA_REPO="${INPUT_GITEA_REPO:-${GITEA_REPO:-${GITHUB_REPOSITORY##*/}}}"
|
||||||
|
|
||||||
|
# Zielverzeichnis vorbereiten
|
||||||
|
OUT_DIR="/tmp/gitea_release_${TAG}"
|
||||||
|
mkdir -p "$OUT_DIR/assets"
|
||||||
|
|
||||||
|
# Release-ID abrufen
|
||||||
|
RELEASE_META=$(curl -sf \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
"$GITEA_URL/api/v1/repos/$GITEA_OWNER/$GITEA_REPO/releases/tags/$TAG")
|
||||||
|
|
||||||
|
RELEASE_ID=$(echo "$RELEASE_META" | jq -r '.id')
|
||||||
|
if [[ -z "$RELEASE_ID" || "$RELEASE_ID" == "null" ]]; then
|
||||||
|
echo "❌ Release '$TAG' nicht gefunden."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Vollständige Release-Details abrufen
|
||||||
|
RELEASE_JSON=$(curl -sf \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
"$GITEA_URL/api/v1/repos/$GITEA_OWNER/$GITEA_REPO/releases/$RELEASE_ID")
|
||||||
|
|
||||||
|
echo "$RELEASE_JSON" > "$OUT_DIR/release.json"
|
||||||
|
echo "✅ Metadaten gespeichert unter: $OUT_DIR/release.json"
|
||||||
|
|
||||||
|
# Assets herunterladen
|
||||||
|
ASSETS=$(echo "$RELEASE_JSON" | jq -c '.assets[]?')
|
||||||
|
|
||||||
|
for asset in $ASSETS; do
|
||||||
|
NAME=$(echo "$asset" | jq -r '.name')
|
||||||
|
URL=$(echo "$asset" | jq -r '.browser_download_url')
|
||||||
|
|
||||||
|
echo "⬇ Lade Asset '$NAME' herunter ..."
|
||||||
|
curl -sfL \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
"$URL" \
|
||||||
|
-o "$OUT_DIR/assets/$NAME"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "GT_RSA_RELEASE_DIR=$OUT_DIR" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
echo "✅ Alle Assets gespeichert unter: $OUT_DIR/assets"
|
||||||
|
echo "✅ Release-Metadaten gespeichert unter: $OUT_DIR/release.json"
|
Reference in New Issue
Block a user