Key Concepts
Provider
A connection to a Git hosting service (GitHub, GitLab, or Bitbucket) with authentication credentials.
Access Token
A personal access token or app password used to authenticate API requests and Git operations.
Default Provider
The provider automatically selected when creating new pipeline projects.
Organization
Optional organization or workspace scope for accessing organization-level repositories.
Required Permissions
| Action | Permission |
|---|---|
| View providers | iam:project:cicd:providers:read |
| Create providers | iam:project:cicd:providers:write |
| Edit providers | iam:project:cicd:providers:write |
| Test connection | iam:project:cicd:providers:write |
| Delete providers | iam:project:cicd:providers:delete |
Supported Providers
| Provider | Token Type | Organization Field |
|---|---|---|
| GitHub | Personal Access Token (Classic or Fine-grained) | Organization |
| GitLab | Personal Access Token | Group/Organization |
| Bitbucket | App Password | Workspace |
How to Add a Provider
Enter Provider Name
Give the provider a descriptive name (e.g., “Production GitHub”, “Team GitLab”).
Configure Organization (Optional)
Enter the organization, group, or workspace name to scope repository access.
Token Requirements
GitHub
Create a Personal Access Token at GitHub → Settings → Developer settings → Personal access tokens. Required Scopes (Classic Token):repo- Full control of private repositoriesadmin:repo_hook- Full control of repository hooks (for webhooks)read:org- Read organization membership (if using organization)
- Repository access: All repositories or specific repositories
- Permissions: Contents (Read and write), Webhooks (Read and write), Metadata (Read)
GitLab
Create a Personal Access Token at GitLab → User Settings → Access Tokens. Required Scopes:api- Full API accessread_repository- Read repository contentwrite_repository- Write to repository
Bitbucket
Create an App Password at Bitbucket → Personal settings → App passwords. Required Permissions:- Account: Read
- Repositories: Read, Write, Admin
- Webhooks: Read and write
How to Edit a Provider
Modify Settings
Update name, username, organization, or status. Leave access token blank to keep the existing token.
Provider type cannot be changed after creation. Create a new provider if you need a different type.
How to Test Connection
How to Set Default Provider
How to Delete a Provider
Provider-Specific Configuration
GitHub
| Field | Description |
|---|---|
| Username | Your GitHub username |
| Organization | Optional. GitHub organization name for accessing org repositories |
| Access Token | Personal access token with required scopes |
GitLab
| Field | Description |
|---|---|
| Username | Your GitLab username |
| Organization | Optional. GitLab group name for accessing group repositories |
| Access Token | Personal access token with api scope |
Bitbucket
| Field | Description |
|---|---|
| Username | Your Bitbucket username |
| Your Bitbucket email (used for authentication) | |
| Workspace | Bitbucket workspace slug for accessing workspace repositories |
| Access Token | App password with required permissions |
Troubleshooting
Connection test failed
Connection test failed
- Verify access token has required scopes/permissions
- Check if token has expired
- Ensure username is correct
- For Bitbucket, verify email is provided
- Check if organization/workspace name is spelled correctly
Cannot see repositories
Cannot see repositories
- Verify token has repository read permissions
- Check organization/workspace is set correctly
- Ensure token has access to the organization
- For private repos, verify token scope includes private repository access
Webhook not triggering pipelines
Webhook not triggering pipelines
- Verify provider is active
- Check webhook configuration in repository settings
- Ensure token has webhook permissions
- Verify the webhook URL is accessible from the internet
Cannot create provider
Cannot create provider
- Access token is required for new providers
- Verify you have write permission
- Check if provider name is unique
Clone/checkout failing in pipelines
Clone/checkout failing in pipelines
- Verify provider is active
- Check if token has write permission for the repository
- Ensure organization/workspace settings match repository location
- Token may have expired - update with new token
Cannot delete provider
Cannot delete provider
- Check if projects are using this provider
- Reassign projects to another provider first
- Verify you have delete permission
FAQ
Can I use the same token for multiple providers?
Can I use the same token for multiple providers?
Yes, but it’s not recommended. Use separate tokens for each provider configuration to enable independent rotation and access control.
How do I rotate access tokens?
How do I rotate access tokens?
Edit the provider and enter the new token in the Access Token field. The old token is replaced immediately. Update any external systems using the old token.
What happens if a token expires?
What happens if a token expires?
Pipelines using that provider will fail authentication. Update the provider with a new token as soon as possible.
Can I have multiple providers of the same type?
Can I have multiple providers of the same type?
Yes. You can have multiple GitHub, GitLab, or Bitbucket providers. This is useful for different organizations, teams, or access levels.
What's the difference between organization and personal repositories?
What's the difference between organization and personal repositories?
Personal repositories are under your username. Organization repositories are under an org/group/workspace. Set the organization field to access org-level repositories.
Are access tokens encrypted?
Are access tokens encrypted?
Yes. Access tokens are encrypted at rest in the database. They are decrypted only when needed for Git operations.
Can I use SSH keys instead of tokens?
Can I use SSH keys instead of tokens?
Currently, only personal access tokens and app passwords are supported. SSH key authentication is not available.
What if I change my Git username?
What if I change my Git username?
Edit the provider to update the username. Ensure the access token is still valid for the new username.
Best Practices
Security
- Use tokens with minimum required permissions
- Rotate tokens regularly (every 90 days recommended)
- Create separate tokens for each environment
- Never share tokens between team members
- Use fine-grained tokens when available (GitHub)
Organization
- Use descriptive provider names (include environment, team, or purpose)
- Set a default provider for consistent project creation
- Deactivate unused providers instead of deleting (preserves history)
- Document which provider each project uses
Token Management
- Store tokens in a password manager before adding to the platform
- Set calendar reminders for token rotation
- Test connection after token rotation
- Monitor provider status in the dashboard
Multi-Provider Setup
For organizations with multiple Git platforms:- Different access levels per environment
- Separate token rotation schedules
- Clear project organization by provider