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.4.1 |
GitHub Enterprise Cloud |
github.com |
Bitbucket Server/Data Center |
5.9.1 through 7.21.0 |
Bitbucket Cloud |
bitbucket.org |
GitLab Self-Managed |
10.4.2 through 14.9.2 |
GitLab Cloud |
gitlab.com |
GitHub#
Create a backup copy of the
anaconda-enterprise-anaconda-platform.yml
configmap.Open the
anaconda-enterprise-anaconda-platform.yml
configmap for editing.Locate the
git:
section of the file.Uncomment (remove the
#
from the start of lines in) theExample external repo configuration
section.Comment out (add a
#
to the start of) the remaining lines in thegit:
section.Configure the
Example external repo configuration
values as follows:Attribute
Description
name
A descriptive name for the GitHub service your organization uses.
type
Specifies the API version for accessing GitHub repositories.
GitHub uses
github-v3-api
url
The URL of the version control server API.
For example:
https://your-domain.com/api/v3/
credential-url
The hostname of the GitHub server used to manage user credentials.
For example:
https://your-domain.com/api/path/
organization
The name of your GitHub organization.
username
Specifies a username for a GitHub account. This account must have Owner permissions for your GitHub organization.
auth-token
The personal access token associated with the
username
GitHub account.Caution
The
url
andcredential-url
attributes 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: 50000000
Save 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.yml
configmap.Open the
anaconda-enterprise-anaconda-platform.yml
configmap for editing.Locate the
git:
section of the file.Uncomment (remove the
#
from the start of lines in) theExample external repo configuration
section.Comment out (add a
#
to the start of) the remaining lines in thegit:
section.Configure the
Example external repo configuration
values as follows:Attribute
Description
name
A descriptive name for the GitHub service your organization uses.
type
Specifies the API version for accessing GitHub repositories.
GitHub uses
github-v3-api
url
The URL of the version control server API.
GitHub Enterprise Cloud uses
https://api.github.com
credential-url
The hostname of the GitHub server used to manage user credentials.
GitHub Enterprise Cloud uses
github.com
organization
The name of your GitHub organization.
username
Specifies a username for a GitHub account. This account must have Owner permissions for your GitHub organization.
auth-token
The personal access token associated with the
username
GitHub account.Caution
The
url
andcredential-url
attributes 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: 50000000
Save 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.yml
configmap.Open the
anaconda-enterprise-anaconda-platform.yml
configmap for editing.Locate the
git:
section of the file.Uncomment (remove the
#
from the start of lines in) theExample external repo configuration
section.Comment out (add a
#
to the start of) the remaining lines in thegit:
section.Configure the
Example external repo configuration
values as follows:Attribute
Description
name
A descriptive name for the GitLab service your organization uses.
type
Specifies the API version for accessing GitLab repositories.
GitLab Enterprise (Self-Managed) uses
gitlab-v4-api
url
The URL of the version control server API.
For example:
https://your-gitlab-domain.com
credential-url
The hostname of the Bitbucket server used to manage user credentials.
For example:
https://your-gitlab-domain.com
organization
The name of your GitLab group.
username
Specifies a username for a GitLab account. This account must have Administrator permissions for your GitLab Server.
auth-token
The personal access token associated with the
username
GitLab Administrator account.Caution
The
url
andcredential-url
attributes 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: 50000000
Save 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.yml
configmap.Open the
anaconda-enterprise-anaconda-platform.yml
configmap for editing.Locate the
git:
section of the file.Uncomment (remove the
#
from the start of lines in) theExample external repo configuration
section.Comment out (add a
#
to the start of) the remaining lines in thegit:
section.Configure the
Example external repo configuration
values as follows:Attribute
Description
name
A descriptive name for the GitLab service your organization uses.
type
Specifies the API version for accessing GitLab repositories.
GitLab Enterprise (Cloud) uses
gitlab-v4-api
url
The URL of the version control server API.
GitLab (Cloud) uses
https://gitlab.com
credential-url
The hostname of the GitLab server used to manage user credentials.
GitLab (Cloud) uses
https://gitlab.com
organization
The name of your GitLab group.
username
Specifies a username for a GitLab account. This account must have Administrator permissions for your GitLab instance.
auth-token
The personal access token associated with the
username
GitLab Administrator account.Caution
The
url
andcredential-url
attributes 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: 50000000
Save 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.yml
configmap.Open the
anaconda-enterprise-anaconda-platform.yml
configmap for editing.Locate the
git:
section of the file.Uncomment (remove the
#
from the start of lines in) theExample external repo configuration
section.Comment out (add a
#
to the start of) the remaining lines in thegit:
section.Configure the
Example external repo configuration
values as follows:Attribute
Description
name
A descriptive name for the Bitbucket Server/Data Center service your organization uses.
type
Specifies the API version for accessing Bitbucket repositories.
Bitbucket Server/Data Center uses
bitbutcket-v1-api
url
The URL of the version control server API.
For example:
https://your-bitbucket-server-domain:7990
credential-url
The hostname of the Bitbucket server used to manage user credentials.
For example:
https://your-bitbucket-server-domain:7990
organization
The name of your Bitbucket team.
username
Specifies a username for a Bitbucket account. This account must have Admin level permissions for your Bitbucket Server.
auth-token
The password associated with the
username
Bitbucket account.Caution
The
url
andcredential-url
attributes 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: 50000000
Save 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.yml
configmap.Open the
anaconda-enterprise-anaconda-platform.yml
configmap for editing.Locate the
git:
section of the file.Uncomment (remove the
#
from the start of lines in) theExample external repo configuration
section.Comment out (add a
#
to the start of) the remaining lines in thegit:
section.Configure the
Example external repo configuration
values as follows:Attribute
Description
name
A descriptive name for the Bitbucket Server/Data Center service your organization uses.
type
Specifies the API version for accessing Bitbucket repositories.
Bitbucket cloud uses
bitbutcket-v2-api
url
The URL of the version control server API.
Bitbucket cloud uses
https://api.bitbucket.org
credential-url
The hostname of the Bitbucket server used to manage user credentials.
Bitbucket cloud uses
https://bitbucket.org
organization
The name of your Bitbucket team.
username
Specifies a username for a Bitbucket account. This account must have Admin-level permissions for your Bitbucket Server.
auth-token
The password associated with the
username
Bitbucket account.Caution
The
url
andcredential-url
attributes 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: 50000000
Save 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.