Establish recurring Daily Slop Drop collaboration loop #4

Open
timmy wants to merge 4 commits from timmy/1-fix-label-transitions into main
2 changed files with 10 additions and 1 deletions
Showing only changes of commit 1dcbf7270d - Show all commits

View File

@ -73,6 +73,11 @@ class Gitea:
{"labels": [label_map[name] for name in sorted(names)]},
)
def set_assignee(self, number: int, agent: str) -> None:
if agent not in AGENTS:
raise LoopError(f"Unsupported assignee: {agent}")
self.request("PATCH", f"/repos/{self.repo}/issues/{number}", {"assignee": agent})
def comment(self, number: int, body: str) -> None:
if not body.strip():
raise LoopError("Refusing to post an empty comment")
@ -163,6 +168,7 @@ def cmd_handoff(api: Gitea, agent: str, args: argparse.Namespace) -> int:
body = read_body(args, f"Continue the bounded task in issue #{args.number}.")
api.comment(args.number, f"[HANDOFF] from={agent} to={args.to}\n\n{body.strip()}")
api.set_labels(args.number, transition(names, agent=args.to, state="ready"))
api.set_assignee(args.number, args.to)
verified = api.issue(args.number)
validate_owner(verified, args.to, "ready")
print(json.dumps({"status": "handed_off", "number": args.number, "from": agent, "to": args.to}))

View File

@ -86,7 +86,10 @@ def main() -> int:
if missing:
raise RuntimeError(f"Missing labels: {sorted(missing)}")
request("POST", f"/repos/{REPO}/issues/{issue['number']}/comments", token, {"body": cycle_body(day)})
request("PATCH", f"/repos/{REPO}/issues/{issue['number']}", token, {"labels": [label_ids[name] for name in sorted(desired)]})
request("PATCH", f"/repos/{REPO}/issues/{issue['number']}", token, {
"labels": [label_ids[name] for name in sorted(desired)],
"assignee": "timmy",
})
verified = request("GET", f"/repos/{REPO}/issues/{issue['number']}", token)
names = {label["name"] for label in verified.get("labels", [])}
if not {"agent:timmy", "state:ready", "series:daily-slop", "cadence:daily"}.issubset(names):