GitHub
What it indexes
The GitHub connector indexes content from repositories under one GitHub user or organization. Choose a comma-separated repository list, or select Everything for owner-based enumeration. For an organization owner, Everything can enumerate organization repositories visible to the token. For a user owner, it calls /users/{user}/repos, which enumerates public repositories only. Private repositories under a user owner must be entered explicitly by repository name.
At least one of pull requests, issues, or documents must be selected. The connector does not create a separate searchable document for the repository overview.
Prerequisites
- Create a dedicated GitHub access token that can read every selected repository and its enabled PR, issue, and contents APIs.
- Current connector credentials contain one access-token field. They do not contain GitHub App ID, installation ID, client secret, or private-key fields; do not paste an App private key into the token field.
- For organization repositories protected by SAML SSO, authorize the token for that organization.
- Record the exact repository owner and, for explicit scope, each repository name without the owner prefix. If the owner is a user, record every required private repository for explicit entry because Everything will not enumerate it.
- For GitHub Enterprise, have the deployment operator set the deployment-level
GITHUB_CONNECTOR_BASE_URLto the instance’s API base URL. When it is unset, the client uses GitHub.com. The Admin form does not set a host per connector. - Allow the OpenCore worker to reach the selected GitHub API host and allow user browsers to reach result links on the corresponding web host.
- If using Auto Sync Permissions, the token must also be able to read repository visibility, collaborators, outside collaborators, teams, organization members, and the email values needed to match GitHub identities to OpenCore users.
Credentials
GitHub.com versus GitHub Enterprise is selected by deployment configuration, not by a credential value. The current connector schema has no separate GitHub App credential flow. Token scope names vary by token type and server; validate the actual target repositories and, when applicable, permission endpoints instead of relying only on a nominal scope label.
Configure in OpenCore
- In the Admin panel, open Connectors, select GitHub, and create the access-token credential.
- Enter one exact GitHub user or organization in Repository Owner.
- Select Specific Repository and enter one or more comma-separated repository names, or select Everything for owner-based enumeration. For an organization owner, this requests token-visible organization repositories. For a user owner, it uses
/users/{user}/reposand returns public repositories only; enter private user-owned repositories under Specific Repository. Everything is not account-wide: the configured owner remains the boundary. - Select at least one content type: pull requests, issues, or documents. Select documents only when the default-branch documentation-file policy matches the intended content.
- Choose document access. Use Auto Sync Permissions only when it is available and its repository-level mapping has been tested. Otherwise use OpenCore Private groups for restricted repositories; use Public only when every OpenCore account may search all selected content.
- Set refresh and cleanup options, create the connector, and start indexing.
The first checkpoint invocation resolves the configured repositories, stores their IDs and the first repository, and returns without emitting content. Later invocations advance through PR, issue, and file pages for one repository at a time.
For incremental runs, PRs and issues are ordered by update time. OpenCore moves the poll start three hours earlier and the poll end one day later before filtering them. For files, the adjusted start is compared with repository pushed_at; if the repository is recent enough, the current default-branch document set is enumerated again. A push to any branch can therefore cause default-branch documents to be reprocessed.
Permissions
The access token determines what OpenCore can ingest. When Auto Sync Permissions is available and selected, the current Enterprise implementation applies one repository-level access record to every PR, issue, and file document in that repository:
- Public repositories map to OpenCore public access.
- Private repositories map to groups for repository collaborators, outside collaborators, and repository teams.
- Internal repositories map to an organization-members group.
This is repository-level synchronization, not branch-, issue-, or PR-level authorization. It does not reproduce finer-grained source rules. Group membership is built from GitHub email values; a collaborator, team member, or organization member whose usable email is unavailable can be absent from the synchronized OpenCore group. Test both allowed and denied users before relying on Auto Sync.
Without Auto Sync, GitHub access is not checked when a user searches. Private uses the OpenCore groups assigned to the connector, while Public makes every indexed document searchable to every OpenCore account. A user may be able to search a PR, issue, or file that they cannot open in GitHub if the OpenCore access mode is broader than the source.
Verify
- Validate the connector and inspect the actual resolved repository list. For organization Everything, confirm every intended token-visible organization repository is present. For user Everything, expect public repositories only and confirm each required private repository was configured explicitly.
- Continue checkpoint invocations until the run completes, then search for one selected PR body, one issue body, and one default-branch README or documentation file for each enabled content type.
- Confirm PR comments, reviews, diffs, issue comments, source-code files, oversized documents, and non-default-branch-only documents are absent.
- Open result links and confirm they point to the intended GitHub.com or GitHub Enterprise host and, for files, the current default branch.
- Make an incremental change to a PR or issue and verify it appears across the connector’s three-hour start overlap. Push a selected document and confirm the default-branch file is updated.
- If using Auto Sync, test a public repository and representative private or internal repository users, including a source member whose email is unavailable. If not using Auto Sync, test every assigned OpenCore group and a user outside those groups.