Recreate Gitea webhooks during sync
This commit is contained in:
@@ -2,21 +2,9 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
CONFIG_FILE="/opt/appfactory/config/appfactory.env"
|
CONFIG_FILE="/opt/appfactory/config/appfactory.env"
|
||||||
|
|
||||||
if [ ! -f "$CONFIG_FILE" ]; then
|
|
||||||
echo "Missing config file: $CONFIG_FILE"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
source "$CONFIG_FILE"
|
source "$CONFIG_FILE"
|
||||||
|
|
||||||
if [ -z "${GITEA_URL:-}" ] || [ -z "${GITEA_ORG:-}" ] || [ -z "${GITEA_TOKEN:-}" ] || [ -z "${WEBHOOK_INTERNAL_URL:-}" ] || [ -z "${WEBHOOK_SECRET:-}" ]; then
|
echo "Recreating Gitea webhooks"
|
||||||
echo "Missing required config values."
|
|
||||||
echo "Required: GITEA_URL, GITEA_ORG, GITEA_TOKEN, WEBHOOK_INTERNAL_URL, WEBHOOK_SECRET"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Syncing Gitea webhooks"
|
|
||||||
echo "Org: $GITEA_ORG"
|
echo "Org: $GITEA_ORG"
|
||||||
echo "URL: $WEBHOOK_INTERNAL_URL"
|
echo "URL: $WEBHOOK_INTERNAL_URL"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -27,11 +15,6 @@ repos_json="$(curl -sS \
|
|||||||
|
|
||||||
repo_names="$(echo "$repos_json" | jq -r '.[].name')"
|
repo_names="$(echo "$repos_json" | jq -r '.[].name')"
|
||||||
|
|
||||||
if [ -z "$repo_names" ]; then
|
|
||||||
echo "No repositories found."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
for repo in $repo_names; do
|
for repo in $repo_names; do
|
||||||
echo "Repository: $repo"
|
echo "Repository: $repo"
|
||||||
|
|
||||||
@@ -39,10 +22,17 @@ for repo in $repo_names; do
|
|||||||
"$GITEA_URL/api/v1/repos/$GITEA_ORG/$repo/hooks" \
|
"$GITEA_URL/api/v1/repos/$GITEA_ORG/$repo/hooks" \
|
||||||
-H "Authorization: token $GITEA_TOKEN")"
|
-H "Authorization: token $GITEA_TOKEN")"
|
||||||
|
|
||||||
hook_id="$(echo "$hooks_json" | jq -r \
|
echo "$hooks_json" | jq -r '.[] | select(.type == "gitea") | .id' | while read -r hook_id; do
|
||||||
--arg url "$WEBHOOK_INTERNAL_URL" \
|
if [ -n "$hook_id" ] && [ "$hook_id" != "null" ]; then
|
||||||
'.[] | select(.type == "gitea") | select(.config.url == $url) | .id' \
|
echo " Deleting old hook ID: $hook_id"
|
||||||
| head -n 1)"
|
|
||||||
|
curl -sS -X DELETE \
|
||||||
|
"$GITEA_URL/api/v1/repos/$GITEA_ORG/$repo/hooks/$hook_id" \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" >/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo " Creating fresh hook"
|
||||||
|
|
||||||
payload="$(jq -n \
|
payload="$(jq -n \
|
||||||
--arg url "$WEBHOOK_INTERNAL_URL" \
|
--arg url "$WEBHOOK_INTERNAL_URL" \
|
||||||
@@ -58,23 +48,11 @@ for repo in $repo_names; do
|
|||||||
}
|
}
|
||||||
}')"
|
}')"
|
||||||
|
|
||||||
if [ -n "$hook_id" ] && [ "$hook_id" != "null" ]; then
|
curl -sS -X POST \
|
||||||
echo " Updating hook ID: $hook_id"
|
"$GITEA_URL/api/v1/repos/$GITEA_ORG/$repo/hooks" \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
curl -sS -X PATCH \
|
-H "Content-Type: application/json" \
|
||||||
"$GITEA_URL/api/v1/repos/$GITEA_ORG/$repo/hooks/$hook_id" \
|
-d "$payload" >/dev/null
|
||||||
-H "Authorization: token $GITEA_TOKEN" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d "$payload" >/dev/null
|
|
||||||
else
|
|
||||||
echo " Creating hook"
|
|
||||||
|
|
||||||
curl -sS -X POST \
|
|
||||||
"$GITEA_URL/api/v1/repos/$GITEA_ORG/$repo/hooks" \
|
|
||||||
-H "Authorization: token $GITEA_TOKEN" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d "$payload" >/dev/null
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user