如何在PowerShell中进行Git克隆而无需输入凭据?

3

我想要做的是在CI流水线中创建一个负责git操作的步骤。假设外部用户提供了git URL、用户名和密码,我想要得到这样的东西:

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,但仍需要用户交互。 谷歌也没有帮助,或者我只是找不到有用的信息。
提前致谢。

1
请参考以下链接:https://dev59.com/om435IYBdhLWcg3wkA5e - Vincent De Smet
使用user:password@repo的表示法来克隆indeed。 - jessehouwing
@mokzen,你找到解决方法了吗?我也遇到了同样的问题,无法避免输入凭据。 - vel
2个回答

2
你尝试过使用 $username:$password@$URL 吗?

0
你是使用ssh还是https?
如果您使用ssh,您可以启动一个密钥代理(例如pageant+使git使用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")

你需要启动Pageant来加载私钥,但是由于这个原因,你无法对脚本进行密码保护 - 你可以使用一个deploy-key(没有对仓库的写访问权限)

如果你不使用SSH,由于防火墙问题 - 你可能需要想出其他解决方案


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接