Repository Configuration Guide
Step-by-step instructions to configure repository integration for GitHub, Azure DevOps, and GitLab
Overview
Repository configuration allows CloudCanvas to automatically create repositories, configure CI/CD pipelines, and manage infrastructure code. This guide covers configuration for each supported repository provider.
- GitHub repository setup and configuration
- Azure DevOps repository integration
- GitLab repository configuration
- Repository-specific settings and options
Prerequisites
- Cloud Profile: A configured cloud profile with repository integration (see Cloud Profile Setup Guide)
- PAT Token: Personal Access Token with required permissions (see PAT Token Setup Guide)
- Architecture: A designed architecture ready for deployment
- Organization Access: Permissions to create repositories in your organization/group
GitHub Repository Configuration
Step 1: Cloud Profile Setup
In your Cloud Profile's Repository Profile tab, configure the following:
Repository Type
Select: GitHub
Organization
Enter your GitHub organization name or username:
mycompanyExample: If your GitHub URL is github.com/mycompany, enter mycompany
Personal Access Token
Enter your GitHub PAT token (see PAT Token Setup Guide)
Step 2: Repository Integration Settings
Auto-create repositories for new architectures
When enabled, CloudCanvas automatically creates a new GitHub repository when you set up repository integration.
- • Repository naming:
{architecture-name}-{environment}-{timestamp} - • Created as private repository
- • Initialized with Terraform .gitignore
- • Default branch:
main
Auto-configure repository secrets from cloud profile
When enabled, CloudCanvas automatically configures GitHub repository secrets with your cloud provider credentials.
Secrets configured:
- •
AZURE_CLIENT_ID(for Azure) - •
AZURE_CLIENT_SECRET(for Azure) - •
AZURE_SUBSCRIPTION_ID(for Azure) - •
AZURE_TENANT_ID(for Azure) - •
AWS_ACCESS_KEY_ID(for AWS) - •
AWS_SECRET_ACCESS_KEY(for AWS) - •
GCP_SERVICE_ACCOUNT_KEY(for GCP)
Enable GitHub Actions workflows for Terraform
When enabled, CloudCanvas creates a GitHub Actions workflow file for automated Terraform deployment.
Workflow features:
- • Location:
.github/workflows/terraform.yml - • Terraform plan on pull requests
- • Terraform apply on merge to main branch
- • Cloud provider authentication
- • State management integration
Step 3: Using the Configuration
Once configured in your Cloud Profile, the repository integration is automatically used when:
- You select this cloud profile when setting up repository integration for an architecture
- You click "Auto Create Repository" in the architecture's repository tab
- CloudCanvas pushes Terraform code or workflows to the repository
Azure DevOps Repository Configuration
Step 1: Cloud Profile Setup
In your Cloud Profile's Repository Profile tab, configure the following:
Repository Type
Select: Azure DevOps
Organization
Enter only the organization name (not the full URL):
✅ Correct Format:
cloudslize❌ Incorrect Formats:
- •
https://dev.azure.com/cloudslize(includes full URL) - •
https://dev.azure.com/cloudslize/Cloud%20Canvas(includes project)
Note: The project name is specified separately when creating repositories. The organization field should only contain the organization identifier.
Personal Access Token
Enter your Azure DevOps PAT token (see PAT Token Setup Guide)
Step 2: Repository Integration Settings
Auto-create repositories for new architectures
When enabled, CloudCanvas automatically creates a new Azure DevOps repository when you set up repository integration.
- • Repository naming:
{architecture-name}-{environment}-{timestamp} - • Created in the specified project (from cloud profile or architecture settings)
- • Initialized with Terraform .gitignore
- • Default branch:
main
Auto-configure repository secrets from cloud profile
When enabled, CloudCanvas automatically configures Azure DevOps Variable Groups with your cloud provider credentials.
Variable Groups configured:
- • Variable group name:
cloudcanvas-{environment}-secrets - • Contains cloud provider credentials as variables
- • Linked to pipelines for secure access
- • Variables are marked as secret (encrypted)
Enable Azure Pipelines for Terraform
When enabled, CloudCanvas creates an Azure Pipelines YAML file for automated Terraform deployment.
Pipeline features:
- • Location:
azure-pipelines.yml - • Terraform plan on pull requests
- • Terraform apply on merge to main branch
- • Integration with Variable Groups for secrets
- • State management integration
Step 3: Project Configuration
When creating repositories in Azure DevOps, you need to specify the project:
💡 Note: The project name is typically specified when setting up repository integration for an architecture, not in the cloud profile. The cloud profile only stores the organization name.
GitLab Repository Configuration
Step 1: Cloud Profile Setup
In your Cloud Profile's Repository Profile tab, configure the following:
Repository Type
Select: GitLab
Organization
Enter your GitLab group or namespace:
mycompanyExample: If your GitLab URL is gitlab.com/mycompany, enter mycompany
Personal Access Token
Enter your GitLab PAT token (see PAT Token Setup Guide)
Step 2: Repository Integration Settings
Auto-create repositories for new architectures
When enabled, CloudCanvas automatically creates a new GitLab repository when you set up repository integration.
- • Repository naming:
{architecture-name}-{environment}-{timestamp} - • Created in the specified group/namespace
- • Initialized with Terraform .gitignore
- • Default branch:
main
Auto-configure repository secrets from cloud profile
When enabled, CloudCanvas automatically configures GitLab CI/CD variables with your cloud provider credentials.
CI/CD Variables configured:
- • Variables are marked as protected and masked
- • Available to all pipeline jobs
- • Contains cloud provider credentials
- • Encrypted at rest in GitLab
Enable GitLab CI/CD pipelines for Terraform
When enabled, CloudCanvas creates a GitLab CI/CD pipeline configuration for automated Terraform deployment.
Pipeline features:
- • Location:
.gitlab-ci.yml - • Terraform plan on merge requests
- • Terraform apply on merge to main branch
- • Integration with CI/CD variables for secrets
- • State management integration
Configuration Comparison
| Setting | GitHub | Azure DevOps | GitLab |
|---|---|---|---|
| Organization Format | Organization name or username | Organization name only (not URL) | Group/namespace name |
| Auto-create Repos | Creates in organization | Creates in specified project | Creates in group/namespace |
| Secrets Management | Repository Secrets | Variable Groups | CI/CD Variables |
| Pipeline File | .github/workflows/terraform.yml | azure-pipelines.yml | .gitlab-ci.yml |
| Workflow Trigger | Pull requests & main branch | Pull requests & main branch | Merge requests & main branch |
Best Practices
- Use separate cloud profiles per environment: Create distinct profiles for dev, staging, and production repositories
- Enable auto-configure secrets: Reduces manual configuration and ensures consistency
- Enable workflows/pipelines: Automates deployment and ensures infrastructure changes go through proper review
- Verify PAT permissions: Ensure your PAT token has all required permissions before enabling auto-create
- Test repository creation: Create a test architecture to verify repository creation works correctly
- Monitor repository access: Regularly review repository permissions and PAT token usage
Troubleshooting
Repository creation fails?
- • Verify PAT token has repository creation permissions
- • Check organization/group settings allow repository creation
- • Ensure PAT token hasn't expired
- • For Azure DevOps, verify organization name format (name only, not URL)
- • Check that you have sufficient quota/limits in your organization
Secrets not auto-configuring?
- • Verify PAT token has secrets/variables write permissions
- • Check repository/organization settings allow secret management
- • For Azure DevOps, ensure Variable Groups permissions are granted
- • For GitLab, verify CI/CD variables can be created in the project/group
Workflows/pipelines not creating?
- • Verify workflow/pipeline permissions are granted in PAT token
- • Check that CI/CD is enabled in your repository/organization
- • Ensure the token has write access to workflow files
- • For GitHub, verify Actions are enabled for the repository
- • For Azure DevOps, ensure Pipelines are enabled for the project
Azure DevOps organization format error?
- • Use only the organization name:
cloudslize - • Do NOT include:
https://dev.azure.com/ - • Do NOT include project name in organization field
- • Project name is specified separately when creating repositories
🚀 What's Next?
Your repository configuration is complete! Next steps: