Repository navigation
feat(github): list my PRs, review requests and issues on the Home - #194
Merged
Merged
Conversation
The github service answers the attention contract, so the Home's "Needs you" lists the PRs that wait for my review and the open issues assigned to me, the lead's pick until the user chooses (decision 208). The new source, SOURCE_GITHUB, is the first change to a contract in use, so proto:breaking joins check, as decision 158 planned. It runs buf breaking against main on GitHub, since CI's checkout of a pull request has no main of its own.
The user chose (2026-10-30) to have their open PRs reach the Home's "Needs you" as well as the review requests and the assigned issues. They lead the list, with no reason in their detail, as pulls' items have none (decisions 158 and 208).
# Conflicts: # docs/plan.md
Bakhomious
marked this pull request as ready for review
October 30, 2026 10:25
This was referenced Oct 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
githubservice answers the attention contract, so the Home's "Needs you" lists my open PRs, the PRs that wait for my review and the open issues assigned to me (decision 208). The last ofgithub-widgets' nine steps.The user's choice: asked what reaches the Home (decision 200), the user chose my open PRs as well as the lead's pick, the review requests and the assigned issues that §7 lists (2026-10-30). The second commit adds my PRs; §7 now lists them too.
Brief
Goal: github lists my PRs, the review requests and the assigned issues over
bakhyard.attention.v1, and home names them as GitHub's.Scope
SOURCE_GITHUB = 3in the attention contract, and its generated code.proto:breaking,buf breakingagainstmainon GitHub, incheck: decision 158 wants it from the first change to a contract in use, which this is.Listerinservices/github/internal/attention, over the pollers of my PRs, the review requests and the issues;routesserves it on a connect server.process-compose.yaml: github among home's peers.Out of scope: a reason on my PRs' rows; a due time; an item's own link (§4.5); home's peer on the laptop, which codedogapp/homelab#43 adds; the app, which already knows "GitHub" as a source.
Acceptance criteria
ListItemslists an item for each of my open PRs, then for each review request, then for each assigned issue: the IDowner/repo#N, the title, the detailowner/repo #N(as pulls' items have),owner/repo #N · Review requestedorowner/repo #N · Assigned,· Draftafter a draft PR's, the sourceSOURCE_GITHUBand no due time.UNAVAILABLE; after that, it lists each list's items from its latest search to succeed, kept through the searches that fail.SOURCE_GITHUB"GitHub".mise run proto:breakingpasses on this branch and fails on a breaking change;checkruns it.process-compose.yamlinclude github, andlint:composepasses.mise run checkis green locally and in CI.QA
services/github/internal/attention(synctest for the searches' timing), the service's own gRPC test over h2c, and home's feed and API tests. QA added a GitHub item to home's API test, so "GitHub" on the wire is pinned as Jira's and Bitbucket's are.ListItemsanswersunavailableand home's sources say github is unavailable, with no items. With all three up, it lists the five items in order, my PRs first with no reason, Draft included, and home serves them asgithub/acme/web#7and so on, with the source "GitHub", sorted by title.Latest, the source, ID, detail, title and due time, the server's wiring and its three pollers, and home's mapping and spelling).mise run proto:breakingpasses here; renamingSOURCE_JIRAor deletingItem.detailfails it with exit 100;checkruns it.lint:composeandmise run checkgreen locally, after mergingmain: fmt, lint, actions, compose, gen, proto:breaking, copilot, test and coverage (attention 100%), vuln, the web's gates (Vitest 1,341 tests) and the end-to-end tests in both browsers (438 passed, 8 skipped), withBAKHYARD_E2E_PORT=8280, on the head with feat(web): show my GitHub PRs, review requests and issues #191 merged in.Review
No blocking findings. Non-blocking:
authored, the reason of my PRs, isreason's zero value, so a reason left unset would read as mine; each of the three calls names its reason.proto:breakingcompares withmain's tip, so a run on a commit older than a contract change onmainfails until the branch mergesmainin (decision 208).proto:breakingneeds the network, asvulnand the web'sauditdo.