GitHub
Access knowledge from your GitHub Repositories
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 Negere-Fej
Permission sync is available only on Cloud and the Enterprise Edition of Negere-Fej, 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 Negere-Fej.
How to Make Your Email Public on GitHub:
- Log in to your GitHub account
- Click on your profile picture in the top-right corner and select Settings from the dropdown menu
- In the left sidebar, click on Emails
- Scroll down to Keep my email addresses private and uncheck this option
- Now go back to the left sidebar and click on Public profile
- Scroll down to the Public email section and select your email address from the dropdown
- Click Update profile to save the changes
Why is this required? Negere-Fej uses the public email to match GitHub users with Negere-Fej users for permission synchronization. Without a public email, the system cannot identify which GitHub permissions apply to which Negere-Fej user.
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:
1. Review detailed guide
This guide shows the following steps in detail.
2. Log in to GitHub
Log in to GitHub.
3. Access settings
In the upper right corner, expand your profile and click on Settings
4. Navigate to developer settings
On the bottom, go to Developer settings → Personal access tokens → Tokens (classic)
5. Generate new token
Click on Generate new token
6. Grant permissions
Grant the following permissions:
Repository permissions:
- repo (Full control of private repositories) - to access PRs and issues
Permission Sync Setup
For permission sync functionality, you need additional permissions:
Repository permissions:
- Administration: Read access
- Issues: Read access
- Metadata: Read access
- Pull requests: Read access
Organization permissions:
- Administration: Read only
- Members: Read only
Token Configuration
1. Set expiration time
Set any expiration time. A new token will have to be provided to Negere-Fej to continue updating the Negere-Fej index once this one expires.
2. Verify permissions
Important: If you plan to use permission sync, ensure all the above permissions are granted when creating the token.
Indexing
1. Navigate to connector
Navigate to the Admin Panel and select the GitHub Connector
2. Configure connector
For https://github.com/negere-fej/negere-fej, configure the repository settings accordingly.