Allow other artifact repositories (bitbucket.com, gitlab.com, private gitlab)
We, like many other organizations, use private git repositories. This can have many reasons, such as single sign-on etc. Our repository of choice is a self-hosted gitlab-instance (running in Azure, btw), fully integrated with ADFS for security. Good stuff.
It would be nice if the Artifact Repository integration was more generic, and not specific to GitHub. This would allow users to chose their hosting provider, it be a public solution (e.g. github.com, gitlab.com, bitbucket.com) or a private solution (e.g gitlab.example.com).
Most, if not all, git repository managers support the idea of a "deployment key", which is a ssh-key typically used to identify a third party application that needs to read a repository, such as the DevTest Labs service. It's a perfect fit, really :-)
So, the same functionality, but available for "all" accessible git repository. Easy enough :-)
Thanks for your feedback! As more further investigate, the DevTest Labs supports VSTS Git and GitHub today. I’ve added this into the backlog. Given different Git repo offers different client for Labs to use and connect to, it’d be helpful if you could share with us which one you want to support first, so that the Labs can support them one by one. Thanks!
This was added to the backlog in 2016. It's October 24, 2018 and it still appears that devtest labs limits the choice to https://github.com or VSTS. How is this still an issue in a modern devops chain?
I've been experimenting with using Azure to setup a devtest environment at our company but we use enterprise github and public github is a non-starter for us.
It only supports GitHub or VSTS, and what is more surprising, only private repos! Quite useless and inconvenient. Please implement a generic Git client with generic authentication/transport support using SSH/HTTPS.
Is there any progress on this?
Danny bird (ynnadb) commented
We use on premise bitbucket so like to see this supported ASAP
Also I would say it would be nice to be able to diagnose connectivity issues to GitHub repositories, I am currently having issues adding my public GitHub to our Azure DevTest labs.
I would like to reiterate that the question of "which server" is wrong, imho.
In this scenario, azure is simply a client needing to clone and pull a git repository. The same way that you use the same git client for any git server, azure should use a generic git client to clone/pull any server.
The azure implementation then needs a url to the remote git repo, and either a ssh-key (for a ssh-based url), or http-credentials (for an http-based url).
This will work with any repository, including github.
Easy to do, and obviously wanted.
Neil B commented
I also want to vote for bitbucket
In a sense, the question of which git repo to support is probably a wrong question :-). In principle, the DevTest Labs service should support the two main git-protocols (https and ssh), which together should support most repositories (GitHub, GitLab, Bitbucket, gogs, etc):
The ssh protocol has fairly universal support, using the concept of a "deployment key" (supported by GitHub, GitLab, Bitbucket and probably most others). To use this, the user would create a custom ssh-key, upload the public part to the git repository and the private part to DevTest Labs. DevTest Labs would then use this key for its git-operations, and the repo would provide access as appropriate.
The https protocol also has universal support, but only GitHub has an appropriate "deployment key" mechanism (they call it "personal access token"; for other repository managers you would have to provide your own username+password, which you really don't want).
Hence, two steps forward:
* First, support "any ssh-based git url" using a provided ssh private key ("deployment key")
* Next, support "any https-based git url" using a provided https-authentication ("personal access token"), and wait for the repository managers to support this
Solving only the first of these will enable all repositories. Solving the second will remove the need for a GitHub-specific solution.
Bitbucket would be in my opinion the best place to start.
GitLab would be the absolute preference. They have a public GitLab.com-offering (running in Azure, no less), but they also offer the software for on-prem installation. The on-premise and cloud based software is the same, and DevTest Labs should support both.
My preference would be for a ssh-based git-connection, as this allows the use of project specific deploy keys (instead of user specific keys, which give access to all repositories of a user).
The "Add Artifact Repository" blade on the Azure portal does not allow me to enter anything other than a GitHub or Visual Studio Online repository, as shown on http://imgur.com/vdNt5T8.
(The error message reads "Please enter a valid Git HTTPS clone URL from GitHub or Visual Studio Online. For example ...")