roundabout,
created on Tuesday, 4 June 2024, 16:38:29 (1717519109),
received on Wednesday, 31 July 2024, 06:54:49 (1722408889)
Author identity: vlad <vlad.muntoiu@gmail.com>
01b0e470c316eb798c93251cdbfcc60c0ae2ae01
celery_tasks.py
@@ -58,7 +58,7 @@ def merge_heads(head_route, head_branch, base_route, base_branch, simulate=True)
return "merge_simulator" if simulate else "merge", out, err, head_route, head_branch, base_route, base_branch, merge_exit, new_commits
# Otherwise, we need to fetch the head repo.
remote_url = "https://" if config.suggest_https else "http://" + os.path.join(config.BASE_DOMAIN + f":{config.port}" if config.port not in {80, 443} else "", "git", base_route.lstrip("/"))
remote_url = "https://" if config.suggest_https else "http://" + os.path.join(config.BASE_DOMAIN + f":{config.port}" if config.port not in {80, 443} else "", "git", head_route.lstrip("/"))
out, err = b"", b""
part_out, part_err = common.git_command(server_repo_location, b"", "remote", "add", "NEW", remote_url, return_err=True)
@@ -73,8 +73,8 @@ def merge_heads(head_route, head_branch, base_route, base_branch, simulate=True)
part_out, part_err = common.git_command(server_repo_location, b"", "checkout", f"{base_branch}", return_err=True)
out += part_out
err += part_err
new_commits, part_err = common.git_command(server_repo_location, b"", "log", "--oneline", f"heads/{base_branch}..NEW/{head_branch}", "--", return_err=True)
print(new_commits)
new_commits, part_err = common.git_command(server_repo_location, b"", "log", "--pretty=format:\"%H\"", f"heads/{base_branch}..NEW/{head_branch}", "--", return_err=True)
new_commits = new_commits.decode().splitlines()
err += part_err
if simulate:
@@ -97,7 +97,7 @@ def merge_heads(head_route, head_branch, base_route, base_branch, simulate=True)
else:
# Copy the commits rows from the head repo to the base repo
for commit in new_commits:
commit_data = Commit.query.filter_by(repo_name=head_route, sha=commit.split())
commit_data = Commit.query.filter_by(repo_name=head_route, sha=commit).first()
db.session.expunge(commit_data)
make_transient(commit_data)
@@ -107,6 +107,8 @@ def merge_heads(head_route, head_branch, base_route, base_branch, simulate=True)
commit_data.receive_date = datetime.now()
db.session.add(commit_data)
db.session.commit()
return "merge_simulator" if simulate else "merge", out, err, head_route, head_branch, base_route, base_branch, merge_exit, new_commits
jinja_utils.py
@@ -9,6 +9,11 @@ def split(value: str, separator=" ", maxsplit: int = -1):
return value.split(separator, maxsplit)
@app.template_filter("splitlines")
def splitlines(value: str, keepends: bool = False):
return value.splitlines(keepends=keepends)
@app.template_filter("lstrip")
def lstrip(value: str, characters=None):
return value.lstrip(characters)
templates/task-monitor.html
@@ -14,7 +14,7 @@
<iconify-icon icon="mdi:check" style="font-size: 2em; color: var(--color-success);"></iconify-icon>
{% trans %}Done{% endtrans %}
{% else %}
<iconify-icon icon="material-symbols:autorenew" style="animation: rotate 1000ms linear infinite; font-size: 2em; color: var(--color-info);"></iconify-icon>
<iconify-icon icon="material-symbols:autorenew" style="animation: rotate 750ms linear infinite; font-size: 2em; color: var(--color-info);"></iconify-icon>
{% trans %}Running...{% endtrans %}
{% endif %}
</x-hbox>
@@ -61,10 +61,6 @@
{% endif %}
{% else %}
<h2>{% trans %}Merge simulation went well; continue?{% endtrans %}</h2>
<p>
{% trans num_commits=result.get()[8]|length %}{{ num_commits }} commits will be added.{% endtrans %}
</p>
<pre>{{ result.get()[8] | decode }}</pre>
<a href="{{ result.get()[5] }}/prs/{{ request.args.get('pr-id') }}/merge" class="button">{% trans %}Merge{% endtrans %}</a>
{% endif %}
{% endif %}