Connecting to an external version control repository#
Data Science & AI Workbench supports the use of an external version control repository for user-created projects. Anaconda recommends connecting to this external version control repository at time of installation, however you are also able to migrate from one version control repository to another after installation is complete.
To provide permission granularity and maintain parity with your external version control repository, Workbench grants individual platform users access to individual repositories. To prevent default permissions being applied to all users within a group, users cannot belong to the given organization or group.
Platform users are prompted for their access token before they create their first project in Workbench. Anaconda recommends you advise users to create an ever-lasting token, to retain permanent access to their files from within Workbench. For more information about auth token permissions, see Configuring user access to external version control.
Tip
Anaconda recommends that you collect the following information before you begin:
If necessary, the fully qualified domain name (FQDN) of your version control server.
The organization, team, or group name associated with your service account.
The username of the administrator for the organization, team, or group.
The personal access token or password required to connect to your version control repository.
Supported external git versions#
Workbench supports integration with the following external repositories:
External repository |
Supported versions |
|---|---|
GitHub Enterprise Server |
2.15 through 3.14.1 |
GitHub Enterprise Cloud |
github.com |
Bitbucket Server/Data Center |
5.9.1 through 8.9.0 |
Bitbucket Cloud |
bitbucket.org |
GitLab Self-Managed |
10.4.2 through 17.4 |
GitLab Cloud |
gitlab.com |
GitHub#
Create a backup copy of the
anaconda-enterprise-anaconda-platform.ymlconfigmap.Open the
anaconda-enterprise-anaconda-platform.ymlconfigmap for editing.Locate the
git:section of the file.Uncomment (remove the
#from the start of lines in) theExample external repo configurationsection.Comment out (add a
#to the start of) the remaining lines in thegit:section.Configure the
Example external repo configurationvalues as follows:Attribute
Description
nameA descriptive name for the GitHub service your organization uses.
typeSpecifies the API version for accessing GitHub repositories.
GitHub uses
github-v3-apiurlThe URL of the version control server API.
For example:
https://your-domain.com/api/v3/credential-urlThe hostname of the GitHub server used to manage user credentials.
For example:
https://your-domain.com/api/path/organizationThe name of your GitHub organization.
usernameSpecifies a username for a GitHub account. This account must have Owner permissions for your GitHub organization.
auth-tokenThe personal access token associated with the
usernameGitHub account.Caution
The
urlandcredential-urlattributes must contain all lowercase characters.Example Github Enterprise Server configuration
git: ## Example external repo configuration name: github-server type: github-v3-api url: https://<FQDN>/api/v3/ http-timeout: 60 credential-url: https://<FQDN>/api/v3/ disable-tls-verification: false repository: '{owner}-{id}' organization: <GitHub_organization> username: <admin_username> auth-token: <username_token> # type: internal # http-timeout: 60 # repository: '{owner}-{id}' # The maximum size of a commit in the git repository max-commit-file-size: 50000000Save your changes.
Delete and restart system pods by running the following command:
# Replace <NAMESPACE> with your Workbench cluster namespace kubectl delete -n <NAMESPACE> --wait=false $(kubectl get pods -o name|grep ap-)
Once all pods have returned to a running state, users are prompted to add their personal access token after logging into the platform.
Create a backup copy of the
anaconda-enterprise-anaconda-platform.ymlconfigmap.Open the
anaconda-enterprise-anaconda-platform.ymlconfigmap for editing.Locate the
git:section of the file.Uncomment (remove the
#from the start of lines in) theExample external repo configurationsection.Comment out (add a
#to the start of) the remaining lines in thegit:section.Configure the
Example external repo configurationvalues as follows:Attribute
Description
nameA descriptive name for the GitHub service your organization uses.
typeSpecifies the API version for accessing GitHub repositories.
GitHub uses
github-v3-apiurlThe URL of the version control server API.
GitHub Enterprise Cloud uses
https://api.github.comcredential-urlThe hostname of the GitHub server used to manage user credentials.
GitHub Enterprise Cloud uses
github.comorganizationThe name of your GitHub organization.
usernameSpecifies a username for a GitHub account. This account must have Owner permissions for your GitHub organization.
auth-tokenThe personal access token associated with the
usernameGitHub account.Caution
The
urlandcredential-urlattributes must contain all lowercase characters.Example Github Enterprise Cloud configuration
git: ## Example external repo configuration name: github-cloud type: github-v3-api url: https://api.github.com/ http-timeout: 60 credential-url: https://github.com/<github-organization> repository: '{owner}-{id}' organization: <GitHub_organization> username: <admin_username> auth-token: <username_token> # type: internal # http-timeout: 60 # repository: '{owner}-{id}' # The maximum size of a commit in the git repository max-commit-file-size: 50000000Save your changes.
Restart system pods with the following command for changes to take effect:
# Replace <NAMESPACE> with your Workbench cluster namespace kubectl delete -n <NAMESPACE> --wait=false $(kubectl get pods -o name|grep ap-)
Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.
GitLab#
Create a backup copy of the
anaconda-enterprise-anaconda-platform.ymlconfigmap.Open the
anaconda-enterprise-anaconda-platform.ymlconfigmap for editing.Locate the
git:section of the file.Uncomment (remove the
#from the start of lines in) theExample external repo configurationsection.Comment out (add a
#to the start of) the remaining lines in thegit:section.Configure the
Example external repo configurationvalues as follows:Attribute
Description
nameA descriptive name for the GitLab service your organization uses.
typeSpecifies the API version for accessing GitLab repositories.
GitLab Enterprise (Self-Managed) uses
gitlab-v4-apiurlThe URL of the version control server API.
For example:
https://your-gitlab-domain.comcredential-urlThe hostname of the Bitbucket server used to manage user credentials.
For example:
https://your-gitlab-domain.comorganizationThe name of your GitLab group.
usernameSpecifies a username for a GitLab account. This account must have Administrator permissions for your GitLab Server.
auth-tokenThe personal access token associated with the
usernameGitLab Administrator account.Caution
The
urlandcredential-urlattributes must contain all lowercase characters.Example GitLab Enterprise (Self-Managed) configuration
git: ## Example external repo configuration name: gitlab-server type: gitlab-v4-api url: https://<FQDN>.com http-timeout: 60 credential-url: https://<FQDN>.com repository: '{owner}-{id}' organization: <GitLab_group> username: <admin_username> auth-token: <username_token> # type: internal # http-timeout: 60 # repository: '{owner}-{id}' # The maximum size of a commit in the git repository max-commit-file-size: 50000000Save your changes.
Restart system pods with the following command for changes to take effect:
# Replace <NAMESPACE> with your Workbench cluster namespace kubectl delete -n <NAMESPACE> --wait=false $(kubectl get pods -o name|grep ap-)
Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.
Note
Gitlab.com does not support versioning of archive downloads and app deployments. In other words, the latest revision will always be downloaded or deployed.
Create a backup copy of the
anaconda-enterprise-anaconda-platform.ymlconfigmap.Open the
anaconda-enterprise-anaconda-platform.ymlconfigmap for editing.Locate the
git:section of the file.Uncomment (remove the
#from the start of lines in) theExample external repo configurationsection.Comment out (add a
#to the start of) the remaining lines in thegit:section.Configure the
Example external repo configurationvalues as follows:Attribute
Description
nameA descriptive name for the GitLab service your organization uses.
typeSpecifies the API version for accessing GitLab repositories.
GitLab Enterprise (Cloud) uses
gitlab-v4-apiurlThe URL of the version control server API.
GitLab (Cloud) uses
https://gitlab.comcredential-urlThe hostname of the GitLab server used to manage user credentials.
GitLab (Cloud) uses
https://gitlab.comorganizationThe name of your GitLab group.
usernameSpecifies a username for a GitLab account. This account must have Administrator permissions for your GitLab instance.
auth-tokenThe personal access token associated with the
usernameGitLab Administrator account.Caution
The
urlandcredential-urlattributes must contain all lowercase characters.Example GitLab Enterprise Cloud configuration
git: ## Example external repo configuration name: gitlab-cloud type: gitlab-v4-api url: https://gitlab.com http-timeout: 60 credential-url: https://gitlab.com repository: '{owner}-{id}' organization: <GitLab_group> username: <admin_username> auth-token: <username_token> # type: internal # http-timeout: 60 # repository: '{owner}-{id}' # The maximum size of a commit in the git repository max-commit-file-size: 50000000Save your changes.
Restart system pods with the following command for changes to take effect:
# Replace <NAMESPACE> with your Workbench cluster namespace kubectl delete -n <NAMESPACE> --wait=false $(kubectl get pods -o name|grep ap-)
Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.
Bitbucket#
Caution
By default, Bitbucket uses master as its default Git branch. Workbench uses main as its default Git branch. You must update the system-wide default branch name in Bitbucket to target main. If you do not, your deployments will fail.
Create a backup copy of the
anaconda-enterprise-anaconda-platform.ymlconfigmap.Open the
anaconda-enterprise-anaconda-platform.ymlconfigmap for editing.Locate the
git:section of the file.Uncomment (remove the
#from the start of lines in) theExample external repo configurationsection.Comment out (add a
#to the start of) the remaining lines in thegit:section.Configure the
Example external repo configurationvalues as follows:Attribute
Description
nameA descriptive name for the Bitbucket Server/Data Center service your organization uses.
typeSpecifies the API version for accessing Bitbucket repositories.
Bitbucket Server/Data Center uses
bitbutcket-v1-apiurlThe URL of the version control server API.
For example:
https://your-bitbucket-server-domain:7990credential-urlThe hostname of the Bitbucket server used to manage user credentials.
For example:
https://your-bitbucket-server-domain:7990organizationThe name of your Bitbucket team.
usernameSpecifies a username for a Bitbucket account. This account must have Admin level permissions for your Bitbucket Server.
auth-tokenThe password associated with the
usernameBitbucket account.Caution
The
urlandcredential-urlattributes must contain all lowercase characters.Example Bitbucket Server/Data Center configuration
git: ## Example external repo configuration name: bitbucket-server type: bitbucket-v1-api url: https://<FQDN>:7990 http-timeout: 60 credential-url: https://<FQDN>:7990 repository: '{owner}-{id}' organization: <Bitbucket_team> username: <Bitbucket_admin> auth-token: <admin_password> # type: internal # http-timeout: 60 # repository: '{owner}-{id}' # The maximum size of a commit in the git repository max-commit-file-size: 50000000Save your changes.
Restart system pods with the following command for changes to take effect:
# Replace <NAMESPACE> with your Workbench cluster namespace kubectl delete -n <NAMESPACE> --wait=false $(kubectl get pods -o name|grep ap-)
Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.
Note
Bitbucket.com does not support versioning of archive downloads and app deployments. In other words, the latest revision will always be downloaded or deployed.
Create a backup copy of the
anaconda-enterprise-anaconda-platform.ymlconfigmap.Open the
anaconda-enterprise-anaconda-platform.ymlconfigmap for editing.Locate the
git:section of the file.Uncomment (remove the
#from the start of lines in) theExample external repo configurationsection.Comment out (add a
#to the start of) the remaining lines in thegit:section.Configure the
Example external repo configurationvalues as follows:Attribute
Description
nameA descriptive name for the Bitbucket Server/Data Center service your organization uses.
typeSpecifies the API version for accessing Bitbucket repositories.
Bitbucket cloud uses
bitbutcket-v2-apiurlThe URL of the version control server API.
Bitbucket cloud uses
https://api.bitbucket.orgcredential-urlThe hostname of the Bitbucket server used to manage user credentials.
Bitbucket cloud uses
https://bitbucket.orgorganizationThe name of your Bitbucket team.
usernameSpecifies a username for a Bitbucket account. This account must have Admin-level permissions for your Bitbucket Server.
auth-tokenThe password associated with the
usernameBitbucket account.Caution
The
urlandcredential-urlattributes must contain all lowercase characters.Example Bitbucket Cloud configuration
git: ## Example external repo configuration name: bitbucket-cloud type: bitbucket-v2-api url: https://api.bitbucket.org http-timeout: 60 credential-url: https://bitbucket.org/ repository: '{owner}-{id}' organization: <Bitbucket_team> username: <Bitbucket_admin> auth-token: <admin_password> # type: internal # http-timeout: 60 # repository: '{owner}-{id}' # The maximum size of a commit in the git repository max-commit-file-size: 50000000Save your changes.
Restart system pods with the following command for changes to take effect:
# Replace <NAMESPACE> with your Workbench cluster namespace kubectl delete -n <NAMESPACE> --wait=false $(kubectl get pods -o name|grep ap-)
Once all pods have returned to a running state, users should now be prompted to add their personal access token after logging into the platform.