sync: 自动同步未提交变更 [create TASK-20260323234126]
This commit is contained in:
@@ -86,10 +86,27 @@ while true; do
|
||||
echo "" >> "$DONE_FILE"
|
||||
echo "✅ 监控自动发现任务成功,工作流正常" >> "$DONE_FILE"
|
||||
|
||||
# 完成任务后删除.task文件
|
||||
# 解析任务内容,提取要删除的文件(格式:文件名包含在内容中,一行一个)
|
||||
# 删除当前.task文件
|
||||
rm "$TASK_FILE"
|
||||
# 把删除也加入Git
|
||||
git rm "$TASK_FILE" >> "$LOG_FILE" 2>&1
|
||||
git rm "$TASK_FILE" >> "$LOG_FILE" >&1
|
||||
|
||||
# 提取任务内容中所有要删除的文件(匹配 *.task, *.done, *.md)
|
||||
DELETE_FILES=$(echo "$TASK_FULL_CONTENT" | grep -E '\s+[A-Za-z0-9_/.-]+\.(task|done|md)\s*' | xargs echo)
|
||||
if [ -n "$DELETE_FILES" ]; then
|
||||
log_info "[$TIMESTAMP] 🗑️ 需要删除 $DELETE_FILES"
|
||||
for DEL_FILE in $DELETE_FILES; do
|
||||
# trim whitespace
|
||||
DEL_FILE=$(echo "$DEL_FILE" | xargs echo)
|
||||
if [ -f "$DEL_FILE" ]; then
|
||||
git rm "$DEL_FILE" >> "$LOG_FILE" 2>&1
|
||||
log_info "[$TIMESTAMP] ✅ 删除 $DEL_FILE"
|
||||
else
|
||||
log_info "[$TIMESTAMP] ⚠️ 文件不存在 $DEL_FILE,跳过"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
log_info "[$TIMESTAMP] ✅ $AGENT 完成任务: $TASK_ID"
|
||||
log_info "[$TIMESTAMP] 📝 完成标记已创建: $DONE_FILE"
|
||||
@@ -97,8 +114,12 @@ while true; do
|
||||
# 自动推送完成结果
|
||||
# 添加.done文件和已删除的.task文件
|
||||
git add "$DONE_FILE" >> "$LOG_FILE" 2>&1
|
||||
UNCOMMITTED=$(git status --porcelain | grep -E "($DONE_FILE|$TASK_FILE)" || true)
|
||||
if [ -n "$UNCOMMITTED" ]; then
|
||||
# 添加所有删除操作
|
||||
git add . >> "$LOG_FILE" 2>&1
|
||||
|
||||
# 检查有没有需要commit的
|
||||
NEED_COMMIT=$(git status --porcelain | wc -l)
|
||||
if [ "$NEED_COMMIT" -gt 0 ]; then
|
||||
log_info "[$TIMESTAMP] 📤 正在推送完成结果..."
|
||||
git commit -m "auto: $AGENT 完成任务 $TASK_ID" >> "$LOG_FILE" 2>&1
|
||||
# 先push,如果失败,pull rebase再试一次
|
||||
@@ -115,6 +136,8 @@ while true; do
|
||||
else
|
||||
log_info "[$TIMESTAMP] ✅ 推送成功!任务 $TASK_ID 完全完成"
|
||||
fi
|
||||
else
|
||||
log_info "[$TIMESTAMP] ✅ 没有需要commit的变更,任务完成"
|
||||
fi
|
||||
done
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user