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

# Onboarding

> Get started with Tusk in a few clicks

Before you begin, make sure that you have these permissions:

<Tabs>
  <Tab title="GitHub">
    GitHub user permissions to manage external apps in your GitHub organization
  </Tab>

  <Tab title="GitLab">
    Maintainer or Owner role in your GitLab group while on the GitLab Premium or Ultimate plan (plans not required for GitLab Self-Managed)
  </Tab>
</Tabs>

## Creating an organization

<Steps>
  <Step title="Create an account">
    [Sign up to Tusk](https://app.usetusk.ai) with Google, GitHub, GitLab, or with email/password. If you create an account with your company's Google Workspace, Tusk will create an organization for your company.

    <img className="block" src="https://mintcdn.com/tusk/_Uii1CMSkJSFZKHp/images/tusk-login-screen-prod.png?fit=max&auto=format&n=_Uii1CMSkJSFZKHp&q=85&s=5f2c045772d7d9fbe543dfb88b6be56e" alt="Tusk login page with Google, GitHub, and GitLab auth options" width="3452" height="1892" data-path="images/tusk-login-screen-prod.png" />

    **Note:** Any team member who signs up via Google with your company's email domain, or with GitHub/GitLab *and* who are in your GitHub/GitLab organization will automatically be added to the Tusk company organization.
  </Step>

  <Step title="Enter profile details">
    Fill out your profile and organization details to personalize your experience.

    <img alt="Onboarding wizard step 1" className="block h-96" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-1.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=ab53cf367c3780de5d2891171313a9e6" width="1080" height="1336" data-path="images/onboarding-wizard-step-1.png" />
  </Step>

  <Step title="Choose use case">
    Select your primary use case. This directs you to your ideal onboarding flow.

    <img alt="Onboarding wizard step 1" className="block h-96" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-2.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=e0c9a98ab9f95fb3e9dd4a730eded357" width="1068" height="1472" data-path="images/onboarding-wizard-step-2.png" />
  </Step>
</Steps>

## Connect version control platform

<Tabs>
  <Tab title="Connect GitHub">
    <Steps>
      <Step title="Select GitHub in screen">
        Click the GitHub card in the onboarding wizard.

        <img alt="Onboarding wizard step 1" className="block h-96" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-3.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=d34ecbe2b6a6bc93e8c053fa6505b023" width="1086" height="1284" data-path="images/onboarding-wizard-step-3.png" />
      </Step>

      <Step title="Select organization">
        Click on your GitHub organization.

        <img alt="Onboarding Guide 3" classname="block" src="https://mintcdn.com/tusk/ZSRG9RyWtVo44p2P/images/onboarding-guide-3.png?fit=max&auto=format&n=ZSRG9RyWtVo44p2P&q=85&s=0420f34e6c822a14a43e391f6b7db25e" width="3452" height="1880" data-path="images/onboarding-guide-3.png" />
      </Step>

      <Step title="Configure repository access">
        Choose whether to authorize all repositories or only select repositories in your organization. Click **Install**.

        <img alt="Onboarding Guide 4" classname="block" src="https://mintcdn.com/tusk/ZSRG9RyWtVo44p2P/images/onboarding-guide-4.png?fit=max&auto=format&n=ZSRG9RyWtVo44p2P&q=85&s=820edef5367329a4912d403e5f6f7584" width="3454" height="1886" data-path="images/onboarding-guide-4.png" />
      </Step>

      <Step title="Analyze repos for eligiblity">
        Choose up to 3 repos in your organization you'd like Tusk to start the setup process for. Click **Continue**.

        <img alt="Onboarding Guide 4" className="block h-96" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-4.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=15623c0b067a447e06b1e4254135f670" width="1310" height="1634" data-path="images/onboarding-wizard-step-4.png" />
      </Step>

      <Step title="Complete onboarding wizard">
        You'll be directed to the Repos page where you'll see the selected repos be analyzed for their eligibility for unit test generation and API drift detection.

        <img alt="Onboarding Guide 4" className="block" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-repos-eligibility.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=f10546f8fb262e280eb4e085810d9343" width="3406" height="1678" data-path="images/onboarding-wizard-repos-eligibility.png" />
      </Step>
    </Steps>
  </Tab>

  <Tab title="Connect GitLab">
    <Steps>
      <Step title="Select GitLab in screen">
        Click the GitLab card in the onboarding wizard.

        <img alt="Onboarding wizard step 1" className="block h-96" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-3.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=d34ecbe2b6a6bc93e8c053fa6505b023" width="1086" height="1284" data-path="images/onboarding-wizard-step-3.png" />
      </Step>

      <Step title="Fill out GitLab Host">
        If you have a **self-hosted GitLab instance**, fill in the GitLab host URL as per the instructions. Otherwise, you can leave this field blank.

        <img alt="Onboarding wizard step 1" className="block" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-3a.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=b63f19478628946baf0b16af64982e11" width="1050" height="661" data-path="images/onboarding-wizard-step-3a.png" />
      </Step>

      <Step title="Create Access Token">
        Go to GitLab. In the left sidebar of your group or project, select Settings > Access tokens. Click **Add new token**.
        <Tip>We recommend using a Group Access Token so you don't need to repeat this setup when adding additional projects.</Tip>

        <img alt="Access Token page" classname="block" src="https://mintcdn.com/tusk/g9ARE0f2IAwondFu/images/gitlab-integration-4.png?fit=max&auto=format&n=g9ARE0f2IAwondFu&q=85&s=caed9ac57c755b5600a231f4aefa4d86" width="2934" height="1080" data-path="images/gitlab-integration-4.png" />

        Create a [Group Access Token](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html#create-a-group-access-token-using-ui) or [Project Access Token](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#create-a-project-access-token) with the details below:

        * **Name:** Tusk
        * **Expiry date:** Set as far in the future as possible (max 1 year)
        * **Role:** Developer
        * **Scopes:** api, read\_repository, write\_repository
      </Step>

      <Step title="Add access token to Tusk">
        After creating the access token, **copy the access token** immediately.
        <Warning>You will not be able to access the token again once you leave this page.</Warning>

        <img alt="Copy access token" classname="block" src="https://mintcdn.com/tusk/g9ARE0f2IAwondFu/images/gitlab-integration-6.png?fit=max&auto=format&n=g9ARE0f2IAwondFu&q=85&s=f9a5eb2a37dfb165cff7a5b2d295edc8" width="2676" height="496" data-path="images/gitlab-integration-6.png" />

        Go back into the Tusk and paste the access token into the **Access Token** field.

        <img alt="Onboarding wizard step 1" className="block" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-3b.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=8c690fcae9e66e644238d32903689330" width="1050" height="442" data-path="images/onboarding-wizard-step-3b.png" />
      </Step>

      <Step title="Create a webhook">
        Return to the GitLab group or project and go to Settings > Webhooks in the left sidebar. Click **Add new webhook**.

        Create a [webhook in GitLab](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html) with the details below:

        * **URL:** `https://use-tusk.uc.r.appspot.com/api/webhook/gitlab`
        * **Secret token:** Copy the auto-generated secret token from Tusk's GitLab flow and paste it in this field
        * **Trigger:** `Push events` (all branches), `Comments`, `Issues events`, `Merge request events`, `Emoji events`

        <img alt="Create webhook page 2" classname="block" src="https://mintcdn.com/tusk/g9ARE0f2IAwondFu/images/gitlab-integration-10.png?fit=max&auto=format&n=g9ARE0f2IAwondFu&q=85&s=299b50f8d6e2750c47ba41163aad7e3e" width="2940" height="1780" data-path="images/gitlab-integration-10.png" />
      </Step>

      <Step title="Confirm webhook creation in Tusk">
        Return to Tusk and check the checkbox for "I have created a webhook with the above configuration". Click **Connect GitLab** to complete the integration.

        <img alt="Onboarding wizard step 1" className="block" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-3c.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=945bcc041185faf8a13dcfdea319dd5b" width="1050" height="704" data-path="images/onboarding-wizard-step-3c.png" />
      </Step>

      <Step title="Analyze projects for eligiblity">
        Choose up to 3 projects in your group you'd like Tusk to start the setup process for. Click **Continue**.

        <img alt="Onboarding Guide 4" className="block h-96" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-step-4.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=15623c0b067a447e06b1e4254135f670" width="1310" height="1634" data-path="images/onboarding-wizard-step-4.png" />
      </Step>

      <Step title="Complete onboarding wizard">
        You'll be directed to the Repos page where you'll see the selected repos be analyzed for their eligibility for unit test generation and API drift detection.

        <img alt="Onboarding Guide 4" className="block" src="https://mintcdn.com/tusk/OUCOE_dCrH5OmAaI/images/onboarding-wizard-repos-eligibility.png?fit=max&auto=format&n=OUCOE_dCrH5OmAaI&q=85&s=f10546f8fb262e280eb4e085810d9343" width="3406" height="1678" data-path="images/onboarding-wizard-repos-eligibility.png" />
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Connect project management platform (optional)

Tusk can use business context from tickets linked to your pull requests to generate more relevant unit tests and classify API deviations more accurately.

<img alt="Integrations page" classname="block" src="https://mintcdn.com/tusk/ZSRG9RyWtVo44p2P/images/test-integrations-start.png?fit=max&auto=format&n=ZSRG9RyWtVo44p2P&q=85&s=7aa7eb30886f657c9d4cac0b89a1b2e1" width="3386" height="1847" data-path="images/test-integrations-start.png" />

<br />

<br />

<Tabs>
  <Tab title="Connect Linear">
    <Steps>
      <Step title="Connect Linear">
        Under the **Integrations** tab, find the Linear integration card under "Project management platform." Click **Connect**.
      </Step>

      <Step title="Grant access">
        You'll be redirected to the Linear app to grant Tusk access to your Linear workspace. Make sure to choose the correct workspace on the top left corner.

        <img alt="Authorize Linear" classname="block" src="https://mintcdn.com/tusk/g9ARE0f2IAwondFu/images/linear-integration-2.png?fit=max&auto=format&n=g9ARE0f2IAwondFu&q=85&s=f69dbff22db9d1ffba1bef89ceff30bd" width="3456" height="1984" data-path="images/linear-integration-2.png" />
      </Step>

      <Step title="Authorize Tusk">
        Click **Authorize Tusk** once you have confirmed that you're in the correct workspace.
      </Step>

      <Step title="Confirm connection">
        You'll then be redirected back to the Tusk app, where you should now see a status badge displaying "Connected" on the Linear integration card.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Connect Jira">
    <Steps>
      <Step title="Connect Jira">
        Under the **Integrations** tab, find the Jira integration card under "Project management platform." Click **Connect**.
      </Step>

      <Step title="Grant access">
        You'll be redirected to the Atlassian platform to grant Tusk access to your Jira site.

        <img className="block" src="https://mintcdn.com/tusk/g9ARE0f2IAwondFu/images/jira-integration-2.png?fit=max&auto=format&n=g9ARE0f2IAwondFu&q=85&s=1f65d03cba599ea3bc2cc9e915cc52a0" alt="Jira Integration 2" width="3456" height="1984" data-path="images/jira-integration-2.png" />
      </Step>

      <Step title="Choose site and authorize">
        Choose the correct Jira site under "Authorize for site" and click **Accept**.

        <img className="block h-96" src="https://mintcdn.com/tusk/g9ARE0f2IAwondFu/images/jira-integration-3.png?fit=max&auto=format&n=g9ARE0f2IAwondFu&q=85&s=ae4aed2876c983c9b91fce630885fb39" alt="Jira Integration 3" width="1392" height="1464" data-path="images/jira-integration-3.png" />
      </Step>

      <Step title="Confirm connection">
        You'll then be redirected back to the Tusk app, where you should now see a status badge displaying "Connected" on the Jira integration card.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Next Steps

* **API Drift Detection:** follow [this guide](/api-tests/setup-agent) to install the Tusk Drift CLI and SDK in two commands to record/replay traces as API tests.

* **Unit Test Generation:** follow [this guide](/automated-tests/test-execution-environments) to set up a test execution environment to generate and run unit tests in your PRs.

## FAQs

<AccordionGroup>
  <Accordion title="How do I connect additional repos to Tusk?">
    Make sure the additional repo(s) are in the same GitHub organization. If not, see the frequently asked question below this one.
    If you've already given Tusk access to the repo in GitHub, follow these steps:

    1. Go to [Connected Repos](https://app.usetusk.ai/app/settings/repos) in the Tusk web app

    2. Click **Sync connected repos**

    *If also enabling unit test generation on the new repo(s):*

    3. Go to the [Unit Tests](https://app.usetusk.ai/app/unit-tests/repos) page

    4. Click **Enable** to sync the additional repo(s)
  </Accordion>

  <Accordion title="I still don't see my other repos in the same organization. What's happening?">
    You most likely gave Tusk access to "Only select repositories" on initial GitHub connection.

    1. In GitHub itself, go to **Settings > GitHub Apps** for the current organization (github.com/organizations/your-org-name/settings/installations)

    2. Click **Configure** for "Use Tusk"

    3. Under Repository access, click **Select repositories**

    4. Select the additional repo(s) from the dropdown menu

    5. Click **Save**

    6. In Tusk, go to [Connected Repos](https://app.usetusk.ai/app/settings/repos) and click **Sync connected repos**

    *If also enabling unit test generation on the new repo(s):*

    7. Go to the [Unit Tests](https://app.usetusk.ai/app/unit-tests/repos) page

    8. Click **Enable** to sync the additional repo(s)
  </Accordion>

  <Accordion title="How do I connect another GitHub organization to Tusk?">
    1. In GitHub itself, go to **Settings > GitHub Apps** for the current organization (github.com/organizations/your-org-name/settings/installations)

    2. Click **Configure** for "Use Tusk"

    3. Click **Uninstall** in the "Danger zone"

    4. Return to the Tusk web app's settings

    5. Click **Connect** on the GitHub integration

    6. Select the new GitHub organization to authorize Tusk on
  </Accordion>

  <Accordion title="How do I disconnect my GitHub organization from Tusk?" defaultOpen={false}>
    1. In GitHub itself, go to **Settings > GitHub Apps** for the current organization (github.com/organizations/your-org-name/settings/installations)

    2. Click **Configure** for "Use Tusk"

    3. Click **Uninstall** in the "Danger zone"
  </Accordion>

  <Accordion title="How does Tusk run the tests it generates?" defaultOpen={false}>
    Tusk runs generated tests in isolated, ephemeral sandboxes using your test execution environment configuration. When you set up a test environment, Tusk creates a Docker-based sandbox specifically configured for your project's dependencies and testing framework.

    This allows Tusk to:

    * Verify that generated tests actually pass
    * Auto-iterate on test cases if errors are encountered
    * Show you test results before you incorporate them into your codebase

    See [Test Execution Environments](/automated-tests/test-execution-environments) for more details on how this works.
  </Accordion>
</AccordionGroup>
