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 requests
|
||||||
import sys
|
import sys
|
||||||
import dataclasses
|
import dataclasses
|
||||||
|
import tempfile
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -94,11 +97,19 @@ def main():
|
||||||
title = issue.get("title", f"Issue {issue_number}")
|
title = issue.get("title", f"Issue {issue_number}")
|
||||||
branch_name = f"issue-{issue_number}"
|
branch_name = f"issue-{issue_number}"
|
||||||
try:
|
try:
|
||||||
created = client.create_branch(args.owner, args.repo, branch_name, base_sha)
|
with tempfile.TemporaryDirectory() as tmpdirname:
|
||||||
if created:
|
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}.")
|
print(f"Created branch {branch_name} for issue {issue_number}.")
|
||||||
except Exception as e:
|
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')}"
|
body = f"Automatically generated pull request for issue: {issue.get('html_url', 'unknown')}"
|
||||||
try:
|
try:
|
||||||
pr = client.create_pull_request(args.owner, args.repo, f"[Issue {issue_number}] {title}", branch_name, args.base_branch, body)
|
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