Bump to v0.1.6.2
This commit is contained in:
@@ -44,13 +44,30 @@ if [ -z "$TOKEN" ]; then
|
||||
echo "GITEA_API_TOKEN not set (in .env)." >&2; exit 1
|
||||
fi
|
||||
|
||||
# Derive asset name early for later use
|
||||
ASSET_NAME="$(basename "$ASSET_PATH")"
|
||||
|
||||
BODY="Tailscale Funnel Plugin ${TAG}\n\nAutomated release."
|
||||
if [ -n "$BODY_FILE" ] && [ -f "$BODY_FILE" ]; then
|
||||
BODY=$(cat "$BODY_FILE")
|
||||
fi
|
||||
|
||||
# Build JSON payload via python (robust quoting)
|
||||
create_payload=$(REL_TAG="$TAG" REL_NAME="$NAME" REL_BODY_TXT="$BODY" python3 - <<'PY'
|
||||
# Try to fetch existing release by tag first
|
||||
get_resp=$(curl -sS -H "Authorization: token ${TOKEN}" "${API_URL}/repos/${OWNER}/${REPO}/releases/tags/${TAG}" || true)
|
||||
rel_id=$(python3 - <<'PY'
|
||||
import sys, json
|
||||
data=sys.stdin.read().strip()
|
||||
try:
|
||||
obj=json.loads(data) if data else {}
|
||||
print(obj.get('id',''))
|
||||
except Exception:
|
||||
print('')
|
||||
PY
|
||||
<<<"$get_resp")
|
||||
|
||||
if [ -z "$rel_id" ]; then
|
||||
# Build minimal JSON payload (use existing tag)
|
||||
create_payload=$(REL_TAG="$TAG" REL_NAME="$NAME" REL_BODY_TXT="$BODY" python3 - <<'PY'
|
||||
import json, os
|
||||
payload = {
|
||||
"tag_name": os.environ["REL_TAG"],
|
||||
@@ -61,37 +78,44 @@ payload = {
|
||||
}
|
||||
print(json.dumps(payload))
|
||||
PY
|
||||
)
|
||||
)
|
||||
|
||||
create_resp=$(curl -sS -X POST \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "Authorization: token ${TOKEN}" \
|
||||
-d "$create_payload" \
|
||||
"${API_URL}/repos/${OWNER}/${REPO}/releases" || true)
|
||||
create_resp=$(curl -sS -X POST \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "Authorization: token ${TOKEN}" \
|
||||
-d "$create_payload" \
|
||||
"${API_URL}/repos/${OWNER}/${REPO}/releases" || true)
|
||||
|
||||
# Extract id; if missing, fetch by tag
|
||||
rel_id=$(python3 - <<'PY'
|
||||
import sys, json
|
||||
data=sys.stdin.read().strip()
|
||||
if not data:
|
||||
print("")
|
||||
else:
|
||||
try:
|
||||
obj=json.loads(data)
|
||||
print(obj.get('id',''))
|
||||
except Exception:
|
||||
print("")
|
||||
PY
|
||||
<<<"$create_resp")
|
||||
|
||||
if [ -z "$rel_id" ]; then
|
||||
get_resp=$(curl -sS -H "Authorization: token ${TOKEN}" "${API_URL}/repos/${OWNER}/${REPO}/releases/tags/${TAG}")
|
||||
# Extract id from create response
|
||||
rel_id=$(python3 - <<'PY'
|
||||
import sys, json
|
||||
obj=json.loads(sys.stdin.read())
|
||||
print(obj.get('id',''))
|
||||
data=sys.stdin.read().strip()
|
||||
try:
|
||||
obj=json.loads(data) if data else {}
|
||||
print(obj.get('id',''))
|
||||
except Exception:
|
||||
print('')
|
||||
PY
|
||||
<<<"$get_resp")
|
||||
<<<"$create_resp")
|
||||
fi
|
||||
|
||||
# Fallback: search releases list for matching tag if still empty
|
||||
if [ -z "$rel_id" ]; then
|
||||
list_resp=$(curl -sS -H "Authorization: token ${TOKEN}" "${API_URL}/repos/${OWNER}/${REPO}/releases?limit=100")
|
||||
rel_id=$(python3 - <<'PY'
|
||||
import sys, json, os
|
||||
data=sys.stdin.read().strip()
|
||||
try:
|
||||
arr=json.loads(data) if data else []
|
||||
tag=os.environ.get('TAG')
|
||||
for rel in arr:
|
||||
if rel.get('tag_name')==tag:
|
||||
print(rel.get('id',''))
|
||||
break
|
||||
except Exception:
|
||||
pass
|
||||
PY
|
||||
<<<"$list_resp")
|
||||
fi
|
||||
|
||||
if [ -z "$rel_id" ]; then
|
||||
@@ -114,14 +138,14 @@ try:
|
||||
except Exception:
|
||||
pass
|
||||
PY
|
||||
ASSET_NAME="$(basename "$ASSET_PATH")" <<<"$assets_json")
|
||||
<<<"$assets_json")
|
||||
|
||||
if [ -n "$asset_id" ]; then
|
||||
curl -sS -X DELETE -H "Authorization: token ${TOKEN}" "${API_URL}/repos/${OWNER}/${REPO}/releases/${rel_id}/assets/${asset_id}" >/dev/null || true
|
||||
fi
|
||||
|
||||
# Upload asset
|
||||
upload_resp=$(curl -sS -H "Authorization: token ${TOKEN}" -F attachment=@"${ASSET_PATH}" "${API_URL}/repos/${OWNER}/${REPO}/releases/${rel_id}/assets?name=$(basename "$ASSET_PATH")")
|
||||
upload_resp=$(curl -sS -H "Authorization: token ${TOKEN}" -F attachment=@"${ASSET_PATH}" "${API_URL}/repos/${OWNER}/${REPO}/releases/${rel_id}/assets?name=${ASSET_NAME}")
|
||||
|
||||
html_url=$(python3 - <<'PY'
|
||||
import sys, json
|
||||
|
Reference in New Issue
Block a user