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

# Connect your repository

> Link a GitHub repository or Perforce depot to your Streampixel project for cloud builds.

Cloud builds pull your project source from a repository connected to your Streampixel project. You connect one source per project — a **GitHub** repository or a **Perforce** depot — and every build configuration on that project builds from it.

Open your project's **Builds** page and click **Connect Repository** (top right), then pick your provider.

## Connect GitHub

GitHub access works through a **GitHub App installation**: you install the Streampixel app on your GitHub account or organization and choose which repositories it can see. Streampixel never gets your GitHub password, and you can narrow or revoke access on GitHub at any time.

<Steps>
  <Step title="Connect a GitHub account">
    In the connect dialog, choose **GitHub**. If you haven't connected an account yet, click **Connect GitHub** — a GitHub window opens where you pick the account or organization and select which repositories to grant.
  </Step>

  <Step title="Pick the repository">
    Back in the dialog, select the GitHub account, then search and select the repository that contains your Unreal project. Private repositories work — they're marked **private** in the list.
  </Step>

  <Step title="Click 'Connect repository'">
    Streampixel links the repo to the project and prepares a workspace for it, so your first build doesn't start from a cold clone.
  </Step>
</Steps>

<Info>
  Repository missing from the list? It wasn't granted to the installation. Open the connect dialog's GitHub step again and use **Configure** on GitHub to add it, or install the app on the organization that owns it. You can connect multiple GitHub accounts and organizations.
</Info>

## Connect Perforce

Perforce connections use a stored server credential: Streampixel signs in to your Perforce server with a user you provide and syncs from a depot.

<Steps>
  <Step title="Add a Perforce account">
    In the connect dialog, choose **Perforce**, then **Connect Perforce**. Enter the **server URL** (e.g. `ssl:perforce.example.com:1666`), a **username**, and either a **password** or a **P4 ticket**.
  </Step>

  <Step title="Pick the depot">
    Select the Perforce account, then the **depot** your project lives in. The first depot listing can take around 30 seconds while Streampixel talks to your server.
  </Step>

  <Step title="Click 'Connect depot'">
    The depot applies to the whole project — individual build configurations then pick a **stream** within it.
  </Step>
</Steps>

<Tip>
  Use a dedicated build user with read access rather than a personal account. Passwords are stored encrypted, and you can update or remove accounts under **Settings → Integrations**.
</Tip>

## The `.uproject` requirement

Streampixel locates your `.uproject` file automatically — it doesn't need to be at the repository root. Two things must hold:

* **It must exist.** If no `.uproject` is found in the repo or stream, connecting fails with `No .uproject file found`.
* **It must be valid JSON.** The engine version for your builds is read from its `EngineAssociation` field, so a malformed file blocks detection.

## Manage connected accounts

Source-control accounts live at the account level under **Settings → Integrations** — the same GitHub installation or Perforce account can serve several projects. From there you can add accounts, open an installation on GitHub, or disconnect one.

<Warning>
  A Perforce account that's still assigned to projects can't be deleted — reassign those projects to another account first.
</Warning>

## Change or disconnect the source

Once connected, the **Connect Repository** button becomes a source chip showing your repo or depot. Its menu offers **Change source…** and **Disconnect repository**.

<Warning>
  Disconnecting **permanently deletes all build configurations** on the project, including scheduled builds. Your build history is kept, but you'll need to reconnect a repository and re-create configurations to run new builds.
</Warning>

## Next

<CardGroup cols={2}>
  <Card title="Build configurations" icon="sliders" href="/resources/cloud-builds/build-configurations">
    Define what gets built, from where, and when.
  </Card>

  <Card title="Running and monitoring builds" icon="bars-progress" href="/resources/cloud-builds/running-and-monitoring-builds">
    Follow a build from source sync to artifact.
  </Card>
</CardGroup>
