# VCS Providers

Terrakube empowers collaboration between different teams in your organization. To achieve this, you can integrate Terrakube with your version control system (VCS) provider. Although Terrakube can be used with public Git repositories or with private Git repositories using SSH, connecting to your Terraform code through a VCS provider is the preferred method. This allows for a more streamlined and secure workflow, as well as easier management of access control and permissions.

Terrakube supports the following VCS providers:

{% content-ref url="/pages/-MlVoTRr4DmnDChq5xzl" %}
[Github](/2.20.0/user-guide/vcs-providers/github.com.md)
{% endcontent-ref %}

{% content-ref url="/pages/oFePzKkpOxOg5yBfaDkE" %}
[Github Enterprise](/2.20.0/user-guide/vcs-providers/github-enterprise.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MlVocmrlVXE4eFtFL7V" %}
[GitLab](/2.20.0/user-guide/vcs-providers/gitlab.com.md)
{% endcontent-ref %}

{% content-ref url="/pages/qfgnQcTydKSwav1BQ6xC" %}
[Gitlab EE and CE](/2.20.0/user-guide/vcs-providers/gitlab-ee-and-ce.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MlVoWlWo0UCSRWbDoT4" %}
[Bitbucket](/2.20.0/user-guide/vcs-providers/bitbucket.com.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MlVopbNgMX1xYiMTwtV" %}
[Azure DevOps](/2.20.0/user-guide/vcs-providers/azure-devops.md)
{% endcontent-ref %}

{% content-ref url="/pages/RfCzCMOu2v1dXg0o16Fw" %}
[SSH](/2.20.0/user-guide/vcs-providers/ssh.md)
{% endcontent-ref %}

### Webhooks <a href="#webhooks" id="webhooks"></a>

Terrakube uses webhooks to monitor new commits. This features is not available in SSH and Azure DevOps.

* When new commits are added to a branch, Terrakube workspaces based on that branch will automatically initiate a Terraform job. Terrakube will use the "Plan and apply" template by default, but you can specify a different Template during the Workspace creation.
* When you specify a directory in the Workspace. Terrakube will run the job only if a file changes in that directory


---

# 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.terrakube.io/2.20.0/user-guide/vcs-providers.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.
