> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genesiscomputing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub Repository Integration

> Connect a GitHub repository to your mission, enable AI indexing and search, and understand how credentials and IDs are used.

<Note>When you connect a repository, it is cloned into a dedicated space using your project ID as the repository identifier (<code>repo\_id</code>). This makes code accessible to AI data agents working on your mission.</Note>

## Easy repository connection

<Steps>
  <Step title="Streamlit" stepNumber={1}>
    Go to the Streamlit GUI to set configurations

    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/GitConfig_1.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=58ff31687d61cf71a4ebf3ab4d243acc" alt="GitConfig 1 Pn" width="1367" height="792" data-path="images/GitConfig_1.png" />
  </Step>

  <Step title="Custom Endpoints Screen" stepNumber={2}>
    Scroll down until you see <code>Custom Endpoints</code>
    Click on <code>Custom Endpoints</code>

    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/GitConfig_2.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=443e2c00b034757530f24f54a70ce004" alt="GitConfig 2 Pn" width="1373" height="788" data-path="images/GitConfig_2.png" />
  </Step>

  <Step title="Enter Endpoints" stepNumber={3}>
    * github.com:443

    * api.github.com:443

    * github.githubassets.com:443
  </Step>

  <Step title="Add Them Individually">
    Add all endpoints one at a time:

    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_1.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=4b6223f113f80d8bc6854158bf1fa420" alt="Git 1 Pn" width="1600" height="451" data-path="images/Git_1.png" />

    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_2.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=d90db5afc443efa41f4988928c429227" alt="Git 2 Pn" width="1600" height="732" data-path="images/Git_2.png" />

    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_3.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=f61b8c2d068f1d302d86fb235300aa28" alt="Git 3 Pn" width="1600" height="821" data-path="images/Git_3.png" />
  </Step>

  <Step title="Connect">
    Once all are added, **Click** Connect.

    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_4.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=ed8ebb0b5887a7f0999e28f303fc99b5" alt="Git 4 Pn" width="1074" height="1098" data-path="images/Git_4.png" />
  </Step>

  <Step title="Assign to Genesis">
    Click `Assign to Genesis`.

    Genesis rechecks the GitHub external-access assignment immediately after you
    trigger it, so the setup screen should move to the completed state as soon
    as Snowflake confirms the change.

    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_5.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=a13240d6cd514f83faeaa0afffcd5c31" alt="Git 5 Pn" width="1600" height="309" data-path="images/Git_5.png" />
  </Step>

  <Step title="Github EAI Setup Completed">
    <img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_6.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=2f7fc95955e6a25b2c95642b08d1bfe2" alt="Git 6 Pn" width="1600" height="1159" data-path="images/Git_6.png" />
  </Step>
</Steps>

## GitHub Actions logs on Snowflake

The endpoints above cover the GitHub API, which is enough to start, follow, cancel and
retry GitHub Actions runs. The **log** of an Actions job is served from somewhere else:
the API redirects to Azure Blob Storage, at a host such as
`productionresultssa9.blob.core.windows.net`. The number changes between runs.

Without egress to that host, `ci_get_pipeline_logs` cannot return the log text. It
returns the failed steps and the job's check-run annotations instead (the `::error`
lines each step emitted), which usually say why the job failed. The annotations need
**Checks: read** on the GitHub App installation or fine-grained token.

To let agents read full logs, an administrator can add `*.blob.core.windows.net:443`
on the **Custom Endpoints** screen, as in the steps above. Snowflake matches one
subdomain level, which covers every log host. That rule allows egress to **every** Azure
Blob Storage account, not only GitHub's, so decide it with your security team.

## Purpose

When creating a new project, you can connect a GitHub repository to enhance your mission’s capabilities. You have three options:

* Leave it unconnected
* Attach an existing repository from GitHub
* Create a brand new repository specifically for your project

When you connect a repository, the system will clone it into a dedicated space using your project ID as the repository identifier (<code>repo\_id</code>), making the code accessible to your AI data agents. For private repositories, provide your GitHub credentials (username and personal access token) either by configuring them beforehand through agent chat conversations, or directly in the Create mission modal during project setup. The cloning process requires these credentials to be available at mission creation time.
<Note> The following example shows that this can also be done directly in Slack </Note>

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_22.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=2ed971521a3c42f22135806ca4803a8b" alt="Git 22 Pn" width="803" height="778" data-path="images/Git_22.png" />

## Clone repository and enable indexing

Once your GitHub credentials are configured, you can clone repositories and enable AI-powered indexing.

### Clone a repository

