Connect GitHub
Authorize Oxagen to read your repositories and ingest source code, pull requests, issues, and releases into your knowledge graph.
Overview
The GitHub connection lets Oxagen read your repositories and ingest their contents — source files, pull requests, issues, commits, and releases — into your workspace knowledge graph. Once connected, your agents can answer questions and reason over your codebase with RBAC-scoped context.
Oxagen connects through a GitHub App using read-only access. It never writes to your repositories, and you choose exactly which repositories it can see.
What Oxagen reads
| Data | GitHub permission | Access |
|---|---|---|
| Source files (the repo tree + file contents) | Contents | Read-only |
| Repository metadata (name, default branch, language) | Metadata | Read-only |
| Pull requests | Pull requests | Read-only |
| Issues and comments | Issues | Read-only |
Oxagen requests read-only access only. It cannot push code, open pull requests, change settings, or delete anything.
Before you start
- You need a workspace in Oxagen and permission to add connections to it.
- You need to be able to install a GitHub App on the GitHub account or organization that owns the repositories — that usually means you are an owner or admin of that GitHub org, or it is your personal account.
Connect a repository
- In Oxagen, open your workspace and go to Knowledge → Sources.
- Click Add source and choose GitHub.
- Click Authorize GitHub. You'll be sent to GitHub to sign in and approve access.
- On GitHub, choose where to install the Oxagen app:
- Pick the account or organization that owns the repositories.
- Choose All repositories or Only select repositories — selecting only the repos you want to ingest is recommended.
- Review the read-only permissions and click Install & Authorize.
- GitHub returns you to Oxagen. You'll see the installations available to you.
- Pick an installation, then select the repository you want to ingest.
- Click Connect. Oxagen activates the connection and starts the initial sync.
What happens during the initial sync
When you connect a repository, Oxagen performs a first pass over its default branch:
- It reads the repository file tree and pulls in source files.
- Each file and entity is added to your workspace knowledge graph with embeddings so your agents can search and reason over it.
- Larger repositories are processed in batches. The sync runs in the background — you can leave the page and come back.
The connection's status moves to Connected once the sync has started. You can re-run a sync at any time from the source's settings.
Staying up to date automatically
After the initial sync, Oxagen keeps your knowledge graph current as your repository changes — new commits, pull requests, issues, comments, and releases are ingested automatically as they happen, with no action required. Records are added for the activity types your workspace has chosen to ingest; you can also trigger a manual Re-sync at any time.
The initial sync focuses on common source-code file types and skips generated/vendor
directories (for example node_modules, dist, and .git). If you need a different file
scope for your repository, contact support.
Managing the connection
- Add or remove repositories: change which repositories the Oxagen app can access from GitHub → Settings → Applications → Installed GitHub Apps → Oxagen → Configure. Then reconnect or re-sync in Oxagen to pick up the change.
- Re-sync: open the source in Knowledge → Sources and choose Re-sync to refresh the ingested content.
- Disconnect: remove the source in Oxagen, and optionally uninstall the Oxagen app from your GitHub account to revoke access entirely.
Security
- Access is granted through a GitHub App with read-only permissions you can review before installing.
- Your authorization tokens are encrypted at rest and scoped to your organization and workspace.
- Oxagen only ever sees the repositories you explicitly grant it.
- Revoke access at any time by uninstalling the Oxagen app from GitHub, or by removing the source in Oxagen.
Troubleshooting
| Problem | What to do |
|---|---|
| "GitHub App is not configured" (HTTP 503) / authorization won't start | GITHUB_APP_SLUG or GITHUB_APP_INSTALL_STATE_SECRET is absent from the deployment environment — contact your Oxagen admin. |
| No installations appear after authorizing | Make sure you completed the Install & Authorize step on GitHub for the account that owns your repos. |
| A repository is missing from the list | The Oxagen app may not have access to it. On GitHub, open the Oxagen app's configuration and add the repository, then return to Oxagen. |
| Sync seems stuck | Large repositories take longer. If it doesn't progress, re-run the sync from the source settings or contact support. |
Storage driver
STORAGE_DRIVER and the filesystem driver — running Oxagen's blob storage without a Vercel Blob token.
Custom inference prompts
Steer how a connection's data is turned into graph entities and relationships by setting per-connection ontology and semantic-edge prompts via integration.configure.