如何在Azure Devops流水线中将代码提交回TFVC仓库并绕过OAuth认证
Azure DevOps流水线提交变更到TFVC仓库解决方案
1. 认证报错解决
你已经勾选了代理作业的「允许脚本访问OAuth令牌」选项,无需设置TF_BYPASS_BROWSER_LOGIN变量,直接在tf命令中传入流水线内置的OAuth令牌即可完成认证,不需要设备流或Kerberos认证。
需要在所有tf命令后追加以下参数:/collection:$(System.TeamFoundationCollectionUri) /loginType:OAuth /login:.,$(System.AccessToken)
2. No changes were matched by any arguments报错解决
这个报错有两个直接原因:
- 匹配规则错误:你使用的
.*.txt只会匹配文件名以.开头的txt文件,你创建的file_created_by_pipeline.txt不符合该规则 - 参数拼写错误:你写的
/resursive拼写有误,正确参数为/recursive
修正后的完整PowerShell任务代码
cd $(Pipeline.Workspace)/s # 匹配所有txt文件,递归添加,若需提交所有类型文件可将*.txt替换为. tf add *.txt /recursive /collection:$(System.TeamFoundationCollectionUri) /loginType:OAuth /login:.,$(System.AccessToken) # 提交变更 tf checkin *.txt /comment "added new files" /recursive /force /collection:$(System.TeamFoundationCollectionUri) /loginType:OAuth /login:.,$(System.AccessToken)
额外权限配置确认
如果执行后仍有权限报错,需要在Azure DevOps项目配置中补充权限:
- 进入项目设置 → 版本控制 → 选中对应的TFVC仓库
- 找到账号
Project Collection Build Service (你的组织名称)和[你的项目名称] Build Service ([你的组织名称]) - 为两个账号授予签入、修改、读取权限
内容的提问来源于stack exchange,提问作者GeralexGR
相关产品推荐
相关产品推荐

