Skip to main content

Understanding the search syntax

When searching GitHub, you can construct queries that match specific numbers and words.

Note

The syntax below applies to non-code search. For more information on code search syntax, see Understanding GitHub Code Search syntax.

Query for values greater or less than another value

You can use >, >=, <, and <= to search for values that are greater than, greater than or equal to, less than, and less than or equal to another value.

QueryExample
>ncats stars:>1000 matches repositories with the word "cats" that have more than 1000 stars.
>=ncats topics:>=5 matches repositories with the word "cats" that have 5 or more topics.
<ncats size:<10000 matches code with the word "cats" in files that are smaller than 10 KB.
<=ncats stars:<=50 matches repositories with the word "cats" that have 50 or fewer stars.

You can also use range queries to search for values that are greater than or equal to, or less than or equal to, another value.

QueryExample
n..*cats stars:10..* is equivalent to stars:>=10 and matches repositories with the word "cats" that have 10 or more stars.
*..ncats stars:*..10 is equivalent to stars:<=10 and matches repositories with the word "cats" that have 10 or fewer stars.

Query for values between a range

You can use the range syntax n..n to search for values within a range, where the first number N is the lowest value and the second is the highest value.

QueryExample
n..ncats stars:10..50 matches repositories with the word "cats" that have between 10 and 50 stars.

Query for dates

You can search for dates that are earlier or later than another date, or that fall within a range of dates, by using >, >=, <, <=, and range queries. Date formatting must follow the ISO8601 standard, which is YYYY-MM-DD (year-month-day).

QueryExample
>YYYY-MM-DDcats created:>2016-04-29 matches issues with the word "cats" that were created after April 29, 2016.
>=YYYY-MM-DDcats created:>=2017-04-01 matches issues with the word "cats" that were created on or after April 1, 2017.
<YYYY-MM-DDcats pushed:<2012-07-05 matches repositories with the word "cats" that were pushed to before July 5, 2012.
<=YYYY-MM-DDcats created:<=2012-07-04 matches issues with the word "cats" that were created on or before July 4, 2012.
YYYY-MM-DD..YYYY-MM-DDcats pushed:2016-04-30..2016-07-04 matches repositories with the word "cats" that were pushed to between the end of April and July of 2016.
YYYY-MM-DD..*cats created:2012-04-30..* matches issues created on or after April 30th, 2012 containing the word "cats."
*..YYYY-MM-DDcats created:*..2012-07-04 matches issues created on or before July 4th, 2012 containing the word "cats."

You can also add optional time information THH:MM:SS+00:00 after the date, to search by the hour, minute, and second. That's T, followed by HH:MM:SS (hour-minutes-seconds), and a UTC offset (+00:00).

QueryExample
YYYY-MM-DDTHH:MM:SS+00:00cats created:2017-01-01T01:00:00+07:00..2017-03-01T15:30:15+07:00 matches issues created between January 1, 2017 at 1 a.m. with a UTC offset of 07:00 and March 1, 2017 at 3 p.m. with a UTC offset of 07:00.
YYYY-MM-DDTHH:MM:SSZcats created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z matches issues created between March 21, 2016 at 2:11pm and April 7, 2016 at 8:45pm.

Exclude results that match a qualifier

You can narrow down search results by excluding one or more subsets. To exclude all results that are matched by a qualifier, prefix the search qualifier with a hyphen (-).

QueryExample
-QUALIFIERcats stars:>10 -language:javascript matches repositories with the word "cats" that have more than 10 stars but are not written in JavaScript.
-QUALIFIERmentions:defunkt -org:github matches issues mentioning @defunkt that are not in repositories in the GitHub organization.

Exclude results with specific keywords

You can exclude results containing a certain word, using the NOT syntax. The NOT operator can only be used for string keywords. It does not work for numerals or dates.

QueryExample
NOThello NOT world matches repositories that have the word "hello" but not the word "world."

Use quotation marks for queries with whitespace

If your search query contains whitespace, you will need to surround it with quotation marks. For example:

Queries with usernames

If your search query contains a qualifier that requires a username, such as user, actor, or assignee, you can use any GitHub username to specify a specific person, @me to specify the current user, or @copilot to specify Copilot.

QueryExample
QUALIFIER:USERNAMEauthor:nat matches commits authored by @nat
QUALIFIER:@meis:issue assignee:@me matches issues assigned to the person viewing the results
QUALIFIER:@copilotis:pr reviewed-by:@copilot matches pull requests reviewed by Copilot. For more information, see Using GitHub Copilot code review.

You can only use @me or @copilot with a qualifier, and not as a search term, such as @me main.workflow.