Overview
What Gets Indexed
| Source | Content |
|---|---|
| Repositories | Repository names, descriptions, and README files |
| Issues | Issue titles, descriptions, comments, and labels |
| Pull Requests | PR titles, descriptions, review comments, and status |
| Discussions | Discussion threads and replies |
How It Works
- A GitHub Personal Access Token (PAT) grants Omni read-only access to your repositories
- The connector syncs content from repositories the authenticated user has access to
- Permission inheritance ensures users only see content from repositories they can access in GitHub
Indexing uses read-only access. If you later enable GitHub OAuth actions for the AI assistant, write-capable actions require a user’s own authorization and are gated by the connector’s action mode.
Prerequisites
Before setting up the GitHub connector, ensure you have:- GitHub account with access to the repositories you want to index
- GitHub organization admin access (recommended for org-wide indexing)
- Omni deployment with the GitHub connector service running
Setup
Step 1: Create a Personal Access Token
- Go to GitHub Settings → Developer settings → Personal access tokens
- Create either a classic token or a fine-grained token for the repositories you want Omni to index
- For the simplest setup, grant the classic token the
repoandread:orgscopes. If you use a fine-grained token, grant read access for repository contents, issues, pull requests, discussions, metadata, and organization membership as needed. - Click Generate token
- Copy the token immediately — you won’t be able to see it again
Step 2: Connect in Omni
- Navigate to Settings → Integrations in Omni
- Find GitHub and click Connect
- Paste your Personal Access Token into the token field
- Optionally set:
- API URL for GitHub Enterprise (leave blank for github.com)
- Include Discussions to index repository discussions
- Include Forks to include forked repositories
- Read-only mode to expose only read operations to AI tools
- Click Connect
- Click Sync to start the initial sync
Your GitHub connector is now configured. Initial indexing may take a while depending on the number of repositories and issues in your organization.
Managing the Integration
Viewing Sync Status
Navigate to Settings → Integrations to view the sync status for each source directly on the list, including last sync time, number of indexed items, and any errors. Click Settings on a source for more details and sync history.Sync Modes
The GitHub connector supports two sync modes:| Mode | Description |
|---|---|
| Full | Syncs all content from all accessible repositories (used for initial sync) |
| Incremental | Syncs only new or updated content since last sync (used for updates) |
OAuth for AI Tools
The Personal Access Token handles org-wide indexing. GitHub also declares an OAuth app manifest for connector actions that need a user’s own authorization. Configure the GitHub client from Settings → Integrations → OAuth Apps using the shared redirect URI shown on that tab. When a tool needs user authorization, the chat UI prompts the user to connect GitHub before continuing.Removing the Integration
- Navigate to Settings → Integrations
- Click Settings against the GitHub source
- Click Delete Permanently
- Optionally, delete the Personal Access Token in your GitHub settings
Troubleshooting
Repositories not appearing in search
Repositories not appearing in search
Common causes:
- The authenticated user doesn’t have access to the repository
- Sync has not completed yet
- The repository is archived and may need explicit inclusion
Authentication failed
Authentication failed
The Personal Access Token may be expired or revoked.Solution:
- Delete the existing GitHub source from Settings → Integrations → GitHub → Delete Permanently
- Create a new Personal Access Token and reconnect GitHub from the Integrations page
Rate limiting errors
Rate limiting errors
GitHub has API rate limits. The connector handles these automatically with backoff.Solution: Wait for the connector to retry. For large organizations, initial sync may take longer due to rate limits.
Private repository content not indexed
Private repository content not indexed
Ensure the Personal Access Token has access to private repositories.Solution: Verify the token has
Contents (read) permission and that the repository is included in the token’s repository access scope. If needed, regenerate the token with the correct permissions and update it in Omni.Discussions not being indexed
Discussions not being indexed
Discussions must be enabled on the repository for them to be indexed.Solution: Verify that GitHub Discussions is enabled in the repository settings.
Security Considerations
- Read-only access: The connector only has read permissions
- Repository-based permissions: Users only see content from repositories they can access in GitHub
- Token security: Personal Access Tokens should be treated like passwords
- Audit logging: Monitor token usage in GitHub’s security log
What’s Next
Search Your Data
Learn how to search across GitHub content
AI Assistant
Ask questions about your code and issues
Add More Connectors
Connect additional data sources