fix(kugetsu-session): extract_issue_ref_from_message fix URL parsing

Fix issue where full URLs like #158
were incorrectly parsed to 'shoko/kugetsu/issues#158' instead of
'git.fbrns.co/shoko/kugetsu#158'.

The regex now correctly extracts instance, owner, repo, and number
using bash regex capture groups instead of fragile sed/cut pipeline.
This commit is contained in:
shokollm
2026-04-06 02:51:51 +00:00
parent 56310755b8
commit d68a63af41

View File

@@ -156,13 +156,11 @@ extract_issue_ref_from_message() {
return
fi
if [[ "$message" =~ (https?://[a-zA-Z0-9.-]+/[a-zA-Z0-9._-]+/[a-zA-Z0-9._-]+/(issues|pull)/[0-9]+) ]]; then
local url="${BASH_REMATCH[1]}"
local path=$(echo "$url" | sed 's|https\?://||' | cut -d'/' -f2-)
local instance=$(echo "$path" | cut -d'/' -f1)
local owner=$(echo "$path" | cut -d'/' -f2)
local repo=$(echo "$path" | cut -d'/' -f3)
local num=$(echo "$path" | grep -oE '[0-9]+$')
if [[ "$message" =~ (https?://)?([a-zA-Z0-9.-]+)/([a-zA-Z0-9._-]+)/([a-zA-Z0-9._-]+)/(issues|pull)/([0-9]+) ]]; then
local instance="${BASH_REMATCH[2]}"
local owner="${BASH_REMATCH[3]}"
local repo="${BASH_REMATCH[4]}"
local num="${BASH_REMATCH[6]}"
echo "${instance}/${owner}/${repo}#${num}"
return
fi