Fix webhook git pull with safe directory

This commit is contained in:
IGNY8 VPS (Salman)
2025-11-10 12:10:42 +00:00
parent 869b41b84d
commit aa0e6b2c96

View File

@@ -530,32 +530,29 @@ def gitea_webhook(request):
logger.info(f"[Webhook] Processing push: {commit_count} commit(s) by {pusher} to {repo_full_name}") logger.info(f"[Webhook] Processing push: {commit_count} commit(s) by {pusher} to {repo_full_name}")
# Pull latest code - trigger systemd service on host # Pull latest code - run git pull directly
try: try:
import socket import subprocess
logger.info(f"[Webhook] Triggering git pull...") logger.info(f"[Webhook] Pulling latest code...")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Set safe directory first
sock.settimeout(5) subprocess.run(
sock.connect(('127.0.0.1', 9999)) ['git', 'config', '--global', '--add', 'safe.directory', '/data/app/igny8'],
sock.close() capture_output=True,
logger.info(f"[Webhook] Git pull triggered successfully") timeout=5
)
# Pull latest code
result = subprocess.run(
['git', '-C', '/data/app/igny8', 'pull', 'origin', 'main'],
capture_output=True,
text=True,
timeout=30
)
if result.returncode == 0:
logger.info(f"[Webhook] Git pull successful")
else:
logger.error(f"[Webhook] Git pull failed: {result.stderr}")
except Exception as e: except Exception as e:
logger.error(f"[Webhook] Failed to trigger git pull: {e}") logger.error(f"[Webhook] Git pull error: {e}")
# Fallback: try direct git pull
try:
import subprocess
result = subprocess.run(
['git', '-C', '/data/app/igny8', 'pull', 'origin', 'main'],
capture_output=True,
text=True,
timeout=30
)
if result.returncode == 0:
logger.info(f"[Webhook] Git pull successful (fallback)")
else:
logger.error(f"[Webhook] Git pull failed: {result.stderr}")
except Exception as e2:
logger.error(f"[Webhook] Fallback git pull also failed: {e2}")
# Trigger deployment - restart containers # Trigger deployment - restart containers
deployment_success = False deployment_success = False