2015-04-30 50 views
2

我想要做的是在负责git操作的CI管道中创建一个步骤。 假设外部用户提供了git URL,用户名和密码。我想有这样的事情:如何在不输入凭据的情况下从PowerShell克隆克隆?

function Get-GitClone{ 
    param([string]$URL, 
     [string]$username, 
     [string]$password 
    ) 

    # Create temp folder 
    cd C:\Temp 
    mkdir GitTemp 

    # Clone TFD Git repository 
    git clone $URL 
} 

什么我得到运行错误这个脚本,只是因为你是从PowerShell中运行这个它会要求提供信用凭证。 我试过git-credential-winstore.exe,但它仍然需要用户交互 Google既没有帮助,也没有找到有用的东西。

在此先感谢

+1

这可能有助于http://stackoverflow.com/questions/5343068/is-there-a-way-to-skip-password-typing-when-using-https-github –

+0

使用user:password @ repo表示法确实克隆。 – jessehouwing

回答

0

您使用ssh或https吗?

如果您使用ssh,您可以启动一个密钥代理(例如,pageant + make git use plink),您需要指示git使用plink作为ssh。下面是我用它来设置我的环境PowerShell脚本的片段

#first add putty to PATH environment variable: 
[System.Environment]::SetEnvironmentVariable("PATH",($env:Path + ";C:\Program Files (x86)\PuTTY\ ")) 

#now where.exe shld find plink too! 
[System.Environment]::SetEnvironmentVariable("GIT_SSH",(where.exe plink),"Machine") 

你需要推出选美加载私钥,您将无法使用密码保护的脚本由于这个原因 - 你可以使用一个deploy-key(没有写访问回购)

,如果你不使用ssh,由于防火墙的问题 - 你可能需要拿出别的东西

1

有无你尝试了$ username:$ password @ $ UR L·

+1

谢谢罗德里戈。它像一个魅力! – monkzen