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

# Overview

To start workspaces from your Enterprise Gitpod instance, you'll need to set up an SCM integration with GitHub, GitLab, Bitbucket, or Azure DevOps. This allows Gitpod to authenticate with your SCM provider, access your repositories and let users in your organization authenticate against your SCM provider.

Gitpod comes with integrations for [GitLab](/classic/admin/scm-integrations/gitlab), [GitHub](/classic/admin/scm-integrations/github), [Bitbucket](/classic/admin/scm-integrations/bitbucket) and [Azure DevOps](/classic/admin/scm-integrations/azure-devops) built-in. To configure your organization to use these integrations, follow the instructions in the respective documentation.

* [Azure DevOps](/classic/admin/scm-integrations/azure-devops)
* [Bitbucket](/classic/admin/scm-integrations/bitbucket)
* [Bitbucket Server](/classic/admin/scm-integrations/bitbucket-server)
* [GitHub](/classic/admin/scm-integrations/github)
* [GitLab](/classic/admin/scm-integrations/gitlab)

## FAQs

### How to get SCM API token from Gitpod's GitLab, GitHub or Bitbucket integration as an environment variable

Run `gp init` on your terminal or manually create a file called `.gitpod.yml`

1. Put the following line in your `.gitpod.yml`:

```yml .gitpod.yml theme={null}
image:
    file: .gitpod.Dockerfile
```

2. Create a file called `.gitpod.Dockerfile` and put the following content in it:

```dockerfile .gitpod.Dockerfile theme={null}
FROM gitpod/workspace-full

RUN file="$HOME/.bashrc.d/770-scm_token.sh" \
    && printf '%s\n' 'if [[ "${GITPOD_WORKSPACE_CONTEXT_URL:-}" == *gitlab* ]]; then : "gitlab"; else : "github"; fi; scm_name="$_"' > "${file}" \
    && printf 'export SCM_TOKEN="$(%s)"\n' "gp credential-helper get <<<host=\${scm_name}.com | sed -n 's/^password=//p'" >> "${file}"
```

3. [Validate your configuration changes](/classic/user/configure/workspaces#validate-your-gitpod-configuration) by running `gp validate` in your workspace.
4. [Apply your .gitpod.yml changes](/classic/user/configure/workspaces#apply-configuration-changes) by committing and restarting a new workspace.

Now you can use `$SCM_TOKEN` environment variable after you commit and create a new workspace, this variable will contain an API token based on the Git context (i.e. Gitlab/GitHub/Bitbucket)

### How to use a private GitHub email or custom email for Git commits

At the variables page under your user settings, create two variables:

* `GIT_COMMITTER_EMAIL`
* `GIT_AUTHOR_EMAIL`

and set the custom email address as the value and `*/*` as the scope.

Now all of your new workspaces should use them for Git commits. If you have a workspace running, you can restart it or run `eval "$(gp env -e)"` in it.
