Skip to main content
Pulumi logo Pulumi logo
  1. Docs
  2. Integrations
  3. Version Control

    Version Control

    Pulumi version control integrations connect Pulumi with your VCS provider, enabling infrastructure previews on pull requests and automated deployment workflows. Use a native integration for GitHub, GitLab, Azure DevOps, or Bitbucket, or connect any Git or Mercurial server with a Custom VCS integration.

    What every integration provides

    The native integrations — GitHub, GitLab, Bitbucket, and Azure DevOps — all provide the same core set of capabilities. Whichever provider you connect, you get:

    • Pull request previews and comments. When a pull request is opened or updated, Pulumi runs pulumi preview and posts the resource changes back as a comment, so reviewers see the infrastructure impact of a change without leaving the pull request. Comments can include a collapsible property-level diff.
    • Commit status checks. Pull request deployment results are reported back to the provider as commit statuses, each linking to the full deployment in Pulumi Cloud. On GitHub, push-to-deploy runs report a check as well; on the other providers, statuses are posted for pull request deployments only.
    • Push-to-deploy. Pushing to a configured branch runs pulumi up automatically. Path filters limit deployments to commits that touch matching files, and tag triggers let you deploy on release tags instead of every commit.
    • Review stacks. Each pull request gets a real, ephemeral environment, destroyed automatically when the pull request is merged or closed.
    • Repository and branch discovery. Pulumi lists your repositories and branches when you configure a stack’s deployment settings, instead of making you type identifiers by hand.
    • Managed credentials and webhooks. Pulumi registers the necessary webhooks or service hooks and handles token issuance and rotation for you.
    • New project creation. The New Project Wizard can create a repository or target an existing one, and organization templates can be sourced from your repositories.

    Custom VCS is the exception: it connects any Git or Mercurial server via manually configured webhooks and supports push-to-deploy only — no pull request comments, commit statuses, or review stacks.

    Provider pages document the details that differ, such as authentication methods, repository identifier formats, and injected environment variables.

    Multiple providers and accounts

    You can connect multiple VCS providers to a single Pulumi organization simultaneously, for example GitHub, GitLab, Azure DevOps, Bitbucket, and Custom VCS all at once. You can also connect multiple accounts of the same provider, such as two separate GitHub organizations or two GitLab groups.

    GitHub Enterprise Server is currently limited to one connection per Pulumi organization.

    Have questions?

    For questions or feedback, reach out on community Slack, GitHub, or contact support.

    The infrastructure as code platform for any cloud.