roundabout,
created on Wednesday, 17 July 2024, 12:35:34 (1721219734),
received on Wednesday, 31 July 2024, 06:54:51 (1722408891)
Author identity: vlad <vlad.muntoiu@gmail.com>
cebfbbd18a1fd2d56ac01c37813417ad892fef95
app.py
@@ -1584,6 +1584,7 @@ def repository_prs_merge(username, repository):
pull_request.head_branch,
pull_request.base_route,
pull_request.base_branch,
pull_request.id,
simulate=True
)
task_result = worker.AsyncResult(result.id)
@@ -1619,11 +1620,11 @@ def repository_prs_merge_stage_two(username, repository, id):
pull_request.head_branch,
pull_request.base_route,
pull_request.base_branch,
pull_request.id,
simulate=False
)
task_result = worker.AsyncResult(result.id)
pull_request.state = 1
db.session.commit()
return flask.redirect(f"/task/{result.id}?pr-id={id}", 303)
celery_tasks.py
@@ -72,9 +72,10 @@ def send_notification(user_notification_id):
@shared_task(ignore_result=False)
def merge_heads(head_route, head_branch, base_route, base_branch, simulate=True):
from models import Repo, Commit
def merge_heads(head_route, head_branch, base_route, base_branch, pr_id, simulate=True):
from models import Repo, Commit, PullRequest
server_repo_location = os.path.join(config.REPOS_PATH, base_route.lstrip("/"))
pull_request = db.session.get(PullRequest, pr_id)
if not os.path.isdir(server_repo_location):
raise FileNotFoundError(f"Repo {server_repo_location} not found, cannot merge.")
@@ -90,6 +91,13 @@ def merge_heads(head_route, head_branch, base_route, base_branch, simulate=True)
out, err, merge_exit = common.git_command(server_repo_location, b"", "merge", f"heads/{head_branch}",
return_err=True, return_exit=True)
pull_request.state = 1
for resolves in pull_request.resolves:
resolves.post.state = 0
db.session.commit()
new_commits = common.git_command(server_repo_location, b"", "log", "--oneline", f"heads/{base_branch}..heads/{head_branch}")
return "merge_simulator" if simulate else "merge", out, err, head_route, head_branch, base_route, base_branch, merge_exit, new_commits
@@ -144,6 +152,12 @@ def merge_heads(head_route, head_branch, base_route, base_branch, simulate=True)
commit_data.receive_date = datetime.now()
db.session.add(commit_data)
# Consider the PR merged.
pull_request.state = 1
for resolves in pull_request.resolves:
resolves.post.state = 0
db.session.commit()
return "merge_simulator" if simulate else "merge", out, err, head_route, head_branch, base_route, base_branch, merge_exit, new_commits