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:
johba 2026-03-14 13:49:09 +01:00
parent f16df6c53e
commit 90ef03a304
16 changed files with 117 additions and 116 deletions

View file

@ -12,10 +12,9 @@ set -euo pipefail
# Load shared environment
source "$(dirname "$0")/../lib/env.sh"
export WOODPECKER_SERVER="http://localhost:8000"
# WOODPECKER_TOKEN loaded from .env via env.sh
REPO="johba/harb"
API="${WOODPECKER_SERVER}/api/repos/2"
REPO="${CODEBERG_REPO}"
API="${WOODPECKER_SERVER}/api/repos/${WOODPECKER_REPO_ID}"
api() {
curl -sf -H "Authorization: Bearer ${WOODPECKER_TOKEN}" "${API}/$1"

View file

@ -25,10 +25,14 @@ if [ -z "${CODEBERG_TOKEN:-}" ]; then
fi
export CODEBERG_TOKEN
# Defaults
# Project config
export CODEBERG_REPO="${CODEBERG_REPO:-johba/harb}"
export CODEBERG_API="${CODEBERG_API:-https://codeberg.org/api/v1/repos/${CODEBERG_REPO}}"
export HARB_REPO_ROOT="${HARB_REPO_ROOT:-/home/debian/harb}"
export PROJECT_NAME="${PROJECT_NAME:-${CODEBERG_REPO##*/}}"
export PROJECT_REPO_ROOT="${PROJECT_REPO_ROOT:-${HARB_REPO_ROOT:-/home/${USER}/${PROJECT_NAME}}}"
export HARB_REPO_ROOT="${PROJECT_REPO_ROOT}" # deprecated alias
export PRIMARY_BRANCH="${PRIMARY_BRANCH:-master}"
export WOODPECKER_REPO_ID="${WOODPECKER_REPO_ID:-2}"
export WOODPECKER_SERVER="${WOODPECKER_SERVER:-http://localhost:8000}"
export CLAUDE_TIMEOUT="${CLAUDE_TIMEOUT:-7200}"