Per-branch review data threaded into the list tree: the id (e.g. #12),
its CI dot, whether it sits in a merge queue/train, and - only with
--reviews - the review tallies.
A review’s CI check rollup, reduced to one at-a-glance dot for list and
status. None means no checks ran, or the provider could not report
them - either way, no dot is shown.
A structural reason the platform won’t merge a review, read from its API
rather than its error text - so a wording change can’t silently reclassify
a real failure. None means nothing structural blocks the merge, or the
platform did not say (the caller falls back to matching the error text).
The marker shown before a review that sits in a merge queue (GitHub) or
merge train (GitLab) - it is waiting its turn to land. Includes a trailing
space so it sits before the CI dot / id.
Detect the provider and build its review client together - the pair nearly
every provider-backed command opens with. The returned DetectedProvider
still carries the kind and detection source for messages.
The branch’s review only when it actually heads that branch. A provider can
return a review for a different head (a stale or look-alike match); a flow
acting on “this branch’s review” wants None there, not someone else’s.