From 0b28c71e11c0bf53956ee1b7ddea7274de262ed6 Mon Sep 17 00:00:00 2001 From: m3taversal Date: Thu, 16 Apr 2026 18:10:06 +0100 Subject: [PATCH] Wire github_pr storage into sync-mirror.sh (Step 3) When mirror auto-creates a Forgejo PR from a GitHub branch, look up the GitHub PR number via API and store it in pipeline.db (github_pr column from migration v21). Enables reverse mapping for feedback and back-sync. Co-Authored-By: Claude Opus 4.6 (1M context) --- deploy/sync-mirror.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/deploy/sync-mirror.sh b/deploy/sync-mirror.sh index 92595e4..436ad1e 100755 --- a/deploy/sync-mirror.sh +++ b/deploy/sync-mirror.sh @@ -11,6 +11,9 @@ set -euo pipefail REPO_DIR="/opt/teleo-eval/mirror/teleo-codex.git" LOG="/opt/teleo-eval/logs/sync.log" LOCKFILE="/tmp/sync-mirror.lock" +PIPELINE_DB="/opt/teleo-eval/pipeline/pipeline.db" +GITHUB_PAT_FILE="/opt/teleo-eval/secrets/github-pat" +GITHUB_REPO="living-ip/teleo-codex" log() { echo "[$(date -Iseconds)] $1" >> "$LOG"; } @@ -146,6 +149,18 @@ print('no') PR_NUM=$(echo "$RESULT" | grep -o '"number":[0-9]*' | head -1 | grep -o "[0-9]*" || true) if [ -n "$PR_NUM" ]; then log "Auto-created PR #$PR_NUM on Forgejo for $branch" + # Step 4.5: Link GitHub PR to Forgejo PR in pipeline DB + GITHUB_PAT=$(cat "$GITHUB_PAT_FILE" 2>/dev/null | tr -d '[:space:]') + if [ -n "$GITHUB_PAT" ]; then + GH_PR_NUM=$(curl -sf "https://api.github.com/repos/$GITHUB_REPO/pulls?head=living-ip:$branch&state=all" \ + -H "Authorization: token $GITHUB_PAT" 2>/dev/null | \ + python3 -c "import sys,json; prs=json.load(sys.stdin); print(prs[0]['number'] if prs else '')" 2>/dev/null || true) + if [ -n "$GH_PR_NUM" ]; then + sqlite3 "$PIPELINE_DB" "UPDATE prs SET github_pr = $GH_PR_NUM WHERE number = $PR_NUM;" 2>/dev/null && \ + log "Linked GitHub PR #$GH_PR_NUM -> Forgejo PR #$PR_NUM" || \ + log "WARN: Failed to link GitHub PR #$GH_PR_NUM to Forgejo PR #$PR_NUM in DB" + fi + fi else log "WARN: Failed to auto-create PR for $branch" fi