roundabout,
created on Wednesday, 31 January 2024, 19:04:21 (1706727861),
received on Wednesday, 31 July 2024, 06:54:41 (1722408881)
Author identity: vlad <vlad.muntoiu@gmail.com>
730f993a357053837915a9be4ac2a249122a3b0f
app.py
@@ -966,8 +966,9 @@ def repository_prs_merge(username, repository):
pull_request.base_route, pull_request.base_branch, ) task_result = worker.AsyncResult(result.id)flask.flash(Markup(f"Merging PR in task <a href='/task/{ result.id }'>{result.id}</a>"), f"task {result.id}")flask.flash(Markup(f"Merging PR in task <a href='/task/{result.id}'>{result.id}</a>"), f"task {result.id}")db.session.delete(pull_request) db.session.commit()
@@ -977,11 +978,12 @@ def repository_prs_merge(username, repository):
return flask.redirect(".", 303) @repositories.route("/task/<task_id>")@app.route("/task/<task_id>")def task_monitor(task_id): result = celery_tasks.merge_heads.AsyncResult(task_id)task_result = worker.AsyncResult(task_id) print(task_result.status)return flask.render_template("task-monitor.html", result=result)return flask.render_template("task-monitor.html", result=task_result)@repositories.route("/<username>/<repository>/prs/delete", methods=["POST"])
celery_tasks.py
@@ -25,7 +25,16 @@ def merge_heads(head_route, head_branch, base_route, base_branch):
if not os.path.isdir(server_repo_location): raise FileNotFoundError(f"Repo {server_repo_location} not found, cannot merge.") git_command(server_repo_location, b"", "checkout", "-f", f"heads/{base_branch}")out, err = git_command(server_repo_location, b"", "merge", f"heads/{head_branch}", return_err=True)if base_route == head_route: git_command(server_repo_location, b"", "checkout", f"{base_branch}") out, err = git_command(server_repo_location, b"", "merge", "--no-ff", f"heads/{head_branch}", return_err=True)return out, errreturn out, err remote_url = os.path.join(config.BASE_DOMAIN, "git", base_route.lstrip("/")) git_command(server_repo_location, b"", "remote", "add", "NEW", remote_url) git_command(server_repo_location, b"", "remote", "update") git_command(server_repo_location, b"", "checkout", f"{base_branch}") git_command(server_repo_location, b"", "merge", "--allow-unrelated-histories", f"NEW/{head_branch}") git_command(server_repo_location, b"", "remote", "rm", "NEW")
misc_utils.py
@@ -5,7 +5,6 @@ from models import *
def git_command(repo, data, *args, return_err=False): print(repo)if not os.path.isdir(repo): raise FileNotFoundError(f"Repo {repo} not found") env = os.environ.copy()
@@ -21,6 +20,7 @@ def git_command(repo, data, *args, return_err=False):
out, err = proc.communicate() if return_err: return out, err return out
templates/task-monitor.html
@@ -5,7 +5,9 @@
{% block breadcrumbs %} <li><a href="/task/{{ result.id }}">Task {{ result.id }}</a></li> {% endblock %} <h1>Task results</h1><pre>{{ result.collect() }}</pre>{% block content %} <x-frame style="--width: 896px;" class="flexible-space"> <h1>Task results</h1> <pre>{{ result.get() }}</pre> </x-frame> {% endblock %}