Skip to content

Discovering what to review

--list finds open pull/merge requests and lets you pick one:

leanreview --list                        # your review queue (default engine + filter)
leanreview --list gh "author:alice"      # explicit engine and search filter
leanreview --list "repo:owner/name"      # filter only; engine from config
leanreview --list | cat                  # piped: prints a plain table instead

On a terminal the results open a small picker — Enter reviews the selected request immediately, q dismisses:

Discovery picker

Filters

Filters are engine-specific:

  • gh — a GitHub search query (default: is:open review-requested:@me). Quoted qualifiers are kept intact, so --list gh 'label:"needs review"' works as written.
  • glab — a REST query string (default: state=opened&reviewer_username=@me, with @me resolved to your username).

Named filters

Filters can be named in the configuration and selected with engine:name (or :name to keep the default engine); extra arguments refine the named filter:

leanreview --list :bugs                  # named filter, default engine
leanreview --list gh:bugs                # named filter, explicit engine
leanreview --list :bugs "base:main"      # named filter + extra qualifiers
{
  "list_engine": "gh",
  "list_filter": "is:open review-requested:@me",
  "list_filters": {
    "bugs": "is:open label:bug",
    "team": "is:open team-review-requested:mycorp/reviewers"
  }
}

list_filter remains the fallback used when --list gets no filter at all. A first argument counts as a selector only when it starts with : or its prefix names an engine — raw qualifiers like author:x still work unquoted as plain filters.