Add third pattern to parse_issue_ref_from_message() to support the mixed format 'gitserver/owner/repo#number' (e.g., git.fbrns.co/shoko/kugetsu#116). Previously only two formats were supported: 1. Full URL: #116 2. Short format: shoko/kugetsu#116 Now supports: 3. Mixed format: git.fbrns.co/shoko/kugetsu#116 Fixes #144
33 lines
1.4 KiB
Bash
Executable File
33 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
source "$SCRIPT_DIR/kugetsu-config.sh"
|
|
source "$SCRIPT_DIR/kugetsu-index.sh"
|
|
source "$SCRIPT_DIR/kugetsu-worktree.sh"
|
|
source "$SCRIPT_DIR/kugetsu-log.sh"
|
|
|
|
while true; do
|
|
if [ -d "$QUEUE_ITEMS_DIR" ]; then
|
|
for item in "$QUEUE_ITEMS_DIR"/*.json; do
|
|
[ -f "$item" ] || continue
|
|
state=$(python3 -c "import json; print(json.load(open('$item')).get('state', ''))" 2>/dev/null)
|
|
if [ "$state" = "pending" ]; then
|
|
queue_id=$(basename "$item" .json)
|
|
issue_ref=$(python3 -c "import json; print(json.load(open('$item')).get('issue_ref', ''))" 2>/dev/null)
|
|
message=$(python3 -c "import json; print(json.load(open('$item')).get('message', ''))" 2>/dev/null)
|
|
|
|
pm_session=$(get_pm_agent_session_id)
|
|
if [ -n "$pm_session" ] && [ "$pm_session" != "null" ]; then
|
|
log_file="$LOGS_DIR/delegate-$(date +%s).log"
|
|
GITEA_TOKEN="${GITEA_TOKEN:-}" nohup sh -c "opencode run '$message' --continue --session '$pm_session' >> '$log_file' 2>&1" > /dev/null 2>&1 &
|
|
pid=$!
|
|
update_queue_item_state "$queue_id" "notified" "$pm_session" "$pid"
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
sleep "${QUEUE_DAEMON_INTERVAL_MINUTES:-5}m"
|
|
done
|