git - git在Visual Studio在线构建代理上获取标签

标签 git powershell azure-devops alm

我正在将Visual Studio Online与Git一起使用,并使用在我控制的VM上运行的构建代理设置了连续构建。

我添加了一个PowerShell脚本步骤,以在版本化的提交上构建msi文件,这意味着它们具有标签。问题在于,在第一步中同步存储库时,不会自动获取标签(Visual Studio)。

我以为我可以通过在PowerShell脚本的开头添加“git fetch --tags”来解决此问题,但这会打印此错误:

[error]bash: /dev/tty: No such device or address
[error]error: failed to execute prompt script (exit code 1)
[error]fatal: could not read Username for 'https://myaccount.visualstudio.com': Invalid argument

当我设置构建代理时,它创建了一个访问 token ,但是显然没有使用它,并提示输入用户名/密码。

有人知道如何解决这个问题吗?

最佳答案

Git Build Tools,它是VSTS的扩展,它提供了两个新的构建任务,以使用VSTS提供的OAuth token 重写远程URL(您需要在构建定义上启用它)。使用这种方法,您不需要构建代理上的特定服务用户帐户和凭据管理器。

  • 在VSTS扩展中安装Git Build Tools扩展。
  • 首先,您需要确保在构建定义选项集中有Allow Scripts to Access OAuth Token选项。
  • 然后,您可以添加Enable Git Remote Access任务以重写代理上Git存储库的远程,以允许访问Visual Studio Team Services上的上游存储库。
  • 运行要求访问远程存储库的操作后,请确保使用Restore Git Remote任务将远程数据库恢复为其默认值。

  • 您可以在here中找到完整的源代码wiki和更多文档。

    关于git - git在Visual Studio在线构建代理上获取标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34674290/

    相关文章:

    windows - 有没有办法在 Windows 10 中手动添加 Web 凭据?

    powershell - 在 PowerShell 中使用 IKnownFolderManager 接口(interface)

    Azure DevOps 动态发布管道创建

    linux - $(git ls-files -s | wc -l ) 和 $(git ls-files -s >out && wc -l <​​out) 之间的区别

    git - 在 `git filter-branch` 或 `git-rebase` 期间构建哈希查找表

    json - 使用 .gitignore 文件 stash appsettings.json 实际上并没有 stash 它

    windows - 无法在 git bash 中运行 'git' ... "bash:/mingw32/bin/git: Bad address"

    json - Power shell 脚本在 Windows powershell ISE 中运行良好,但在 Power shell 版本 5 中不起作用

    azure - 如何在 Azure DevOps Pipelines 中将变量读取为数字?

    Azure Devops 多阶段管道环境名称未正确设置