feat: implement new branch creation process using temporary clone and aider
This commit is contained in:
parent
ba82eaa1f5
commit
dbc86c85d4
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user