> For the complete documentation index, see [llms.txt](https://docs.abbey.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.abbey.io/build-a-grant-kit/connect-a-repo.md).

# 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 %}
