From 09c198490d9f979f0ffa30ef117dac47834df5f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20West=C3=B6=C3=B6?= Date: Sat, 24 Jan 2026 08:40:50 +0100 Subject: [PATCH] Make GITEA_API_TOKEN required for automatic deployments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic deployments are essential for the template, so GITEA_API_TOKEN is now required. Changes: - .env.example: Marked both API keys as REQUIRED - deploy-to-apps.example.sh: Script now exits with error if GITEA_API_TOKEN not set - Added clear instructions on how to get Gitea API token Without webhooks, users would need to manually trigger deployments after every push, which defeats the purpose of automated infrastructure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .env.example | 4 +-- deploy-to-apps.example.sh | 64 ++++++++++++++++++++++----------------- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/.env.example b/.env.example index 86e6515..51559e6 100644 --- a/.env.example +++ b/.env.example @@ -65,10 +65,10 @@ DB_PASSWORD= # =================================== # API Tokens (for deployment script) # =================================== -# Get your SAAC_API_KEY from: https://apps.startanaicompany.com/api/v1/register +# REQUIRED: Get your SAAC_API_KEY from: https://apps.startanaicompany.com/api/v1/register # Set as environment variable: export SAAC_API_KEY="your_key_here" # -# GITEA_API_TOKEN is optional - only needed for automatic webhook setup +# REQUIRED: GITEA_API_TOKEN needed for automatic deployments (webhook setup) # Get from: https://git.startanaicompany.com → Settings → Applications → Generate New Token # Set as environment variable: export GITEA_API_TOKEN="your_token_here" diff --git a/deploy-to-apps.example.sh b/deploy-to-apps.example.sh index bc81d76..9ebb94d 100644 --- a/deploy-to-apps.example.sh +++ b/deploy-to-apps.example.sh @@ -12,7 +12,7 @@ # Prerequisites: # 1. Register for API key at: https://apps.startanaicompany.com/api/v1/register # 2. Set SAAC_API_KEY environment variable -# 3. Set GITEA_API_TOKEN environment variable (optional, for webhooks) +# 3. Set GITEA_API_TOKEN environment variable (required for automatic deployments) # 4. Customize your .env file with company information set -e # Exit on error @@ -131,34 +131,42 @@ echo "" echo "🪝 Setting up deployment webhook..." if [ -z "$GITEA_API_TOKEN" ]; then - echo "⚠️ Warning: GITEA_API_TOKEN not set" - echo " Skipping webhook setup. You can configure it manually later." - echo " Webhook URL: $WEBHOOK_URL" + echo "❌ Error: GITEA_API_TOKEN environment variable not set" + echo "" + echo "Automatic deployments require GITEA_API_TOKEN to set up webhooks." + echo "" + echo "To get your Gitea API token:" + echo "1. Go to https://git.startanaicompany.com" + echo "2. Click your profile → Settings → Applications" + echo "3. Generate New Token (grant 'repo' permissions)" + echo "4. Export it: export GITEA_API_TOKEN='your_token_here'" + echo "" + exit 1 +fi + +# Create webhook in Gitea +GITEA_API="https://git.startanaicompany.com/api/v1" +WEBHOOK_RESPONSE=$(curl -s -X POST "${GITEA_API}/repos/${GITEA_USERNAME}/${GITEA_REPO_NAME}/hooks" \ + -H "Authorization: token ${GITEA_API_TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{ + \"type\": \"gitea\", + \"config\": { + \"url\": \"${WEBHOOK_URL}\", + \"content_type\": \"json\", + \"http_method\": \"GET\" + }, + \"events\": [\"push\"], + \"authorization_header\": \"Bearer ${SAAC_API_KEY}\", + \"active\": true + }") + +WEBHOOK_ID=$(echo "$WEBHOOK_RESPONSE" | jq -r '.id' 2>/dev/null) + +if [ "$WEBHOOK_ID" == "null" ] || [ -z "$WEBHOOK_ID" ]; then + echo "⚠️ Warning: Failed to create Gitea webhook (may already exist)" else - # Create webhook in Gitea - GITEA_API="https://git.startanaicompany.com/api/v1" - WEBHOOK_RESPONSE=$(curl -s -X POST "${GITEA_API}/repos/${GITEA_USERNAME}/${GITEA_REPO_NAME}/hooks" \ - -H "Authorization: token ${GITEA_API_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{ - \"type\": \"gitea\", - \"config\": { - \"url\": \"${WEBHOOK_URL}\", - \"content_type\": \"json\", - \"http_method\": \"GET\" - }, - \"events\": [\"push\"], - \"authorization_header\": \"Bearer ${SAAC_API_KEY}\", - \"active\": true - }") - - WEBHOOK_ID=$(echo "$WEBHOOK_RESPONSE" | jq -r '.id' 2>/dev/null) - - if [ "$WEBHOOK_ID" == "null" ] || [ -z "$WEBHOOK_ID" ]; then - echo "⚠️ Warning: Failed to create Gitea webhook (may already exist)" - else - echo "✅ Webhook configured for automatic deployments" - fi + echo "✅ Webhook configured for automatic deployments" fi echo ""