diff --git a/aider_gitea/__main__.py b/aider_gitea/__main__.py index 47a8ea3..dde02bf 100644 --- a/aider_gitea/__main__.py +++ b/aider_gitea/__main__.py @@ -15,6 +15,16 @@ import subprocess import os import secret_loader +import re + +def generate_branch_name(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()) logger = logging.getLogger(__name__) @@ -130,10 +140,10 @@ def main(): issue_number = issue.get("number") issue_description = issue.get("body", "") title = issue.get("title", f"Issue {issue_number}") - branch_name = f"issue-{issue_number}" + branch_name = generate_branch_name(title) try: with tempfile.TemporaryDirectory() as tmpdirname: - process_issue(args, Path(tmpdirname), branch_name, issue_description, issue_number) + process_issue(args, Path(tmpdirname), branch_name, title, issue_description, issue_number) logger.info(f"Created branch {branch_name} for issue {issue_number}.") except Exception: logger.exception('Error processing issue')