GitHub personal access token or token from gh auth token
Whether base is still an ancestor of head in the PR's repository
(#1857): ahead / identical yes, behind / diverged no (rebase or
force-push), missing when GitHub no longer has base. See
fetchCompareStatus in reviewed-prs-fetch.ts.
Everything the merged-PR notes selection reads for one PR (#1861): issue
comments, reviews, inline review comments and commits, each paginated.
Four calls per PR (more past 100 items). truncatedLists names the
lists that hit the pagination cap; the lists arrive oldest-first, so it
is the newest activity (including the user's own reply) that would be
missing from those.
The four calls run together; when more than one fails, a rate-limit or auth error is rethrown ahead of the others so the run stops instead of reporting a 404 that the throttled call never got to verify.
Login of the account that closed a PR (#1863), or undefined when GitHub
reports none. The Search API items behind fetchRecentlyClosedPRs carry
no closed_by, so this is one issues.get per PR (PRs are issues to
that endpoint). Lets the daily run act only on PRs the user closed
themselves, not ones a maintainer or bot closed.
Fetch PRs closed without merge in the last N days.
Lookback window in days (default: 7)
Recently closed PRs
Fetch PRs merged in the last N days.
Lookback window in days (default: 7)
Recently merged PRs
Fetch metadata (star count and primary language) for a list of repositories.
Both fields come from the same repos.get() call — zero additional API cost.
Open PRs the configured user reviewed or commented on but did not
author (#1857); see fetchReviewedOpenPRs in reviewed-prs-fetch.ts for the searches,
the exclusions and the cap warnings.
The PR, comments, reviews, inline comments and commits the review
follow-up scan reads for one reviewed PR (#1857); five calls, a
rate-limit or auth error rethrown ahead of any other. See
fetchReviewedPRActivity in reviewed-prs-fetch.ts.
Fetch closed-without-merge PR counts per repository for the configured user.
OptionalstarFilter: StarFilter
Optional filter to exclude low-star repos
Per-repo closed counts with monthly breakdowns
Fetch merged PR counts and latest merge dates per repository for the configured user.
OptionalstarFilter: StarFilter
Optional filter to exclude low-star repos
Per-repo merged counts with monthly breakdowns
Fetch all open PRs for the configured user fresh from GitHub. This is the main entry point for the v2 architecture.
All open PRs enriched with status, plus any failures
Generate a daily digest from fetched PRs.
All open PRs (active + shelved)
PRs closed without merge in the last 7 days
OptionalclosedBy?: stringOptionalissueUrl?: stringIssue the PR closes, parsed from the PR body (#1824).
OptionalopenedAt?: stringWhen the PR was opened (#1461). Carried from the Search API's
created_at so close detection can persist it into the outcome ledger.
Optional: digests persisted by older producers don't have it.
PRs merged in the last 7 days
OptionalissueUrl?: stringIssue the PR closes, parsed from the PR body (#1824).
OptionalopenedAt?: stringWhen the PR was opened (#1461). Carried from the Search API's
created_at so merge detection can persist it into the outcome ledger.
Optional: digests persisted by older producers don't have it.
Daily digest with categorized PRs and summary stats
Fetches and enriches open PRs from GitHub for the configured user.
In v2, all PR data is fetched fresh on each run — no local PR tracking. CI status, reviews, merge conflicts, and maintainer comments are enriched for each PR to compute a FetchedPRStatus.