Skip to main content

Filtering and searching issues and pull requests

To find detailed information about a repository on GitHub, you can filter, sort, and search issues and pull requests that are relevant to the repository.

Tool navigation

Tip: You can also filter issues or pull requests using the GitHub CLI. For more information, see "gh issue list" or "gh pr list" in the GitHub CLI documentation.

Filtering issues and pull requests

Issues and pull requests come with a set of default filters you can apply to organize your listings.

You can find a pull request where you or a team you're a member of is requested for review with the search qualifier review-requested:[USERNAME] or team-review-requested:[TEAMNAME]. For more information, see "Searching issues and pull requests."

You can filter issues and pull requests to find:

  • All open issues and pull requests
  • Issues and pull requests that you've created
  • Issues and pull requests that are assigned to you
  • Issues and pull requests where you're @mentioned

Tip: You can also filter issues or pull requests using the GitHub CLI. For more information, see "gh issue list" or "gh pr list" in the GitHub CLI documentation.

  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Issues or Pull requests.

    Screenshot of the main page of a repository. In the horizontal navigation bar, two tabs, labeled "Issues" and "Pull requests," are each outlined in dark orange.

  3. Above the list, select the Filters dropdown menu, then click the type of filter you're interested in.

    Screenshot of the list of issues for a repository. Above the list, a dropdown menu, labeled "Filters", is outlined in dark orange.

Building advanced filters for issues

Note

Issue types, sub-issues, and advanced issue search are currently in an opt-in public preview for organizations. To learn more and add your organization to the waitlist, see the "GitHub Blog."

You can build advanced filters using boolean and nested queries on your repository's issues page. As you type your filter, GitHub will show available qualifiers, suggest values, and warn when there is a problem with your filter.

Using boolean operators

You can use AND and OR operators to refine your filters.

Use AND when you need results where both statements are true. In the example filter below, the results will be comprised of issues with the "Bug fix" label that are assigned to the @octocat user.

label:"Bug fix" AND assignee:octocat

To return results where either statement is true, use OR. In the example below, the results will contain issues assigned to either @octocat or @hubot.

assignee:octocat OR assignee:hubot

If you choose not to use AND and OR operators, GitHub will treat a space between statements as an AND operator unless you are using an org, repo, or user field to filter by ownership where any spaces will be treated as an OR operator.

Using parentheses for more complicated filters

You can also use parentheses to nest filters and group qualifiers. In the example below, the results will contain issues that are either assigned to @octocat with the "bug" issue type or assigned to @hubot with the "Enhancement" issue type.

(type:"Bug" AND assignee:octocat) OR (type:"Enhancement" AND assignee:hubot)

You can nest filters using parentheses up to five levels deep. It's not currently possible to include the repo, org, or user qualifiers within parentheses.

Filtering issues and pull requests by assignees

Once you've assigned an issue or pull request to someone, you can find items based on who's working on them.

  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Issues or Pull requests.

    Screenshot of the main page of a repository. In the horizontal navigation bar, two tabs, labeled "Issues" and "Pull requests," are each outlined in dark orange.

  3. Above the list of issues or pull requests, select the Assignee dropdown menu.

    Screenshot of a list of issues. In the header above the list, a dropdown menu, labeled "Assignees", is outlined in dark orange.

  4. The Assignee drop-down menu lists everyone who has write access to your repository. Click the name of the person whose assigned items you want to see, or click Assigned to nobody to see which issues are unassigned.

To clear your filter selection, click Clear current search query, filters, and sorts.

Filtering issues and pull requests by labels

Once you've applied labels to an issue or pull request, you can find items based on their labels.

  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Issues or Pull requests.

    Screenshot of the main page of a repository. In the horizontal navigation bar, two tabs, labeled "Issues" and "Pull requests," are each outlined in dark orange.

  3. Above the list of issues or pull requests, click Labels.

    Screenshot of the list of issues for a repository. Above the list, a button, labeled with a label icon and "Labels", is outlined in dark orange.

  4. In the list of labels, click a label.

Tip: To clear your filter selection, click Clear current search query, filters, and sorts.

Filtering by issue type

Note

Issue types, sub-issues, and advanced issue search are currently in an opt-in public preview for organizations. To learn more and add your organization to the waitlist, see the "GitHub Blog."

If your organization uses issue types, you can filter issues for a particular type. You can also type the type: qualifier directly into your filter.

  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Issues.

    Screenshot of the main page of a repository. In the horizontal navigation bar, a tab, labeled "Issues," is outlined in dark orange.

  3. Above the list of issues, select the Types dropdown menu.

    Screenshot of a list of issues. In the header above the list, a dropdown menu, labeled "Types", is outlined in dark orange and the Issue Types menu is open.

  4. In the list of type, click an issue type.

