GitHub Search indexes repository text files and supported PDF and Office documents on github.com. An organization admin can install the GitHub App once and use it to index selected repositories. Each person connects their own GitHub account once to search the repositories they can access. Installing the App does not connect teammates or give them the installer's permissions.
Admin setup uses your organization's Settings → Sources page. Teammates connect from Integrations in the main sidebar. Installation indexing is available for organization Search.
Before you start
The repository must contain at least one commit. Each person needs a verified GitHub email address matching their Studio account; the address can be private or secondary.
On Studio Cloud, connect through the Studio Search GitHub App in the setup flow below. If you self-host Studio, a deployment administrator must first configure GitHub Search.
To connect an installation for central indexing, you must be a Studio organization admin and either own the GitHub personal account or be an owner of the GitHub organization where the App is installed. You must also be able to read the repository you add.
Add a repository
Open GitHub setup
Open Settings → Sources → Add source and select GitHub. This opens Add GitHub repository. Add one repository per connection; to add another, open GitHub from the Sources list and select Add repository.
Connect GitHub
Select Connect GitHub and approve the requested access on GitHub. If you need to install the App, choose your account or organization and the repositories it can read. Studio automatically returns you to the repository picker when approval finishes. Your open form stays in place.
Studio reuses an eligible installation when one is already available. If you have more than one, choose the GitHub account to use. Only installations on your own account or organizations you own are eligible.
When adding more repositories, your connected GitHub account is already selected. To connect a different organization, open the GitHub picker and select Connect another organization. Installing on all repositories does not automatically add all of them to Search.
Choose what to index
Search the Repository picker and select one repository. It lists repositories available to the selected GitHub installation. Use Add repository again to add another.
Open More options if you need a different branch, path or extension filters, or metadata tags.
| Field | What to enter |
|---|---|
| Repository | Select a repository available to the connected installation. |
| Branch | Optional. Leave blank to follow the repository's default branch. |
| Path Filter | Optional prefix such as docs/. |
| File Extensions | Optional comma-separated list, such as .md, .txt, .mdx. |
Metadata tags controls the metadata stored with results. Its defaults are suitable for most sources. Select Add repository to save the connection.
Connect your account
Teammates open Integrations in the main sidebar, select Connect beside GitHub, and authorize their own GitHub account. Members do not choose repositories or an indexing method.
Each person connects once per Studio organization. When an admin adds another repository, Studio reuses existing member connections and checks each person's access automatically. No additional repository invitation is needed. The member's GitHub row shows their connection status; Reconnect appears if authorization needs renewal, and Disconnect remains available for their own account.
The installation can begin indexing as soon as the admin saves a repository. For private repositories, both the person's account and the App installation must have access. GitHub also permits App user tokens to read public repositories without an installation; see GitHub's permission rules.
Admins can use Settings → Sources → People, filter by GitHub, then select Request connections to request teammates' initial connections. These requests do not grant organization membership.
Manage repositories
Open Settings → Sources → GitHub to see the repositories and their sync status. Select Add repository to add another, or open an existing repository to inspect Documents, edit Settings, or review Sync history.
The document filter separates Failed processing from intentionally Skipped files. Skipped entries explain why they were omitted and do not offer a processing retry. They are reconsidered when the source file changes. Empty files, unsupported binaries, oversized files, and links that do not resolve to files within the repository are skipped. Supported PDFs and Office documents use the shared knowledge-base parser.
A genuine source download failure remains Failed and is retried by scheduled connector sync. A processing failure with downloaded content can be retried from the document view.
Change connection in a repository's Settings repairs its connection while keeping the same repository. The replacement connection must have access to that repository. To index a different repository, use Add repository.
How access is enforced
GitHub App installation access supplies file contents for indexing. Each reader's own connected GitHub account determines which repository's indexed content they can search. Studio organization admins follow the same rule as other readers.
For installation-indexed sources, Studio checks the installation's current status and verifies repository content access with the reader's GitHub account before returning results or opening indexed content. If GitHub cannot confirm access, that repository's content is withheld. Removing a person's repository access, disconnecting their account, or removing the repository from the App's access prevents subsequent reads once GitHub reflects the change. File edits still appear after background indexing.
This is an installation plus personal authorization flow. GitHub Search does not impersonate everyone in an email domain. Google Drive delegation and GitLab administrator indexing use different supported identity and permission models.
Troubleshooting
| Problem | Next step |
|---|---|
| GitHub is unavailable in Search | Ask your Studio organization admin to enable GitHub under Settings → Sources. For self-hosted Studio, also check the GitHub App configuration. |
| Repository cannot be read | Confirm the App is installed on that repository and your GitHub account has access. For SAML organizations, establish your GitHub SSO session before reconnecting. |
| A teammate cannot authorize the App | Check the GitHub organization's App policies and required approvals. Self-hosted deployments must allow the teammate's account in their App visibility settings. |
| GitHub approval did not finish | Select Connect GitHub again and complete approval. If GitHub requires owner approval, ask an organization owner to install the App first, then retry. Requesting an installation does not complete it. |
| No approval window opens | Allow pop-ups for Studio in your browser and select Connect GitHub again. You can cancel an unfinished connection without losing your repository form. |
| GitHub does not return to Studio after installation | For self-hosted Studio, verify the App’s Setup URL and Redirect on update settings. See GitHub Search configuration. |
| Repository is missing or GitHub rejects it | Confirm the repository is included in the selected installation and reopen the picker. Update the source's Repository field after a rename. To index a different repository or one transferred to another owner, use Add repository with the appropriate connection. |
| Your GitHub email does not match | Add and verify the email used by your Studio account in GitHub's email settings, then reconnect. A verified secondary or private email is supported; a public profile email alone is insufficient. |
| GitHub does not allow Studio to read your email addresses | Ask the GitHub App administrator to enable read access to user email addresses, then reconnect. This is a user permission, separate from repository permissions. |
| GitHub is temporarily unavailable during authorization | Retry connecting after GitHub recovers or its rate limit resets. |
| Authorization fails after installation | Return to Studio and start Connect there. Do not enable authorization during installation. |
| Account authorization did not complete | Start the connection again from Studio. If it repeats, contact your organization admin or Studio support. For self-hosted Studio, check the App callback and credentials. |
| GitHub asks for a provider configuration update | An organization admin selects Settings → Sources → More → Update sign-in settings, then affected users reconnect GitHub. |
| Indexed files no longer appear | Confirm your own repository access, App repository selection, and connection status. Installation-indexed content is also withheld when GitHub cannot verify current access; retry once GitHub is available. |
| Sync is incomplete | Review the source status. Very large Git trees, file size limits, and unreadable files can limit indexing. |
| Empty repository returns an error | Add an initial commit, then sync again. GitHub does not return a file tree for an uninitialized repository. |
GitHub Search covers repository text files and supported PDF, Word, Excel, PowerPoint, and OpenDocument files up to 100 MiB, including symbolic links to files within the same repository. Path and extension filters apply to the link's path. Broken or external links, unsupported binaries, and submodules are not indexed. Issues, pull requests, separate wikis, GitHub Enterprise Server, and ghe.com domains are not supported by this connector. Personal access tokens remain available for general knowledge-base connectors, with that knowledge base's access rules.