Compare commits

..

3 Commits

View File

@ -214,12 +214,24 @@ def try_auto_publish(article_html: str, *, updated_at: str) -> dict[str, Any]:
number = pr["number"] number = pr["number"]
unlock = unlock_news_main() unlock = unlock_news_main()
merged = merge_pr(number) merged = merge_pr(number)
merge_status = merged.get("status")
push_main = None
if merge_status and int(merge_status) >= 400:
# Gitea merge API often returns 405/"try again later"; push main while unlocked.
_git(news_repo, "fetch", "origin")
_git(news_repo, "checkout", "main")
_git(news_repo, "pull", "--ff-only", "origin", "main")
_git(news_repo, "merge", f"origin/{branch}", "-m", f"Merge {title}")
push = _git(news_repo, "push", "origin", "main")
push_main = {"returncode": push.returncode, "stderr": (push.stderr or "")[:300]}
_api("PATCH", f"/repos/leora/news/pulls/{number}", {"state": "closed"})
relock = relock_news_main() relock = relock_news_main()
return { return {
"changed": True, "changed": True,
"pr_number": number, "pr_number": number,
"pr_url": pr.get("html_url"), "pr_url": pr.get("html_url"),
"merge_status": merged.get("status"), "merge_status": merge_status,
"push_main": push_main,
"unlock": unlock.get("status"), "unlock": unlock.get("status"),
"relock": relock.get("status"), "relock": relock.get("status"),
"updated_at": updated_at, "updated_at": updated_at,