Filtering pull requests by review status

You can use filters to list pull requests by review status and to find pull requests that you've reviewed or other people have asked you to review.

You can filter a repository's list of pull requests to find:

  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Pull requests.

    Screenshot of the main page of a repository. In the horizontal navigation bar, a tab, labeled "Pull requests," is outlined in dark orange.

  3. In the upper-right corner, select the Reviews dropdown menu.

    Screenshot of the filter menu above the list of pull requests. The "Reviews" dropdown is outlined in dark orange.

  4. Choose a filter to find all of the pull requests with that filter's status.

Using search to filter issues and pull requests

You can use filters to search for issues and pull requests that meet specific criteria.

Searching for issues and pull requests

The issues and pull requests search bar allows you to define your own custom filters and sort by a wide variety of criteria. You can find the search bar on each repository's Issues and Pull requests tabs and on your Issues and Pull requests dashboards.

Screenshot of the list of issues for a repository. Above the list, a search field, containing the query "is:issue is:open", is outlined in dark orange.

Tip: You can focus your cursor on the search bar above the issue or pull request list with a keyboard shortcut. For more information, see "Keyboard shortcuts."

To learn more about GitHub CLI, see "About GitHub CLI."

You can use the GitHub CLI to search for issues or pull requests. Use the gh issue list or gh pr list subcommand along with the --search argument and a search query.

For example, you can list, in order of date created, all issues that have no assignee and that have the label help wanted or bug.

gh issue list --search 'no:assignee label:"help wanted",bug sort:created-asc'

You can also list all pull requests that mention the octo-org/octo-team team.

gh pr list --search "team:octo-org/octo-team"

About search terms

With issue and pull request search terms, you can:

  • Filter issues and pull requests by author: state:open type:issue author:octocat
  • Filter issues and pull requests that involve, but don't necessarily @mention, certain people: state:open type:issue involves:octocat
  • Filter issues and pull requests by assignee: state:open type:issue assignee:octocat
  • Filter issues and pull requests by label: state:open type:issue label:"bug"
  • Filter out search terms by using - before the term: state:open type:issue -author:octocat

Tip: You can filter issues and pull requests by label using logical OR or using logical AND.

  • To filter issues using logical OR, use the comma syntax: label:"bug","wip".
  • To filter issues using logical AND, use separate label filters: label:"bug" label:"wip".

For issues, you can also use search to:

  • Filter for issues that are linked to a pull request by a closing reference: linked:pr
  • Filter issues by the reason they were closed: is:closed reason:completed or is:closed reason:"not planned"
  • Filter for issues with a particular type: is:open type:"Bug"

For pull requests, you can also use search to:

  • Filter draft pull requests: is:draft
  • Filter pull requests that haven't been reviewed yet: state:open type:pr review:none
  • Filter pull requests that require a review before they can be merged: state:open type:pr review:required
  • Filter pull requests that a reviewer has approved: state:open type:pr review:approved
  • Filter pull requests in which a reviewer has asked for changes: state:open type:pr review:changes_requested
  • Filter pull requests by reviewer: state:open type:pr reviewed-by:octocat
  • Filter pull requests by the specific user requested for review: state:open type:pr review-requested:octocat
  • Filter pull requests that someone has asked you directly to review: state:open type:pr user-review-requested:@me
  • Filter pull requests by the team requested for review: state:open type:pr team-review-requested:github/docs
  • Filter for pull requests that are linked to an issue that the pull request may close: linked:issue
  • Filter pull requests by state of merging: is:merged or is:unmerged

Sorting issues and pull requests

Filters can be sorted to provide better information during a specific time period.

You can sort any filtered view by:

  • The newest created issues or pull requests
  • The oldest created issues or pull requests
  • The most commented issues or pull requests
  • The least commented issues or pull requests
  • The newest updated issues or pull requests
  • The oldest updated issues or pull requests
  • The most added reaction on issues or pull requests
  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Issues or Pull requests.

    Screenshot of the main page of a repository. In the horizontal navigation bar, two tabs, labeled "Issues" and "Pull requests," are each outlined in dark orange.

  3. Above the list of issues or pull requests, select the Sort dropdown menu, then click a sort method.

    Screenshot of the list of issues for a repository. Above the list, a dropdown menu, labeled "Sort," is outlined in dark orange.

To clear your sort selection, click Sort > Newest.

Sharing filters

When you filter or sort issues and pull requests, your browser's URL is automatically updated to match the new view.

You can send the URL that issues generates to any user, and they'll be able to see the same filter view that you see.

For example, if you filter on issues assigned to Hubot, and sort on the oldest open issues, your URL would update to something like the following:

/issues?q=state:open+type:issue+assignee:hubot+sort:created-asc

Further reading