# Appendix N: GitHub Advanced Search
>
> **Listen to Episode 27:** [Advanced Search](https://lp.csedesigns.com/ggg/PODCASTS.html) - a conversational audio overview of this chapter. Listen before reading to preview the concepts, or after to reinforce what you learned.
> **Reference companion to:** [Chapter 05: Working with Issues](05-working-with-issues.md) | Also relevant: [Chapter 09](09-labels-milestones-projects.md)
>
> **Authoritative source:** [GitHub Docs: Searching on GitHub](https://docs.github.com/en/search-github)
## Finding Anything Across All of GitHub
> GitHub's search engine is powerful and underused. For screen reader users in particular, using the search bar with precise query syntax is often *faster and more accessible* than navigating filter dropdowns and checkbox menus. This reference covers the query language so you can filter anything from the keyboard.
## Table of Contents
1. [The Search Interface](#1-the-search-interface)
2. [Search Scopes](#2-search-scopes)
3. [The Core Query Language](#3-the-core-query-language)
4. [Searching Issues and Pull Requests](#4-searching-issues-and-pull-requests)
5. [Searching Code](#5-searching-code)
6. [Searching Commits](#6-searching-commits)
7. [Searching Repositories](#7-searching-repositories)
8. [Searching Users and Organizations](#8-searching-users-and-organizations)
9. [Practical Queries for This Workshop](#9-practical-queries-for-this-workshop)
10. [Saving and Reusing Searches](#10-saving-and-reusing-searches)
## 1. The Search Interface
GitHub's search is accessible from nearly any page:
- **Global search bar:** At the top of every GitHub page - keyboard shortcut `/` to focus it from anywhere (press `/`, then type)
- **Issues/PRs list:** Each tab has its own search bar pre-scoped to that repository
- **Advanced Search UI:** `github.com/search/advanced` - a form with individual fields for each filter. Accessible but verbose; query syntax below is faster.
### Keyboard to global search
```text
/ → Focus the global search bar (works on most GitHub pages)
Type your query → Enter
→ Results page opens, grouped by type (Code, Issues, PRs, Repositories, etc.)
```
### Learning Cards: The Search Interface
Screen reader users
- Press `/` on any GitHub page to jump straight to the global search bar — no Tab hunting required
- After pressing Enter on a query, results are grouped by type under headings (Code, Issues, PRs, Repositories) — use `H` to jump between groups
- Query syntax typed directly in the search bar is often faster and more accessible than the Advanced Search form at github.com/search/advanced
Low vision users
- The search bar sits at the very top of every GitHub page — if you lose it at high zoom, press `/` to refocus instantly
- Search results use bold text for matched terms — increase browser zoom to make the highlighted keywords easier to spot
- Pin the Advanced Search page (github.com/search/advanced) as a bookmark for days when you prefer large labeled form fields over compact query syntax
Sighted users
- Look for the search bar in the top navigation bar — it shows a `/` hint icon on the right to remind you of the keyboard shortcut
- After submitting a query, use the left sidebar type filters (Code, Issues, PRs, etc.) to narrow results visually
- GitHub highlights matched keywords in yellow within search results — scan for those highlights to evaluate relevance quickly
## 2. Search Scopes
By default, GitHub searches across all of GitHub. Scope modifiers restrict results:
| Modifier | Scope |
| --- | --- |
| `repo:owner/name` | One specific repository |
| `org:orgname` | All repos in an organization |
| `user:username` | All repos owned by a user |
| `in:title` | Only matches in the title field |
| `in:body` | Only matches in the body field |
| `in:comments` | Only matches in comments |
**Example:** `repo:community-access/accessibility-agents in:title keyboard` finds issues/PRs whose titles mention "keyboard" in the accessibility-agents repo.
## 3. The Core Query Language
### Boolean Logic
| Syntax | Meaning |
| --- | --- |
| `word1 word2` | Both words (implicit AND) |
| `word1 OR word2` | Either word |
| `"exact phrase"` | Exact phrase match |
| `-word` | Exclude this word |
| `-label:bug` | Exclude items with this label |
### Common Qualifiers
| Qualifier | Meaning |
| --- | --- |
| `is:open` | Open items only |
| `is:closed` | Closed items only |
| `is:merged` | Merged PRs only |
| `is:unmerged` | Open or closed but not merged PRs |
| `is:issue` | Issues only |
| `is:pr` | Pull requests only |
| `is:draft` | Draft pull requests only |
| `label:name` | Items with this label |
| `no:label` | Items with no labels |
| `assignee:@me` | Assigned to you |
| `assignee:username` | Assigned to a specific user |
| `author:@me` | Created by you |
| `author:username` | Created by a specific user |
| `mentions:username` | Mentions a specific user |
| `involves:@me` | You are author, assignee, mentioned, or commented |
| `milestone:"Milestone Name"` | In a specific milestone |
| `no:milestone` | Not in any milestone |
| `no:assignee` | Not assigned to anyone |
| `comments:>5` | More than 5 comments |
| `reactions:>10` | More than 10 reactions |
### Date Qualifiers
| Qualifier | Meaning |
| --- | --- |
| `created:>2025-01-01` | Created after a date |
| `created:<2025-01-01` | Created before a date |
| `created:2025-01-01..2025-03-31` | Created in a date range |
| `updated:>2025-06-01` | Updated after a date |
| `closed:>2025-06-01` | Closed after a date |
## 4. Searching Issues and Pull Requests
### Going to the Issues search directly
GitHub's issue/PR search is at `github.com/issues` (your issues) or `github.com/pulls` (your PRs). The search bar there is pre-scoped to "repos you have access to involving you."
### Practical queries
#### Find all unassigned, open accessibility issues across an org
```text
org:community-access is:issue is:open label:accessibility no:assignee
```
#### Find good first issues in any language
```text
is:issue is:open label:"good first issue" no:assignee
```
#### Find good first issues in a specific language
```text
is:issue is:open label:"good first issue" language:python no:assignee
```
#### Find all PRs you need to review
```text
is:pr is:open review-requested:@me
```
#### Find all open PRs where you were mentioned
```text
is:pr is:open mentions:@me
```
#### Find your open issues across all repos
```text
is:issue is:open author:@me
```
#### Find issues that are stale (open, not updated in 6+ months)
```text
is:issue is:open repo:owner/name updated:<2024-08-01
```
### Learning Cards: Searching Issues and Pull Requests
Screen reader users
- The `is:pr is:open review-requested:@me` query is your daily go-to — it lists every PR waiting for your review without navigating the Pulls tab
- Combine `assignee:@me` with `is:open` to get your personal task list announced as a simple results list
- Use `in:title` or `in:body` qualifiers to avoid noisy matches buried in long comment threads
Low vision users
- Bookmark the URL after running a search — the full query is encoded in the address bar so you can reuse it without retyping
- The Issues search page (github.com/issues) pre-scopes to your repos — at high zoom this single-column list is easier to scan than a full global search
- Results show labels as colored badges next to each title — zoom in or hover to read the label text if the color alone is hard to distinguish
Sighted users
- The left sidebar on the search results page lets you toggle between Issues and PRs with one click — use it to refine without editing your query
- Look for the green (open), purple (merged), or red (closed) state icons next to each result for quick visual triage
- Star or bookmark the "good first issue" query from Section 4 — it is the fastest way to find your next contribution
## 5. Searching Code
Code search operates differently from issue search. As of 2024, GitHub uses an improved code search engine (sometimes called "code search v2") with better indexing.
### Basic code search
```text
repo:owner/name language:javascript aria-label
```
### Find uses of a function across a repo
```text
repo:owner/name symbol:handleKeyDown
```
### Find a pattern across all repos in an org
```text
org:community-access aria-hidden="true"
```
### Code search qualifiers
| Qualifier | Meaning |
| --- | --- |
| `language:python` | Filter by programming language |
| `path:src/` | Only files under this path |
| `filename:config.yml` | Only files with this name |
| `extension:md` | Only files with this extension |
| `symbol:functionName` | Search for a specific symbol/function name |
| `content:"exact string"` | Exact string match in file content |
## 6. Searching Commits
### Find commits with a keyword in the message
```text
repo:owner/name fix keyboard navigation
```
### Find commits by a specific author
```text
repo:owner/name author:username
```
### Find commits in a date range
```text
repo:owner/name committer-date:2025-01-01..2025-03-31
```
### Find commits that touched a specific file
```text
repo:owner/name path:docs/README.md
```
## 7. Searching Repositories
### Find accessible repos by topic
```text
topic:accessibility stars:>50 is:public
```
### Find repos with a specific language, sorted by stars
```text
language:typescript topic:screen-reader sort:stars-desc
```
### Repository qualifiers
| Qualifier | Meaning |
| --- | --- |
| `stars:>100` | More than 100 stars |
| `forks:>10` | More than 10 forks |
| `is:public` | Public repos only |
| `is:private` | Private repos only (requires access) |
| `topic:topicname` | Repos tagged with this topic |
| `license:mit` | Repos with an MIT license |
| `size:<1000` | Repos smaller than 1000 KB |
| `pushed:>2025-01-01` | Repos with recent activity |
## 8. Searching Users and Organizations
### Find users
```text
type:user location:Seattle followers:>100
```
### Find organizations
```text
type:org topic:accessibility
```
## 9. Practical Queries for This Workshop
Bookmark these for use during the hackathon:
### Find open contributions you can make right now in accessibility-agents
```text
repo:community-access/accessibility-agents is:issue is:open label:"good first issue" no:assignee
```
### Check whether your issue is already filed
```text
repo:community-access/accessibility-agents is:issue keyboard navigation
```
### Find all accessibility-related issues in a project
```text
repo:community-access/accessibility-agents is:issue label:accessibility is:open
```
### See all your merged PRs (proof of contribution)
```text
is:pr is:merged author:@me
```
### Find recent discussions about a topic
```text
repo:community-access/accessibility-agents in:discussions screen reader
```
## 10. Saving and Reusing Searches
GitHub does not have a built-in saved-search feature, but you can:
1. **Bookmark the URL** - every search result page has the query in the URL. Bookmark it in your browser for instant re-run.
2. **Pin in notifications** - if you're watching a repo, set up notification filters
3. **Accessibility Agents** - use `/my-issues` and `/my-prs` for your personal saved-search equivalents without leaving VS Code
### Example bookmarkable URL
```text
https://github.com/issues?q=is%3Aissue+is%3Aopen+assignee%3A%40me
```
---
*Next: [Appendix O: Branch Protection](appendix-o-branch-protection.md)*
*Back: [Appendix M: Accessibility Standards](appendix-m-accessibility-standards.md)*
*Teaching chapter: [Chapter 05: Working with Issues](05-working-with-issues.md)*
## Authoritative Sources
Use these official references when you need the current source of truth for facts in this chapter.
- [GitHub Docs, home](https://docs.github.com/en)
- [GitHub Changelog](https://github.blog/changelog/)
- [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax)
- [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
### Section-Level Source Map
Use this map to verify facts for each major section in this file.
- **Finding Anything Across All of GitHub:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github), [About Git](https://docs.github.com/en/get-started/using-git/about-git)
- **1. The Search Interface:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
- **2. Search Scopes:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
- **3. The Core Query Language:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
- **4. Searching Issues and Pull Requests:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github), [About Git](https://docs.github.com/en/get-started/using-git/about-git)
- **5. Searching Code:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
- **6. Searching Commits:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github), [About Git](https://docs.github.com/en/get-started/using-git/about-git)
- **7. Searching Repositories:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
- **8. Searching Users and Organizations:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
- **9. Practical Queries for This Workshop:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)
- **10. Saving and Reusing Searches:** [GitHub Docs, home](https://docs.github.com/en), [GitHub Changelog](https://github.blog/changelog/), [GitHub code search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax), [Advanced search docs](https://docs.github.com/en/search-github/searching-on-github/searching-on-github)