From aa0e6b2c96f0c205a6d620ac17fac77d729dde17 Mon Sep 17 00:00:00 2001 From: "IGNY8 VPS (Salman)" Date: Mon, 10 Nov 2025 12:10:42 +0000 Subject: [PATCH] Fix webhook git pull with safe directory --- backend/igny8_core/modules/system/views.py | 45 ++++++++++------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/backend/igny8_core/modules/system/views.py b/backend/igny8_core/modules/system/views.py index 28274dc1..b8f1611e 100644 --- a/backend/igny8_core/modules/system/views.py +++ b/backend/igny8_core/modules/system/views.py @@ -530,32 +530,29 @@ def gitea_webhook(request): 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: - import socket - logger.info(f"[Webhook] Triggering git pull...") - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.settimeout(5) - sock.connect(('127.0.0.1', 9999)) - sock.close() - logger.info(f"[Webhook] Git pull triggered successfully") + import subprocess + logger.info(f"[Webhook] Pulling latest code...") + # Set safe directory first + subprocess.run( + ['git', 'config', '--global', '--add', 'safe.directory', '/data/app/igny8'], + capture_output=True, + 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: - logger.error(f"[Webhook] Failed to trigger git pull: {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}") + logger.error(f"[Webhook] Git pull error: {e}") # Trigger deployment - restart containers deployment_success = False