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

# GitHub (Destination)

> How to get your GitHub organization slug and create a GitHub Personal Access Token.

The GitHub Destination credential type stores the Personal Access Token and configuration associated with the GitHub Organization or Enterprise to which you're migrating data with Warp.

To configure a GitHub Destination credential, you'll need:

* A Personal Access Token assigned the [correct scopes](get-your-github-credentials),
* The Organization Slug associated with the token,
* The days until the token expires, and
* The GitHub Enterprise Cloud product to which you're migrating.
  * If you're migrating to GitHub Enterprise Cloud with Data Residency, you'll be prompted to provide the tenant URL associated with your Enterprise.

### Configuration

<Info>
  Search for the 🛠️ emoji if you’d like to skim through this content while
  focusing on the steps you need to follow.
</Info>

### Get the Organization Slug

🛠️ Switch to the browser tab or window containing *Migration HQ.*

Make a note of the URL in your browser’s address bar. The URL contains the *organization slug*, which is the part of the URL that uniquely identifies the organization. It’s the part of the URL after `github.com/` and before `/Migration-HQ`:

<Frame caption="The browser's address bar, while on the *Migration HQ* page.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/09_Migration_HQ_browser_address_bar.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=1069dc4593129fa8303896f4b6068bd4" alt="Close-up of the browser's address bar, which displays the URL &#x22;github.com/Hypotheticorp01&#x22;." width="375" data-path="content/media/images/09_Migration_HQ_browser_address_bar.png" />
</Frame>

In this example, the URL for the organization’s page is:

```
github.com/Hypotheticorp01/Migration-HQ
```

The organization slug is the part that comes after `github.com/` and before `/Migration-HQ`, which means that this example’s organization slug is:

```
Hypotheticorp01
```

🛠️ Copy the organization slug from your browser’s address bar and paste it someplace safe — you’ll use it when you create the vault file.

### Generate a Personal Access Token for Your Account

🛠️ Switch to the browser tab or window containing *Migration HQ* and click on your profile picture (located near the top right of the page) so that this menu appears:

<Frame caption="The menu that appears when you click your profile picture.">
  <img src="https://mintcdn.com/packfiles/Jt8JnIIrXRnRUKLp/content/media/images/image%20(24)%20(1).png?fit=max&auto=format&n=Jt8JnIIrXRnRUKLp&q=85&s=7192a4193b5e684c877619d84c9dc503" alt="The menu that appears when you click your profile picture. The key item in the menu is the &#x22;Settings&#x22; item." width="173" data-path="content/media/images/image (24) (1).png" />
</Frame>

🛠️ Select **Settings** from the menu.

You will be taken to the *Settings* page for your GitHub account:

<Frame caption="GitHub account *Settings* page.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/10_GitHub_account_settings_page.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=d0219d00b720d7be354f0839dceb3bb2" alt="The &#x22;Settings&#x22; page for the user's GitHub account." width="3810" height="1902" data-path="content/media/images/10_GitHub_account_settings_page.png" />
</Frame>

🛠️ Scroll down the page until you see the **Developer settings** item appear in the list on the left side:

<Frame caption="GitHub account *Settings* page, scrolled farther down.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/11_Developer_setting_spage_scrolled_down.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=b5b4a5169fa29f83adfd04840e97b44c" alt="The &#x22;Settings&#x22; page for the user's GitHub account, scrolled farther down the page. The key item is the “Developer settings” item at the bottom of the left-side menu." width="3810" height="1902" data-path="content/media/images/11_Developer_setting_spage_scrolled_down.png" />
</Frame>

🛠️ Click on **Developer settings**.

This will take you to the *Developer Settings* page:

<Frame caption="The *Developer Settings* page.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/12a%20Developer_settings_1.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=ab0941e87316f31437d7d8e8b43e444e" alt="The &#x22;Developer Settings&#x22; page. The key item is the “Personal access tokens” item at the bottom of the left-side menu." width="3810" height="994" data-path="content/media/images/12a Developer_settings_1.png" />
</Frame>

🛠️ In the menu on the left side of the page, expand the **Personal access tokens** item:

<Frame caption="The *Personal access tokens* menu.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/13a%20Personal%20access%20tokens%20menu.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=d80450fc6e910820b3f0869f449869ae" alt="The Personal access tokens menu. The key item is the “Tokens (classic)” menu item." width="311" data-path="content/media/images/13a Personal access tokens menu.png" />
</Frame>

🛠️ Select **Tokens (classic)** from the menu.

You will end up at the *Personal access tokens (classic)* page:

<Frame caption="The *Personal access tokens (classic)* page.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/14a%20Personal%20access%20tokens%20page.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=39b4a1d13cc293d16f90d8433af4665f" alt="The Personal access tokens (classic) page. The key item is the “Generate new token” button." width="3810" height="654" data-path="content/media/images/14a Personal access tokens page.png" />
</Frame>

Towards the top right of the page, you’ll see the **Generate new token** button.

🛠️ Click the **Generate new token** button to make its menu appear:

<Frame caption="The *Generate new token* menu.">
  <img src="https://mintcdn.com/packfiles/2Rig8FdmZRZViVPt/content/media/images/image%20(70).png?fit=max&auto=format&n=2Rig8FdmZRZViVPt&q=85&s=31d93b5a9389f9688a64262b6c073ca9" alt="The Generate new token button's menu. The key item is the “Generate new token (classic)” menu item." width="375" data-path="content/media/images/image (70).png" />
