nisse-review: one unlistable repository holds up no other
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 2m2s
CI / e2e (pull_request) Successful in 4m13s

Found at bring-up: an empty private repository's /pulls answered 404, and
intake stopped there, so the whole round failed and nothing was reviewed.
A repository whose PRs can't be listed is now logged (intake.repo_failed)
and skipped for the round; its items stay as they are.

Also, from nisse-review's review of this PR: a two-page test pins the
search listing the patterns rest on.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-10-16 22:56:43 +00:00
1 parent faf973be6c
commit 6e697b55a8
4 files changed
+43 -1

No files matched your search

+3
View File
@@ -72,6 +72,7 @@ class FakeGitea:
down: bool = False
# Readable but not given (public, no grant): missing from /user/repos.
public: set[str] = field(default_factory=set)
unlisted: set[str] = field(default_factory=set) # its PRs can't be listed
def _up(self) -> None:
if self.down:
@@ -99,6 +100,8 @@ class FakeGitea:
def open_pull_requests(self, repo: str) -> list[PullRequest]:
self._up()
if repo in self.unlisted:
raise GiteaNotFound(f"gitea GET /repos/{repo}/pulls returned 404")
return list(self.repos[repo])
def pull_request(self, repo: str, index: int) -> PullRequest: