克隆存储库 - 拒绝连接

时间:2018-02-08 20:20:01

标签: git powershell proxy azure-devops

我正在尝试从VSTS克隆存储库。 我试图使用PowerShell,并使用无法访问互联网的服务器,除了MyVSAccount.VisualStudio.com,以便我可以克隆存储库。

我能够#34;谈话"使用我的用户名和令牌访问我的VS帐户。我找回了所有存储库的列表,其中包含有关它们的信息。

然后,在尝试克隆它时,我收到错误。它只是说:连接拒绝MyVSAccount.VisualStudio.com。

使用fiddler,我只能在检索存储库列表时才能看到对我的VS帐户有http请求。克隆时,没有任何东西,所以不应该拒绝。另外,可以访问我帐户的该地址,因此克隆不会出现问题。

有没有人对此提出建议?我不明白为什么当有一个http请求来检索存储库列表时,一切都成功了,克隆它的时候就没有了,即使没有用于克隆的http请求。

是否需要在代码中插入代理设置?

克隆代码

git clone --mirror $url

使用令牌检索存储库列表的代码。

$url = $h.Get_Item("Url")
$username = $h.Get_Item("Username")
$password = $h.Get_Item("Password")

# Retrieve list of all repositories
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$headers = @{
    "Authorization" = ("Basic {0}" -f $base64AuthInfo)
    "Accept" = "application/json"
}

Add-Type -AssemblyName System.Web
$gitcred = ("{0}:{1}" -f  [System.Web.HttpUtility]::UrlEncode($username),$password)



$resp = Invoke-WebRequest -Headers $headers -Uri ("{0}/_apis/git/repositories?api-version=1.0" -f $url)
$json = convertFrom-JSON $resp.Content

错误:

  

致命:无法访问   ' MyVSAccount.visualstudio.com/MyProject/_git/Tests /';:不能   解析主持人:myvsaccount.visualstudio.com

我还尝试设置代理:

$proxyString = "http://proxy-s-app.mynet.net:80"
$proxyUri = new-object System.Uri($proxyString)
[System.Net.WebRequest]: : DefaultWebProxy = new-object System.Net.WebProxy ($proxyUri, $true)

1 个答案:

答案 0 :(得分:1)

由于您定义的变量$url应使用值https://MyVSAccount.VisualStudio.com。而VSTS中git repo的URL应采用格式https://MyVSAccount.visualstudio.com/projectname/_git/reponame

所以你应该使用VSTS repo url而不是VSTS帐户url来克隆镜像回购。用于克隆git repo的脚本:

$repourl=$url+"/projectname/_git/reponame"
git clone --mirror $repourl 2>&1|write-Host

此外,请确保配置git使用代理。为git配置代理的命令如下:

git config --global http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port

更多详细信息,您可以参考Configure Git to use a proxyGetting git to work with a proxy server