How it works
The Github Connector picks up all of the Pull Requests and Issues in a specified repository.- It will index both Open and Closed PRs. This includes the Title and Summary.
- It will index Issues and comments both Open and Closed
- Includes certain other metadata such as the URL, creator, etc.
Permission Sync Feature
The GitHub connector supports permission synchronization, which ensures that users can only access documents they have permissions to view in GitHub. When enabled, this feature:- Syncs user permissions from GitHub repositories and organizations
- Ensures that users only see search results for repositories they have access to
- Maintains consistent access control between GitHub and Onyx
Permission sync is available only on Cloud and the Enterprise Edition of Onyx,
and it requires additional token permissions beyond those needed for basic indexing.
⚠️ CRITICAL REQUIREMENT: Public Email Profile
VERY IMPORTANT: For permission sync to work,
users must have their email address publicly visible in their GitHub profile. If a user’s email is set to private,
they will not get access to any documents through Onyx.
How to make your email public on GitHub
How to make your email public on GitHub
Access profile settings
Click on your profile picture in the top-right corner and select Settings from the dropdown menu
Set public email
Scroll down to the Public email section and select your email address from the dropdown
Setting up
Authorization
This Connector uses a GitHub Access Token. The required permissions depend on whether you’re using the permission sync feature.Basic Setup (Indexing Only)
For basic indexing without permission sync:Review detailed guide
This
guide
shows the following steps in detail.
Navigate to developer settings
On the bottom, go to Developer settings -> Personal access tokens -> Tokens (classic)
Grant permissions
Grant the following permissions:
- Repository permissions:
repo(Full control of private repositories) - to access PRs and issues
Fine-Grain Access Token Requirements
Fine-Grain Access Token Requirements
If you’re using a fine-grain access token instead of a classic token:
Permission Sync Setup
Pick the token type you’re using:- Fine-grained access token
- Classic token
Select the organization (resource owner)
When creating a fine-grained GitHub access token for permission sync,
make sure you select the correct Resource owner organization (the GitHub organization that owns the
repositories you want to create the connector for).
Fine-grained tokens scoped to a personal user account do not allow granting Organization permissions
(like Members), so permission sync requires selecting an organization as the resource owner.
Add required permissions
Add these in the token configuration page using Repository permissions -> Add permission and
Organization permissions -> Add permission:

- Repository permissions (Read access): Administration, Issues, Metadata, Pull requests
- Organization permissions (Read only): Administration, Members
Token Configuration
Set expiration time
Set any expiration time.
A new token will have to be provided to Onyx to continue updating the Onyx index once this one expires.
Indexing
Configure connector
For https://github.com/onyx-dot-app/onyx, it would look like:

