Documentation
⌘K
Version Control System (VCS) Providers
Version Control System (VCS) providers allow you to connect your InfraDots workspaces to your source code repositories.
What are VCS Providers?
VCS providers in InfraDots Platform enable you to:
- Connect workspaces to git repositories containing IaC configurations
- Automatically trigger runs when changes are pushed to your repository
- Track which code changes triggered which infrastructure changes
- Enable GitOps workflows for your infrastructure
Supported VCS Providers
InfraDots currently supports the following VCS providers:
- GitHub: Connect to public and private repositories on GitHub.com
- GitHub Enterprise: Connect to repositories on your self-hosted GitHub Enterprise instance
- GitLab: Connect to public and private repositories on GitLab.com
- GitLab Enterprise/Community Edition: Connect to repositories on your self-hosted GitLab instance
Connecting a VCS Provider
GitHub
- Navigate to your organization's settings
- Select the "VCS Providers" tab
- Click "Add VCS Provider"
- Select "GitHub"
- On GitHub.com, register a new OAuth Application with the following information:
- Application Name: InfraDots (your-organization-name)
- Homepage URL: Your InfraDots platform URL
- Application description: Any description of your choice
- Authorization callback URL: The callback URL provided by InfraDots
- After registering the application, you'll be taken to the new application's page
- Enter the Client ID in the InfraDots form
- Generate a new client secret on GitHub and enter it in the InfraDots form
- Click "Connect and Continue"
- You will be redirected to GitHub to authorize the application
- After authorization, you'll be redirected back to InfraDots with the connection established
GitLab
- Navigate to your organization's settings
- Select the "VCS Providers" tab
- Click "Add VCS Provider"
- Select "GitLab"
- On GitLab.com, navigate to User Settings → Applications and register a new OAuth Application with the following information:
- Name: InfraDots (your-organization-name)
- Redirect URI: The callback URL provided by InfraDots
- Scopes: Only select "api"
- After clicking "Save application", you'll be taken to the new application's page
- Enter the Application ID and Secret in the InfraDots form
- Click "Connect and Continue"
- You will be redirected to GitLab to authorize the application
- After authorization, you'll be redirected back to InfraDots with the connection established
Managing VCS Connections
Viewing Connected Providers
- Navigate to your organization's settings
- Select the "VCS Providers" tab
- View the list of connected VCS providers
Removing a VCS Provider
- Navigate to your organization's settings
- Select the "VCS Providers" tab
- Find the VCS provider you want to remove
- Click the delete icon
- Confirm the deletion
Updating VCS Provider Settings
If you need to update your VCS provider settings:
- Remove the existing VCS provider connection
- Add a new VCS provider with the updated settings
VCS-Driven Workflow
Developer ──▶ Git Push ──▶ GitHub/GitLab
│
Webhook Event
│
▼
InfraDots Platform
│
┌───────────┴───────────┐
▼ ▼
Terraform Plan IDP Agent Review
│ │
└───────────┬───────────┘
▼
Apply (if approved)
Using VCS with Workspaces
Once you've connected a VCS provider, you can use it with your workspaces:
- When creating a new workspace, select "Version Control Workflow"
- Choose the VCS provider you want to use
- Select the repository and branch containing your Terraform configuration
- Configure any additional settings
- Create the workspace
The workspace will now be connected to your VCS repository. Any changes pushed to the specified branch will trigger a new run in the workspace.
💡 Tip
[!tip] For GitHub, you can use a GitHub App instead of an OAuth app for more granular repository access control.
Troubleshooting VCS Connections
If you encounter issues with your VCS connection:
- Ensure the OAuth application has the correct permissions
- Verify the callback URL is correctly configured
- Check that your access token hasn't expired
- Ensure your repository exists and is accessible to the OAuth application
- Verify that the specified branch exists in the repository
