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.