What It Does
- fetches files from a GitHub repository at a given branch or commit
- optionally fetches repository issues, with label filtering
- converts file and issue content to Markdown for indexing
- runs ingestion on configurable schedules
Authentication
Two authentication methods are supported (mutually exclusive):- Personal Access Token (
personal_token): a GitHub PAT with access to the target repository. - GitHub App (
github_app_id+github_app_installation_id+github_app_private_key): all three fields are required together when using GitHub App authentication.
- Repository contents: read — required for both PAT and GitHub App auth, to fetch repository files.
- Issues: read — required in addition to the above when
include_issuesistrue. - For GitHub App auth, the app installation must include the target repository.
Environment Variables
Set these in.env.rag:
GITHUB1_OWNER(required): repository owner or organizationGITHUB1_REPO(required): repository nameGITHUB1_PERSONAL_TOKEN(required, unless using GitHub App auth): GitHub Personal Access TokenGITHUB1_APP_ID,GITHUB1_APP_INSTALLATION_ID,GITHUB1_APP_PRIVATE_KEY(required together, alternative toGITHUB1_PERSONAL_TOKEN): GitHub App credentialsGITHUB1_SCHEDULES(optional): ingestion interval in seconds (default is3600)
config.yaml Example
.env.rag Example
Configuration Reference
Multiple GitHub Sources
Add moresources entries (github2, github3, etc) with separate env vars per source.