Taiga integration
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import re
|
||||
|
||||
GITEA_PATTERNS = [
|
||||
re.compile(r"gitea\s*#(\d+)", re.IGNORECASE),
|
||||
re.compile(r"fixes\s+#(\d+)", re.IGNORECASE),
|
||||
re.compile(r"closes\s+gitea\s*#(\d+)", re.IGNORECASE),
|
||||
]
|
||||
|
||||
TAIGA_STORY_PATTERNS = [
|
||||
re.compile(r"taiga\s*#(\d+)", re.IGNORECASE),
|
||||
re.compile(r"TG-(\d+)", re.IGNORECASE),
|
||||
re.compile(r"closes\s+taiga\s*#(\d+)", re.IGNORECASE),
|
||||
]
|
||||
|
||||
TAIGA_TASK_PATTERNS = [
|
||||
re.compile(r"taiga\s+task\s*#(\d+)", re.IGNORECASE),
|
||||
]
|
||||
|
||||
|
||||
def parse_commit_message(message: str) -> dict[str, list[int]]:
|
||||
gitea_refs: set[int] = set()
|
||||
taiga_story_refs: set[int] = set()
|
||||
taiga_task_refs: set[int] = set()
|
||||
|
||||
for pattern in GITEA_PATTERNS:
|
||||
for match in pattern.finditer(message):
|
||||
gitea_refs.add(int(match.group(1)))
|
||||
|
||||
for pattern in TAIGA_TASK_PATTERNS:
|
||||
for match in pattern.finditer(message):
|
||||
taiga_task_refs.add(int(match.group(1)))
|
||||
|
||||
for pattern in TAIGA_STORY_PATTERNS:
|
||||
for match in pattern.finditer(message):
|
||||
ref = int(match.group(1))
|
||||
if ref not in taiga_task_refs:
|
||||
taiga_story_refs.add(ref)
|
||||
|
||||
return {
|
||||
"gitea": sorted(gitea_refs),
|
||||
"taiga_story": sorted(taiga_story_refs),
|
||||
"taiga_task": sorted(taiga_task_refs),
|
||||
}
|
||||
Reference in New Issue
Block a user