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.
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
1
Log in to GitHub
Log in to your GitHub account
2
Access profile settings
Click on your profile picture in the top-right corner and select Settings from the dropdown menu
3
Navigate to email settings
In the left sidebar, click on Emails
4
Enable public email
Scroll down to Keep my email addresses private and uncheck this option
5
Configure public profile
Now go back to the left sidebar and click on Public profile
6
Set public email
Scroll down to the Public email section and select your email address from the dropdown
7
Save changes
Click Update profile to save the changes
Why is this required?Onyx uses the public email to match GitHub users with Onyx users for permission synchronization. Without a public email,
the system cannot identify which GitHub permissions apply to which Onyx user.
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.
2
Add required permissions
Add these in the token configuration page using Repository permissions -> Add permission and
Organization permissions -> Add permission: