#!/bin/bash set -e # Hook Scripts Run in: Multi-Agent System Root # Context Env: WORK_DIR, AGENT_NAME, etc. echo "[Hook:Local:Checkout] Start for task $TASK_ID" # 1. 模拟 Remote Repo 初始化 (如果不存在) # 实际场景:这是 Github 服务器,不需要我们管 MOCK_REMOTE_DIR="/tmp/test-repo" if [ ! -d "$MOCK_REMOTE_DIR/.git" ]; then echo "Initializing mock remote repo at $MOCK_REMOTE_DIR" mkdir -p $MOCK_REMOTE_DIR cd $MOCK_REMOTE_DIR git init --bare # 创建一个初始 commit 否则 clone 会报错 # 为了方便,我们在另一个临时目录 init 然后 push 过来 TMP_INIT="/tmp/init-repo" rm -rf $TMP_INIT mkdir -p $TMP_INIT cd $TMP_INIT git init echo "# Mock Repo" > README.md git add . git commit -m "Initial commit" git remote add origin $MOCK_REMOTE_DIR git push -u origin HEAD:master fi # 2. 模拟 Remote Agent 初始化 # 实际场景:Docker 容器启动时 Clone # 我们的 Mock Agent 直接在 /tmp/agent-workspace 工作 WORK_AREA="/tmp/agent-workspace" echo "Setting up workspace at $WORK_AREA" rm -rf $WORK_AREA # 清理旧环境 git clone $MOCK_REMOTE_DIR $WORK_AREA cd $WORK_AREA # 3. Checkout Feature Branch BRANCH_NAME="feat/$TASK_ID" echo "Switching to branch $BRANCH_NAME" git checkout -b $BRANCH_NAME echo "[Hook:Local:Checkout] Done."