ghorg/scripts/local-bitbucket/test-setup.sh

90 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# Quick test script to verify Bitbucket Server setup
# Usage: ./test-setup.sh [BITBUCKET_URL]
BITBUCKET_URL=${1:-"http://bitbucket.example.com:7990"}
ADMIN_USERNAME="admin"
ADMIN_PASSWORD="admin"
echo "=== Testing Bitbucket Server Setup ==="
echo "URL: $BITBUCKET_URL"
echo "Testing with credentials: $ADMIN_USERNAME:$ADMIN_PASSWORD"
echo ""
# Test 1: Check if Bitbucket is responding
echo "1. Testing server response..."
if curl -f -s "$BITBUCKET_URL/status" > /dev/null 2>&1; then
echo "✅ Bitbucket Server is responding"
else
echo "❌ Bitbucket Server is not responding"
echo " Make sure Docker container is running: docker ps | grep bitbucket"
exit 1
fi
# Test 2: Check if setup is needed
echo ""
echo "2. Checking setup status..."
if curl -f -s "$BITBUCKET_URL" | grep -q "setup"; then
echo "⚠️ Setup is required!"
echo ""
echo "MANUAL SETUP STEPS:"
echo "1. Visit: $BITBUCKET_URL"
echo "2. Choose 'Internal' database (H2)"
echo "3. Create admin user:"
echo " - Username: $ADMIN_USERNAME"
echo " - Password: $ADMIN_PASSWORD"
echo " - Email: admin@bitbucket.local"
echo "4. Skip license (evaluation mode)"
echo "5. Complete setup and re-run this test"
echo ""
echo "After setup, run: ./test-setup.sh"
else
echo "✅ Setup appears complete"
fi
# Test 3: Check authentication
echo ""
echo "3. Testing API authentication..."
auth_success=false
endpoints=("/rest/api/1.0/projects" "/rest/api/1.0/users" "/status")
for endpoint in "${endpoints[@]}"; do
echo " Testing: $endpoint"
response=$(curl -s -w "%{http_code}" -u "$ADMIN_USERNAME:$ADMIN_PASSWORD" "$BITBUCKET_URL$endpoint" 2>/dev/null || echo "000")
http_code="${response: -3}"
case "$http_code" in
200|403)
echo " ✅ Auth working ($http_code)"
auth_success=true
break
;;
401)
echo " ❌ Auth failed (401) - setup incomplete"
;;
*)
echo " ⚠️ Unexpected response: $http_code"
;;
esac
done
# Final result
echo ""
if [ "$auth_success" = true ]; then
echo "🎉 SUCCESS: Bitbucket Server is properly set up!"
echo ""
echo "You can now run the integration tests:"
echo " ./start.sh"
echo ""
echo "Or test ghorg manually:"
echo " GHORG_INSECURE_BITBUCKET_CLIENT=true ghorg clone PROJECT_KEY --scm=bitbucket --base-url=$BITBUCKET_URL --bitbucket-username=$ADMIN_USERNAME --token=$ADMIN_PASSWORD --dry-run"
else
echo "❌ FAILED: Authentication not working"
echo ""
echo "Complete the manual setup steps above and re-run this test."
fi