Fixes from the rest of the live session
- A near miss for abandon ("abort", "cancel", "drop it", ...) in an item's
thread is asked about, and changes nothing.
- The driver is told only the operator stops or closes an item, so it
doesn't claim to have done either.
- An issue assigned again after its item closed starts a new item that
notes the one before (Gitea's timeline gives the assignment time);
item_for_issue returns the latest item.
- Abandoning an issue Gitea won't close because of open dependencies says
so, naming them.
- An agreed item isn't offered restate.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
1 parent
613a2a7f72
commit
0064ec7696
9 files changed
+242
-14
No files matched your search
@@ -229,3 +229,30 @@ def test_closing_comments_first_then_closes_issue_and_pr() -> None:
|
||||
("POST", "/api/v1/repos/o/r/issues/20/comments", {"body": "abandoned by don"}),
|
||||
("PATCH", "/api/v1/repos/o/r/pulls/20", {"state": "closed"}),
|
||||
]
|
||||
|
||||
|
||||
def test_assigned_at_is_the_last_assignment_across_pages() -> None:
|
||||
def assigned(login: str, at: str, removed: bool = False) -> dict:
|
||||
return {
|
||||
"type": "assignees",
|
||||
"assignee": {"login": login},
|
||||
"removed_assignee": removed,
|
||||
"created_at": at,
|
||||
}
|
||||
|
||||
filler = {"type": "comment", "created_at": "t0"}
|
||||
pages = {
|
||||
1: [assigned("dev-agent", "t1")] + [filler] * (PR_PAGE_SIZE - 1),
|
||||
2: [
|
||||
assigned("dev-agent", "t2", removed=True),
|
||||
assigned("someone", "t3"),
|
||||
assigned("dev-agent", "t4"),
|
||||
],
|
||||
}
|
||||
|
||||
def handler(request: httpx.Request) -> httpx.Response:
|
||||
assert request.url.path == "/api/v1/repos/o/r/issues/6/timeline"
|
||||
return httpx.Response(200, json=pages[int(request.url.params["page"])])
|
||||
|
||||
assert client(handler).assigned_at("o/r", 6, "dev-agent") == "t4"
|
||||
assert client(handler).assigned_at("o/r", 6, "nobody") is None
|
||||
Reference in new issue
Block a user