feat(kugetsu): cmd_delegate calls cmd_start directly for parallelization (fixes #75)
- Add extract_issue_ref_from_message() to parse issue ref from delegation message - Modify cmd_delegate to call cmd_start directly when issue ref is found - Falls back to PM agent if no issue ref can be extracted - Issue ref extracted from: full URLs, github.com/user/repo#123, or #123 (uses repos.json)
This commit is contained in:
17
kugetsu
17
kugetsu
@@ -610,12 +610,11 @@ extract_issue_ref_from_message() {
|
||||
local message="$1"
|
||||
|
||||
if echo "$message" | grep -qE 'https?://[^/]+/[^/]+/[^/]+/issues/[0-9]+'; then
|
||||
echo "$message" | grep -oE 'https?://[^/]+/[^/]+/[^/]+/issues/[0-9]+' | while read -r url; do
|
||||
local instance=$(echo "$url" | grep -oE 'https?://[^/]+' | sed 's|https?://||')
|
||||
local path=$(echo "$url" | grep -oE '/[^/]+/[^/]+')
|
||||
local issue_num=$(echo "$url" | grep -oE '[0-9]+$')
|
||||
echo "${instance}${path}#${issue_num}"
|
||||
done
|
||||
local url=$(echo "$message" | grep -oE 'https?://[^/]+/[^/]+/[^/]+/issues/[0-9]+' | head -1)
|
||||
local instance=$(echo "$url" | sed -E 's|https?://([^/]+)/.*|\1|')
|
||||
local path=$(echo "$url" | grep -oE '/[^/]+/[^/]+' | sed 's/^\///')
|
||||
local issue_num=$(echo "$url" | grep -oE '[0-9]+$')
|
||||
echo "${instance}/${path}#${issue_num}"
|
||||
return
|
||||
fi
|
||||
|
||||
@@ -624,7 +623,7 @@ extract_issue_ref_from_message() {
|
||||
return
|
||||
fi
|
||||
|
||||
if echo "$message" | grep -qE '#[0-9]+'; then
|
||||
if echo "$message" | grep -qE '#[0-9]+\s'; then
|
||||
local num=$(echo "$message" | grep -oE '#[0-9]+' | head -1)
|
||||
if [ -f "$REPOS_CONFIG" ]; then
|
||||
local first_repo=$(python3 -c "import json; d=json.load(open('$REPOS_CONFIG')); print(list(d.values())[0] if d else '')" 2>/dev/null || echo "")
|
||||
@@ -634,8 +633,6 @@ extract_issue_ref_from_message() {
|
||||
return
|
||||
fi
|
||||
fi
|
||||
echo "github.com/unknown/repo${num}"
|
||||
return
|
||||
fi
|
||||
|
||||
echo ""
|
||||
@@ -653,7 +650,7 @@ cmd_delegate() {
|
||||
|
||||
local issue_ref=$(extract_issue_ref_from_message "$message")
|
||||
|
||||
if [ -n "$issue_ref" ] && [[ "$issue_ref" =~ \#[0-9]+$ ]]; then
|
||||
if [ -n "$issue_ref" ] && [[ "$issue_ref" =~ #[0-9]+$ ]]; then
|
||||
cmd_start "$issue_ref" "$message"
|
||||
return
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user