feat: update branch name generation to include issue number and title

This commit is contained in:
Jon Michael Aanes (aider) 2025-04-13 16:45:09 +02:00
parent 37c9ecf3db
commit 4e014d4df4
2 changed files with 23 additions and 4 deletions

View File

@ -18,14 +18,14 @@ import re
from . import secrets
def generate_branch_name(issue_title: str) -> str:
def generate_branch_name(issue_number: str, issue_title: str) -> str:
"""
Create a branch name by sanitizing the issue title.
Non-alphanumeric characters (except spaces) are removed,
the text is lowercased, and spaces are replaced with dashes.
"""
sanitized = re.sub(r"[^0-9a-zA-Z ]+", "", issue_title)
return "issue-" + "-".join(sanitized.lower().split())
title_slug = issue_title.lower().replace(" ", "-")
return f"issue-{issue_number}-{title_slug}"
logger = logging.getLogger(__name__)
@ -149,7 +149,7 @@ def main():
issue_number = issue.get("number")
issue_description = issue.get("body", "")
title = issue.get("title", f"Issue {issue_number}")
branch_name = generate_branch_name(title)
branch_name = generate_branch_name(issue_number, title)
try:
with tempfile.TemporaryDirectory() as tmpdirname:
process_issue(args, Path(tmpdirname), branch_name, title, issue_description, issue_number)

View File

@ -0,0 +1,19 @@
import pytest
from aider_gitea.__main__ import generate_branch_name
def test_generate_branch_name_normal():
# Normal case with alphanumeric title.
branch = generate_branch_name("123", "Some Issue Title")
assert branch == "issue-123-some-issue-title"
def test_generate_branch_name_special_characters():
# Test where title contains special characters.
branch = generate_branch_name("45", "Issue @ Special!")
# This test expects only the space replaced and lower-casing.
# Adjust the expected value if more sophisticated slugification is added.
assert branch == "issue-45-issue-@-special!"
def test_generate_branch_name_numeric_title():
# Test where the title starts with numbers.
branch = generate_branch_name("789", "123 Numbers Here")
assert branch == "issue-789-123-numbers-here"