refactor: make all scripts multi-project via env vars
Replace hardcoded harb references across the entire codebase: - HARB_REPO_ROOT → PROJECT_REPO_ROOT (with deprecated alias) - Derive PROJECT_NAME from CODEBERG_REPO slug - Add PRIMARY_BRANCH (master/main), WOODPECKER_REPO_ID env vars - Parameterize worktree prefixes, docker container names, branch refs - Genericize agent prompts (gardener, factory supervisor) - Update best-practices docs to use $-vars, prefix harb lessons All project-specific values now flow from .env → lib/env.sh → scripts. Backward-compatible: existing harb setups work without .env changes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f16df6c53e
commit
90ef03a304
16 changed files with 117 additions and 116 deletions
|
|
@ -1,15 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
# review-poll.sh — Poll open PRs and review those with green CI
|
||||
#
|
||||
# Peek while running: cat /tmp/harb-review-status
|
||||
# Full log: tail -f ~/scripts/harb-review/review.log
|
||||
# Peek while running: cat /tmp/<project>-review-status
|
||||
# Full log: tail -f <factory-root>/review/review.log
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Load shared environment
|
||||
source "$(dirname "$0")/../lib/env.sh"
|
||||
|
||||
export HOME="${HOME:-/home/debian}"
|
||||
|
||||
REPO="${CODEBERG_REPO}"
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
|
@ -35,10 +34,10 @@ log "--- Poll start ---"
|
|||
|
||||
PRS=$(curl -sf -H "Authorization: token ${CODEBERG_TOKEN}" \
|
||||
"${API_BASE}/pulls?state=open&limit=20" | \
|
||||
jq -r '.[] | select(.base.ref == "master") | select(.draft != true) | select(.title | test("^\\[?WIP[\\]:]"; "i") | not) | "\(.number) \(.head.sha)"')
|
||||
jq -r --arg branch "${PRIMARY_BRANCH}" '.[] | select(.base.ref == $branch) | select(.draft != true) | select(.title | test("^\\[?WIP[\\]:]"; "i") | not) | "\(.number) \(.head.sha)"')
|
||||
|
||||
if [ -z "$PRS" ]; then
|
||||
log "No open PRs targeting master"
|
||||
log "No open PRs targeting ${PRIMARY_BRANCH}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
# - Auto-creates follow-up issues for pre-existing bugs flagged by reviewer
|
||||
# - JSON output format with validation + retry
|
||||
#
|
||||
# Peek while running: cat /tmp/harb-review-status
|
||||
# Watch log: tail -f ~/scripts/harb-review/review.log
|
||||
# Peek while running: cat /tmp/<project>-review-status
|
||||
# Watch log: tail -f <factory-root>/review/review.log
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
|
|
@ -21,12 +21,12 @@ source "$(dirname "$0")/../lib/env.sh"
|
|||
PR_NUMBER="${1:?Usage: review-pr.sh <pr-number> [--force]}"
|
||||
FORCE="${2:-}"
|
||||
REPO="${CODEBERG_REPO}"
|
||||
REPO_ROOT="/home/debian/harb"
|
||||
REPO_ROOT="${PROJECT_REPO_ROOT}"
|
||||
|
||||
# Bot account for posting reviews (separate user required for branch protection approvals)
|
||||
API_BASE="${CODEBERG_API}"
|
||||
LOCKFILE="/tmp/harb-review.lock"
|
||||
STATUSFILE="/tmp/harb-review-status"
|
||||
LOCKFILE="/tmp/${PROJECT_NAME}-review.lock"
|
||||
STATUSFILE="/tmp/${PROJECT_NAME}-review-status"
|
||||
LOGDIR="${FACTORY_ROOT}/review"
|
||||
LOGFILE="$LOGDIR/review.log"
|
||||
MIN_MEM_MB=1500
|
||||
|
|
@ -91,8 +91,8 @@ log "${PR_TITLE} (${PR_HEAD}→${PR_BASE} ${PR_SHA:0:7})"
|
|||
if [ "$PR_STATE" != "open" ]; then
|
||||
log "SKIP: state=${PR_STATE}"
|
||||
cd "$REPO_ROOT"
|
||||
git worktree remove "/tmp/harb-review-${PR_NUMBER}" --force 2>/dev/null || true
|
||||
rm -rf "/tmp/harb-review-${PR_NUMBER}" 2>/dev/null || true
|
||||
git worktree remove "/tmp/${PROJECT_NAME}-review-${PR_NUMBER}" --force 2>/dev/null || true
|
||||
rm -rf "/tmp/${PROJECT_NAME}-review-${PR_NUMBER}" 2>/dev/null || true
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
|
@ -181,7 +181,7 @@ fi
|
|||
status "checking out PR branch"
|
||||
cd "$REPO_ROOT"
|
||||
git fetch origin "$PR_HEAD" 2>/dev/null || true
|
||||
REVIEW_WORKTREE="/tmp/harb-review-${PR_NUMBER}"
|
||||
REVIEW_WORKTREE="/tmp/${PROJECT_NAME}-review-${PR_NUMBER}"
|
||||
|
||||
if [ -d "$REVIEW_WORKTREE" ]; then
|
||||
cd "$REVIEW_WORKTREE"
|
||||
|
|
@ -340,7 +340,7 @@ DEVRESP_EOF
|
|||
${INCREMENTAL_DIFF}
|
||||
\`\`\`
|
||||
|
||||
### Full Diff (master..${PR_SHA:0:7})
|
||||
### Full Diff (${PRIMARY_BRANCH}..${PR_SHA:0:7})
|
||||
\`\`\`diff
|
||||
${DIFF}
|
||||
\`\`\`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue