Files
stonks-oracle/pipelines/fix-webhook.sh
T

32 lines
1.2 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# fix-webhook.sh — Fix Woodpecker webhook to use internal cluster URL
# Run this after activating the repo in the Woodpecker UI
GITEA_AUTH="Authorization: Basic $(echo -n 'admin:St0nks0racl3!' | base64)"
GITEA_API="http://10.1.1.12:30300/api/v1"
HOOK_ID=$(curl -s -H "$GITEA_AUTH" "$GITEA_API/repos/admin/stonks-oracle/hooks" | python3 -c '
import sys, json
hooks = json.loads(sys.stdin.read())
for h in hooks:
if "woodpecker" in h["config"]["url"] or "hook" in h["config"]["url"]:
print(h["id"])
break
' 2>/dev/null || echo "")
if [ -z "$HOOK_ID" ]; then
echo "No Woodpecker webhook found. Activate the repo in Woodpecker first."
exit 1
fi
TOKEN=$(curl -s -H "$GITEA_AUTH" "$GITEA_API/repos/admin/stonks-oracle/hooks/$HOOK_ID" | \
python3 -c 'import sys,json; print(json.loads(sys.stdin.read())["config"]["url"].split("access_token=")[1])')
curl -s -X PATCH -H "$GITEA_AUTH" -H "Content-Type: application/json" \
"$GITEA_API/repos/admin/stonks-oracle/hooks/$HOOK_ID" \
-d "{\"config\":{\"url\":\"http://woodpecker-server.woodpecker.svc.cluster.local:80/api/hook?access_token=${TOKEN}\",\"content_type\":\"json\"},\"active\":true}" > /dev/null
echo "✓ Webhook fixed to internal URL"