meow
diff-pr / dix (pull_request) Successful in 6m20s
flake-check / flake-check (pull_request) Successful in 51s
lint / lint (pull_request) Successful in 1m47s

This commit is contained in:
Floweynt
2026-09-13 13:16:31 -05:00
parent 581f531bf4
commit e692589fe9
+12 -4
View File
@@ -475,16 +475,24 @@ def open_pr(args):
host = os.environ["API"].removesuffix("/api/v1")
auth = base64.b64encode(f'token:{os.environ["GH_TOKEN"]}'.encode()).decode()
git("-c", f"http.extraHeader=Authorization: Basic {auth}",
"push", "-f", f'{host}/{os.environ["REPO"]}.git', f"HEAD:{args.branch}")
push = git("-c", f"http.extraHeader=Authorization: Basic {auth}",
"push", "-f", f'{host}/{os.environ["REPO"]}.git', f"HEAD:{args.branch}",
check=False)
if push.returncode != 0:
raise RuntimeError(f"git push failed:\n{push.stderr}")
owner = os.environ["REPO"].split("/")[0]
if gitea("GET", f"/pulls?state=open&head={owner}:{args.branch}"):
existing = gitea("GET", f"/pulls?state=open&head={owner}:{args.branch}")
if existing:
print(f"PR #{existing[0]['number']} already open, pushed update")
return
labels = [label_id(args.label)] if args.label else []
gitea("POST", "/pulls",
pr = gitea("POST", "/pulls",
{"title": args.title, "head": args.branch, "base": args.base,
"body": Path(args.body_file).read_text(), "labels": labels})
if not pr or "number" not in pr:
raise GiteaError(f"POST /pulls: unexpected response: {json.dumps(pr)}")
print(f"opened PR #{pr['number']}")
def main():