Yut*_*ang 23 git azure-devops azure-pipelines
[环境:团队服务,GIT,托管构建代理]
我想创建一个能够执行以下操作的Team Services构建定义:
执行脚本以根据仓库中的现有文件生成一些新文件
将生成的文件提交/推送回repo
我可以毫无问题地做#1.但我不知道我怎么做#2.
我发现我实际上能够从构建作业中运行git.exe.但我不确定如何将凭证传递给git.基于构建日志,它失败了,因为它试图从stdin获取用户名.
我尝试在构建定义中添加一个步骤,例如"git config --global user.name xxxx",但它仍然没有帮助.
这是一个受支持的场景吗?有什么建议?
谢谢!
编辑
我在构建脚本中尝试了以下方法:
git -c http.extraheader="AUTHORIZATION: bearer %SYSTEM_ACCESSTOKEN%" pull ...
它似乎适用于拉等等命令.但是当我试图推动更改时,我得到以下错误:
fatal: unable to access 'https://example.visualstudio.com/SampleTeam/_git/SampleRepo/': SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
思考?
Yut*_*ang 39
很抱歉在这里回答我自己的问题......
我刚从一些TFS专家那里得到了一些提示,他向我指出了这篇文章:https://www.visualstudio.com/en-us/docs/build/scripts/git-commands,它完美地解决了我的问题.
我想我应该分享它,以帮助那些可能遇到与我相同情况的人.
这里我引用了关键步骤(重新格式化了一下):
授予构建服务的版本控制权限
转到"版本控制"控制面板选项卡
团队服务:https:// {your-account} .visualstudio.com/DefaultCollection/{your-team-project}/_admin/_versioncontrol
内部部署:https:// {your-server}:8080/tfs/DefaultCollection/{your-team-project}/_admin/_versioncontrol
在" 版本控制"选项卡上,选择要在其中运行Git命令的存储库,然后选择" 项目集合构建服务"(account_name).授予您要运行的Git命令所需的权限.通常,您需要授予:
- 分支创建:允许
- 贡献:允许
- 阅读:继承允许
- 标签创建:继承允许
完成授予权限后,请务必单击" 保存更改".
启用构建定义以运行Git.exe
- 在变量选项卡上设置此变量:
system.prefergit = true- 在选项选项卡上,选择允许脚本访问OAuth令牌.
使用这些设置,无需安装Git Build Tools扩展或调整Credential Manager.您也不需要为OAuth令牌显式设置额外标头.我觉得这确实是一个非常巧妙的解决方案.:)
但真的很感谢Eddie和VonC的帮助!
Visual Studio Team Services(VSTS)现在具有内置功能来执行此操作:
SYSTEM_ACCESSTOKEN以访问git存储库:
git clone https://randomusername:${SYSTEM_ACCESSTOKEN}@instance.visualstudio.com/proj1/_git/repo参考:https : //github.com/Microsoft/vsts-tasks/issues/962
| 归档时间: | 
 | 
| 查看次数: | 13535 次 | 
| 最近记录: |