使用 PowerShell 设置 TFS 批准者

Posted

技术标签:

【中文标题】使用 PowerShell 设置 TFS 批准者【英文标题】:TFS set approver with PowerShell 【发布时间】:2018-01-25 16:43:39 【问题描述】:

我在 TFS 2018 中有一个发布定义。对于每个环境,我都可以在 GUI 中设置部署前批准者(AD 组)。我需要通过代码(最好是 PowerShell)来做到这一点。

有没有办法做到这一点?我没有找到任何方法如何通过 REST API 实现这一点。

【问题讨论】:

【参考方案1】:

您只需要使用create a release definition API,并在“preDeployApprovals”参数中添加approver。检查下面的示例

"preDeployApprovals": 
  "approvals": [
    
      "rank": 1,
      "isAutomated": true,
      "isNotificationOn": false,
      "approver": 
        "id": "4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
        "displayName": "Chuck Reinhart",
        "uniqueName": "Domain\\username",
        "url": "http://TFS2018:8080/tfs/DefaultCollection/_apis/Identities/4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
        "imageUrl": "http://TFS2018:8080/tfs/DefaultCollection/_api/_common/identityImage?id=4adb1680-0eac-6149-b5ee-fc8b4f6ca227"
      ,
        "id": 0
      
  ]
, 

【讨论】:

感谢您的回答!我在玩这个。它工作正常,但问题是“id”属性(也可能是其他属性)。我不知道从哪里得到它们。我没有找到任何获取它们的 API 方法。我的任务只是“添加帐户域\用户名以将定义 id 1 发布到所有环境”。 你不能只在这个api中使用Domain\usernameid是必需的。您可以创建发布定义并选择UI中经常使用的批准者,并使用Get a release definition api获取id并将其存储在本地。 这不是很灵活的解决方案。在有人想要设置不在列表中的人(例如运营团队的新员工)后,这样的脚本将停止工作。 如何通过Get a team's members API获取信息? @starianchen-MSFT 谢谢,这是要走的路。我仍然觉得发布的 API 有点麻烦。当您需要作为一个整体添加/删除发布定义时,它是完美的。有问题的是在较低级别上运行(将任务添加到环境,添加/删除批准者等)。

以上是关于使用 PowerShell 设置 TFS 批准者的主要内容,如果未能解决你的问题,请参考以下文章

错误:PowerShell 模块中的安装包验证码颁发者

触发器共同在oracle apex应用程序中工作

Git-TFS - 如何在拉取请求被批准之前确保分支是最新的?

PowerShell 和 TFS |使用本地路径与使用服务器路径的 PowerShell ISE 从 TFS 获取更改集列表

Azure Devops - 当我需要审阅者时批准自己的 PR

需要在 TFS git 中由 B 组审查 A 组的拉取请求吗?