Repositories

A search box that understands what you typed

`is:open author:chris label:"needs design" -label:wontfix rebase` is what people actually type. Most search boxes handle about half of it.

A tokenizer, not a regular expression

The two things people do that break a regex-based parser are quoting a value with a space in it and negating a qualifier. Both fail silently: the query degrades into a literal text search that matches nothing, which reads as "no results" rather than "not understood".

What the syntax supports

  • Qualifiers such as `is:`, `author:`, `label:`, `milestone:`, and `repo:`
  • Quoting, with single or double quotes, and backslash escapes
  • Negation with a leading hyphen, on any qualifier
  • Comparisons such as `comments:>10` and `stars:>=100`
  • Sorting with `sort:` and a direction

Unknown qualifiers stay text

A pasted URL is not read as a filter on `https`. Anything the forge does not recognise is searched for literally, and quoting is how you search for a literal `is:open`.

Visibility is never left to the query

What a reader may see is enforced from their permissions, separately, every time. A query is user input, and a search index that decides visibility is a search index that leaks a private repository the first time somebody crafts a clever filter.

Find the pull request you are thinking of

The parser round-trips: what you typed can be rebuilt from what it parsed.

Self-host ReviewOS All features