配置Jenkins CI build以使用托管在Azure DevOps中的TFVC

配置Jenkins CI build以使用托管在Azure DevOps中的TFVC,jenkins,azure-devops,continuous-integration,tfvc,Jenkins,Azure Devops,Continuous Integration,Tfvc,我们最近从本地TFS服务器迁移到Azure DevOps。我们的团队使用TFVC进行源代码控制,当Jenkins轮询新签入时,我得到以下异常: 致命:此服务器需要联合身份验证,但没有可用的机制来处理它。 com.microsoft.tfs.core.exceptions.tfsfederatedau异常:此服务器需要联合身份验证,但没有可用的机制来处理它 假设异常类名为tfsfederatedautheexception,我怀疑Azure期待某种OAuth集成,但Jenkins似乎不支持TFVC

我们最近从本地TFS服务器迁移到Azure DevOps。我们的团队使用TFVC进行源代码控制,当Jenkins轮询新签入时,我得到以下异常:

致命:此服务器需要联合身份验证,但没有可用的机制来处理它。 com.microsoft.tfs.core.exceptions.tfsfederatedau异常:此服务器需要联合身份验证,但没有可用的机制来处理它

假设异常类名为
tfsfederatedautheexception
,我怀疑Azure期待某种OAuth集成,但Jenkins似乎不支持TFVC

我所做的只是将Jenkins构建的集合URL更改为
https://dev.azure.com/MyCompany
项目路径保持不变,我对此进行了验证,因为我能够通过指向不同的集合URL并保持相同的项目路径,在Visual Studio中重新映射所有TFVC分支。Jenkins源代码管理配置的屏幕截图如下:

此Jenkins服务器是内部服务器,没有面向公众的IP地址或主机名

我如何允许Jenkins轮询Azure DevOps中托管的TFVC存储库以触发Jenkins中的CI构建?


为什么不使用Azure管道?目前这是一个更大的迁移工作,我只是想解决一个短期问题


使用Azure管道是我的长期目标,但我需要先弄清楚我们的自动化测试如何使用Oracle数据库,因为在使用Selenium执行每个测试之前,所有数据都会被删除。

Azure DevOps默认使用OAuth进行通信,因此输入用户名和密码将不起作用。相反,诀窍是生成一个个人访问令牌(我怀疑
code | Read+Write
作用域应该这样做)并将其传入


对于传入的用户名
,对于生成的个人访问令牌的密码。给令牌起个好名字,以便在收到电子邮件通知后知道哪个令牌即将过期。

在Azure DevOps中生成个人访问令牌。然后用“.”替换用户,用PAT替换密码。看看这是否有效
tf.exe
确实需要一个特殊的设置来传递OAuth令牌,但这与PAT不同,而且不容易获得一个;)。哦,等等!我给了PAT“完全访问”权限(不是我想要的),现在我至少通过了我发布的例外情况。@jessehouwing:我需要用个人访问令牌梳理Jenkins需要哪些权限,但如果你将评论作为答案发布,你会得到+1,我会将其标记为答案。谢谢成功了!我是否需要在Jenkins凭据/作业配置中存储/提供令牌而不是密码?是,将令牌放入密码字段。