feat: implement new branch creation process using temporary clone and aider

This commit is contained in:
Jon Michael Aanes (aider) 2025-04-13 14:56:55 +02:00
parent ba82eaa1f5
commit dbc86c85d4

View File

@ -9,6 +9,9 @@ import argparse
import requests
import sys
import dataclasses
import tempfile
import subprocess
import os
logger = logging.getLogger(__name__)
@ -94,11 +97,19 @@ def main():
title = issue.get("title", f"Issue {issue_number}")
branch_name = f"issue-{issue_number}"
try:
created = client.create_branch(args.owner, args.repo, branch_name, base_sha)
if created:
with tempfile.TemporaryDirectory() as tmpdirname:
repo_url = f"{args.gitea_url}/repos/{args.owner}/{args.repo}.git"
subprocess.run(["git", "clone", repo_url, tmpdirname], check=True)
subprocess.run(["git", "-C", tmpdirname, "checkout", args.base_branch], check=True)
subprocess.run(["git", "-C", tmpdirname, "checkout", "-b", branch_name], check=True)
message = issue.get("body", "")
subprocess.run(["aider", message], check=True)
subprocess.run(["git", "-C", tmpdirname, "add", "."], check=True)
subprocess.run(["git", "-C", tmpdirname, "commit", "-m", f"Apply aider for issue {issue_number}"], check=True)
subprocess.run(["git", "-C", tmpdirname, "push", "origin", branch_name], check=True)
print(f"Created branch {branch_name} for issue {issue_number}.")
except Exception as e:
print(f"Error creating branch {branch_name}: {e}")
print(f"Error processing issue {issue_number}: {e}")
body = f"Automatically generated pull request for issue: {issue.get('html_url', 'unknown')}"
try:
pr = client.create_pull_request(args.owner, args.repo, f"[Issue {issue_number}] {title}", branch_name, args.base_branch, body)