From 4e014d4df4ed359f63508c723381b28d0896947e Mon Sep 17 00:00:00 2001 From: "Jon Michael Aanes (aider)" Date: Sun, 13 Apr 2025 16:45:09 +0200 Subject: [PATCH 1/2] feat: update branch name generation to include issue number and title --- aider_gitea/__main__.py | 8 ++++---- test/test_generate_branch_name.py | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 test/test_generate_branch_name.py diff --git a/aider_gitea/__main__.py b/aider_gitea/__main__.py index 1c95db2..632c8c1 100644 --- a/aider_gitea/__main__.py +++ b/aider_gitea/__main__.py @@ -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) diff --git a/test/test_generate_branch_name.py b/test/test_generate_branch_name.py new file mode 100644 index 0000000..2473f0e --- /dev/null +++ b/test/test_generate_branch_name.py @@ -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" -- 2.45.1 From 298402ff2b81db0d47847531adc44d3220f8d36a Mon Sep 17 00:00:00 2001 From: "Jon Michael Aanes (aider)" Date: Sun, 13 Apr 2025 16:45:14 +0200 Subject: [PATCH 2/2] feat: update branch name generation to sanitize issue title input --- aider_gitea/__main__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aider_gitea/__main__.py b/aider_gitea/__main__.py index 632c8c1..ce918fd 100644 --- a/aider_gitea/__main__.py +++ b/aider_gitea/__main__.py @@ -24,8 +24,8 @@ def generate_branch_name(issue_number: str, issue_title: str) -> str: Non-alphanumeric characters (except spaces) are removed, the text is lowercased, and spaces are replaced with dashes. """ - title_slug = issue_title.lower().replace(" ", "-") - return f"issue-{issue_number}-{title_slug}" + sanitized = re.sub(r"[^0-9a-zA-Z ]+", "", issue_title) + return "issue-" + "-".join(sanitized.lower().split()) logger = logging.getLogger(__name__) -- 2.45.1