将代码推送回 Azure Devops 上的 TFVC 存储库

Posted

技术标签:

【中文标题】将代码推送回 Azure Devops 上的 TFVC 存储库【英文标题】:push code back to TFVC repository on Azure Devops 【发布时间】:2022-01-04 07:52:42 【问题描述】:

我正在尝试通过 Azure Devops 管道将代码推送回 TFVC,但我无法使其正常工作。我正在使用powershell 任务和tf 命令通过管道上发生的处理自动提交更改。此处理的输出应推送回工作的 TFVC 存储库。

首先,我在源文件夹的 Pipeline.Workspace 上创建一个示例文件。

命令行步骤。

echo "content 1 2 3" >  $(Pipeline.Workspace)/s/file_created_by_pipeline.txt
ls $(Pipeline.Workspace)/s

然后我尝试将更改提交回存储库。

Powershell 任务:

cd $(Pipeline.Workspace)/s
tf add .*.txt /resursive; 
tf checkin .*.txt /comment "added new files" /recursive  /force

问题:

No changes were matched by any arguments

在管道运行期间,我还必须提供基于 OAuth 2.0 设备流身份验证的代码

当我在管道上设置 TF_BYPASS_BROWSER_LOGIN=true 变量时,我得到

默认凭据不可用,因为没有 Kerberos 票证或 其他身份验证令牌可用。

我的目标是将更改推送回工作存储库,这是此管道的代码源。我还需要绕过 Oath 身份验证。我已经选择了允许脚本访问代理作业上的 OAuth 令牌。

【问题讨论】:

【参考方案1】:

你有tried my TFVC extensions吗?它们正是为此目的而制造的。

或者,您可以尝试使用管道的 OAuth 令牌签入:

& tf vc checkin .*.txt /comment "added new files" /recursive /force
   /loginType:OAuth /login:.,$env:SYSTEM_ACCESSTOKEN

确保配置管道以便它可以访问令牌:

如果需要,将访问令牌添加到 PowerShell 任务的环境变量部分:

【讨论】:

以上是关于将代码推送回 Azure Devops 上的 TFVC 存储库的主要内容,如果未能解决你的问题,请参考以下文章

作为 Azure DevOps 中发布管道的一部分,将更改推送到 GitHub 存储库

Azure Devops 管道通过生成验证触发两次

推送到 Testflight 时适用于 iOS 的 Azure DevOps 超时

Azure Visual Studio 2019 无法推送到 Azure DevOps Git

通过 Azure DevOps 将文件提交到远程 github 存储库

将文件上传到 azure devops