# Connect a Repo

In order for Abbey to orchestrate your access requests flows, you'll need to connect a code repository that holds your Terraform files.

{% hint style="info" %}
For this step, you'll be working in

* Abbey App
* GitHub
  {% endhint %}

<details>

<summary>Already set up a starter kit before?</summary>

If you've already set up a connection from Abbey <- -> Github, just make sure the Abbey Github App has permissions for your repo. Either select **All Repositories** or make sure your repo is added to the **Only select repositories** list.

Once that's saved, skip ahead to [Create a Grant Kit](/build-a-grant-kit/create-a-grant-kit.md) :tada:

<img src="/files/PIv7yVdclfAMSjSdEUd0" alt="" data-size="original">

</details>

## Step 1: Connect Abbey to your Repo

{% hint style="info" %}
For this step, you'll be working in

* Abbey App
* GitHub
  {% endhint %}

To use Abbey for access requests, you'll need to connect Abbey to your GitHub.

### Create a Connection

1. Go to the Abbey App ([app.abbey.io](https://app.abbey.io))
2. Go to the **Settings > Version Control** page and click :heavy\_plus\_sign:**Create a Connection**

<figure><img src="/files/MKebUDZmzzBhTEJtS2Bi" alt=""><figcaption></figcaption></figure>

3. Choose a name for your connection, then click **Create**. You'll be redirected to GitHub to install Abbey on your GitHub account.
4. In the Github App Permissions screen, choose either **All Repositories** or **Only select repositories** with the repository you created earlier in Step 1 selected

<figure><img src="/files/3s2DFvdhZDUsTmPIMoIK" alt=""><figcaption></figcaption></figure>

&#x20;5\. Once you click **Install & Authorize**, you'll be redirected back to the Abbey App, and your connection will be created :tada:

{% hint style="info" %}
:checkered\_flag: Congrats! You've now authorized Abbey to talk with the newly created GitHub repo in your personal account

At this point you should&#x20;

1. Have a connection to GitHub under the Abbey Settings -> Version Control tab
2. Have created a repo into your own GitHub account based off the Abbey Labs Quickstart Repo
3. Have cloned the newly created repo into your own terminal to work with
   {% endhint %}

## Step 2: Configure Permissions for Abbey

{% hint style="info" %}
For this step, you'll be working in

* Abbey App
* Github
  {% endhint %}

### Create an Abbey Token

1. Go to Abbey API Tokens via **Settings -> API Tokens** in the Abbey app
2. Click on the **+ New API Token**
3. Enter a name for your new API token or leave as is
4. Configure the **Expires At** field or leave it blank to have the token never expire
5. Click **Create** to make the new key
6. Copy the key - you'll need this for the next step!

<figure><img src="/files/p9g4isF6G76fEobS1vqC" alt=""><figcaption></figcaption></figure>

### Add your Abbey token to Github

1. Navigate to the repo you created in your own GitHub account
2. Go to the **Settings** tab
3. Select **Secrets and Variables -> Actions** on the left side
4. Create a new **Repository Secret**&#x20;

<figure><img src="/files/svFZDvO535d8YmFTMeTl" alt=""><figcaption></figcaption></figure>

5. For the **Name,** enter in `ABBEY_TOKEN`
6. For the **Secret,** enter in the value of the Abbey API token you created in the last step.
   1. :warning: Make sure you don't have any newlines or spaces when copy/pasting this
7. Click **Add Secret** to finish adding the repository secret

<details>

<summary>What should it look like?</summary>

![](/files/kbDsZTHLunZOznjMX7CV)

</details>

### Update Repo Permissions

Abbey needs a few permissions to operate in your GitHub repo.

1. Go to the **Settings** tab of the same repo you added the API token
2. Select **Actions -> General** on the left side
3. Scroll to the **Workflow Permissions** section
4. Select the **Read and write permissions** button
5. Click on **Save** in the **Workflow Permissions** section

<figure><img src="/files/MIEbqrlEX1voKFqqNP34" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
&#x20;Great! Now you've allowed Abbey to interact with your terraform repository.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.abbey.io/build-a-grant-kit/connect-a-repo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