<Note>Ask your Genesis data agent to clone a repository</Note>
<code>Clone this repository for my project
Repository URL: <code>[https://github.com/tiangolo/fastapi.git](https://github.com/tiangolo/fastapi.git)</code><br /> Project ID: fastapi\_example</code>

**Example result**

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_7.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=751a62f7fc0f06cc3f95790a90f33d8a" alt="Git 7 Pn" width="798" height="303" data-path="images/Git_7.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_8.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=bcefc23cbc5d5545317e1e83c7a3d00b" alt="Git 8 Pn" width="702" height="676" data-path="images/Git_8.png" />

### AI indexing

The agent automatically:

* Creates document index: <code>fastapi\_example</code>
* Recursively indexes repository files, excluding `.git` metadata
* Enables AI-powered search across the entire codebase

<Note>
  Repository indexing creates a document index named after the project ID. If you want an agent to use that indexed repository as reusable agent knowledge, create a knowledge base that references that index name, then assign that knowledge base to the agent.
</Note>

## Search your indexed repository

Once your repository is indexed, you can perform intelligent searches across indexed files and documentation.

### Basic search queries

<Note>Ask your Genesis data agent to search your repository</Note>
<code>Search my fastapi\_example repository for “FastAPI application”</code>

**Example Result**

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_9.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=3844d364d8a8af68aeedede36566e291" alt="Git 9 Pn" width="803" height="1031" data-path="images/Git_9.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_9.5.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=b538b692a7233024f5b1f11bd6ad5177" alt="Git 9.5 Pn" width="805" height="423" data-path="images/Git_9.5.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_9.6.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=a68d7685466a47dd5f4811c3245ea5d2" alt="Git 9.6 Pn" width="806" height="442" data-path="images/Git_9.6.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_10.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=9a0310803ec24e08c39f5d3b75bf8a07" alt="Git 10 Pn" width="806" height="855" data-path="images/Git_10.png" />

### Code-specific searches

<Note>Ask your Genesis data agent to search for specific programming patterns</Note>
<code>Search my fastapi\_example repository for “async def route handler”</code>

**Example results**

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_11.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=96d3cc2d3cc1caac68670678b312901e" alt="Git 11 Pn" width="804" height="968" data-path="images/Git_11.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_12.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=68e60d5cb56dd2ea84434c03d2289e7f" alt="Git 12 Pn" width="803" height="1062" data-path="images/Git_12.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_13.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=083aed71e2c4a036afc4ae867c5fee15" alt="Git 13 Pn" width="807" height="784" data-path="images/Git_13.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_14.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=9134d6812c862d31de5568b4106e24b9" alt="Git 14 Pn" width="806" height="448" data-path="images/Git_14.png" />

### Search capabilities

* Natural language queries
* Relevance scoring to find the most relevant content
* Multi-file search spanning code, docs, tests, and configuration
* Context-aware results with file paths and metadata

### Search tips

* Use specific terms: “dependency injection”, “authentication”, “database models”
* Ask conceptual questions: “how to handle errors”, “API documentation setup”
* Search by file types: “test examples”, “configuration files”

## Read and edit cloned files

Once your repository is cloned, you can read existing files and create new ones directly through Genesis agents.

### Reading existing files

<Note>Ask your Genesis data agent to read any file from your repository</Note> <code>Read the pyproject.toml file from my fastapi\_example repository</code>

**Example result**

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_15.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=4cc97d724f9e08de287e79fde4486b9d" alt="Git 15 Pn" width="807" height="917" data-path="images/Git_15.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_16.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=3e9904b6f859ccd0499384a8c9eb6704" alt="Git 16 Pn" width="805" height="1001" data-path="images/Git_16.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_17.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=35f3f06ef576a52882847e2d26fe6e1e" alt="Git 17 Pn" width="804" height="735" data-path="images/Git_17.png" />

### Creating new files

<Note>Create custom files in your repository</Note>
<code>Create a new FastAPI example file called custom\_example.py with Custom API endpoints, Pydantic models, and error handling</code>

**Example result**

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_18.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=6955b0c339515c7df55990eafa4df580" alt="Git 18 Pn" width="808" height="923" data-path="images/Git_18.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_19.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=388f0a18a5d81807b1a7ee65352147d0" alt="Git 19 Pn" width="809" height="944" data-path="images/Git_19.png" />

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_20.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=fa8f11654e62831c6792f436065a1c3b" alt="Git 20 Pn" width="808" height="1018" data-path="images/Git_20.png" />

### Editing and version control

<Note>Commit your changes to maintain version history</Note>
<code>Commit my changes with message “Add custom FastAPI example for documentation”</code>

**Example result**

<img src="https://mintcdn.com/genesiscomputing/PlA8kGWE_2jPvMVf/images/Git_21.png?fit=max&auto=format&n=PlA8kGWE_2jPvMVf&q=85&s=a71e0364d81b87eedc65efe6750e342f" alt="Git 21 Pn" width="808" height="871" data-path="images/Git_21.png" />

### File operations available

* Read any file: configuration, source code, documentation, tests
* Create new files: add custom implementations, examples, configurations
* Edit existing files: modify code, update documentation, fix bugs
* Commit changes: maintain version history with meaningful messages
* Branch management: create feature branches, switch contexts
* View file status: see what’s changed, staged, or committed

## Automatic content indexing and search

When indexing is enabled, the system builds a searchable document index using your project ID as <code>index\_id</code>. Your code, docs, and other repo files become discoverable to Genesis’s AI data agents. Beyond cloning, enabling indexing lets you:

* Ask data agents questions about your code
* Search for specific functions or files
* Get intelligent insights without manually uploading files

Data agents can analyze code patterns, explain functionality, help with debugging, and provide context-aware assistance based on your actual repository contents — useful for code reviews, documentation tasks, or any project that needs deep understanding of your codebase.