</Frame>

🛠️ ...then select **Generate new token (classic)** from the menu.

You will arrive at the *New personal access token (classic)* page, where you’ll need to provide enough information to create a new personal access token:

<Frame caption="The *New personal access token (classic)* page.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/15_New_personal_access_token_form%20(1).png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=10b7df1ac5094e83394b504fe1b6f610" alt="The “New personal access token (classic)” page." width="3810" height="1902" data-path="content/media/images/15_New_personal_access_token_form (1).png" />
</Frame>

🛠️ Enter a name or some other text to help you identify the token in the **Note** field. To make it easier to identify, we suggest you include “Warp” in the name:

<Frame caption="The *Note* field and *Expiration* drop-down menu.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/16a%20Note%20and%20expiration.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=2e3df1a472e4cceec4eb97369ec404ee" alt="The “Note” field and “Expiration” drop-down menu. The “Note” field contains the text “Warp migration 1” and the “Expiration” drop-down menu has “30 days” selected." width="375" data-path="content/media/images/16a Note and expiration.png" />
</Frame>

<Info>
  For the purposes of this Quickstart, we’ll leave the **Expiration** field at
  the default value of 30 days.
</Info>

🛠️ Under **Select scopes**, check the following boxes. Checking these boxes will automatically check their sub-boxes:

* **repo**
* **workflow**
* **write:packages**
* **delete:packages**
* **admin:org**

<Frame caption="The first set of checkboxes.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/17_scopes_1.png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=66c49e6e1ded22eadf284536b602ac26" alt="The first section of the checkboxes on the “New personal access token (classic)” page, with the “repo”, “workflow”, “write:packages”, “delete:packages”, and “admin:org” checkboxes checked." width="2596" height="1578" data-path="content/media/images/17_scopes_1.png" />
</Frame>

🛠️ Then scroll down the page and check these boxes. Once again, checking these boxes will automatically check their sub-boxes:

* **admin:repo\_hook**
* **admin:org\_hook**
* **delete\_repo**

<Frame caption="The next set of checkboxes.">
  <img src="https://mintcdn.com/packfiles/l0V83cTRF3ti5K9q/content/media/images/image%20(112).png?fit=max&auto=format&n=l0V83cTRF3ti5K9q&q=85&s=eb49f490c7f1bc76c4e59378ef41d214" alt="The next section of the checkboxes on the “New personal access token (classic)” page, with the “admin:repo_hook”, “admin:org_hook”, and “delete_repo” checkboxes checked." width="2620" height="1380" data-path="content/media/images/image (112).png" />
</Frame>

Feel free to use the checklist below to double-check that you’ve checked all the necessary checkboxes. It’s important to make sure you’ve checked all of them!

* [ ] **repo**
* [ ] **workflow**
* [ ] **write:packages**
* [ ] **delete:packages**
* [ ] **admin:org**
* [ ] **admin:repo\_hook**
* [ ] **admin:org\_hook**
* [ ] **delete\_repo**

🛠️ Scroll to the bottom of the page and click the **Generate token** button:

<Frame>
  <img src="https://mintcdn.com/packfiles/2Rig8FdmZRZViVPt/content/media/images/image%20(75).png?fit=max&auto=format&n=2Rig8FdmZRZViVPt&q=85&s=a95a4f3bd9a455bb30438515c1b43171" alt="The &#x22;Generate token&#x22; button." width="162" data-path="content/media/images/image (75).png" />
</Frame>

You should now see this page, which will display the personal access token you just created:

<Frame caption="The *Personal access tokens (classic)* page, with the newly-created Personal Access Token.">
  <img src="https://mintcdn.com/packfiles/2Rig8FdmZRZViVPt/content/media/images/image%20(76).png?fit=max&auto=format&n=2Rig8FdmZRZViVPt&q=85&s=dffd7f8a8c67e0e00069b97839a9e4a5" alt="The Personal access tokens (classic) page, with the newly-created Personal Access Token." width="3800" height="1011" data-path="content/media/images/image (76).png" />
</Frame>

🛠️ Copy the token and **save it in a safe place** — preferably a password manager.

<Warning>
  This will be the only time that this Personal Access Token will be presented to you.

  Make sure you’ve copied it someplace safe before clicking the **Close** button!
</Warning>

<Info>
  Depending on your GitHub organization settings, you may also need to authorize your personal access token you issued for your Vault with SSO as well.

  Visit [https://github.com/settings/tokens](https://github.com/settings/tokens) and examine the `Configure SSO`dropdown menu adjacent to your personal access token.

  <details>
    <summary>View screenshot</summary>

    <Frame caption="Personal Access Token SSO Config Menu">
      <img src="https://mintcdn.com/packfiles/2Rig8FdmZRZViVPt/content/media/images/packfiles_pat_sso.png?fit=max&auto=format&n=2Rig8FdmZRZViVPt&q=85&s=d9e15c60f864e40196acadb989cc09b5" alt="" width="2152" height="890" data-path="content/media/images/packfiles_pat_sso.png" />
    </Frame>
  </details>

  If you receive an error like the following`Resource protected by organization SAML enforcement. You must grant your OAuth token access to this organization.` in the terminal or in a runner log, then review your Personal Access Token SSO authorizations as seen above.
</Info>
