有什么方法可以在我的用户配置他们的任务时警告我这个特定任务需要使用SYSTEM_ACCESSTOKEN变量吗?我在我的任务中添加了一个检查:
if($env:SYSTEM_ENABLEACCESSTOKEN -eq $false){throw "OAuth Token Access not enabled! Set in the Agent Phase Options."}
没关系,但是用户不会发现它们已经开始发布,因为这个原因会失败。我没有在扩展清单中看到任何内容。
任务不需要显式访问OAuth令牌。任务始终是特权,可以通过VSTS Task SDK请求访问令牌。
要访问REST API,请使用:
$vssCredentials = Get-VstsVssCredentials
$collectionUrl = New-Object System.Uri((Get-VstsTaskVariable -Name 'System.TeamFoundationCollectionUri'
-Require))
Add-Type -LiteralPath "$PSScriptRoot\Microsoft.TeamFoundation.Core.WebApi.dll"
$projectHttpClient = New-Object Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient($collectionUrl,
$vssCredentials)
$projectHttpClient.GetProjects().Result
也可以看看:
如果需要,您还可以从返回的凭证中提取令牌。
仅当自定义脚本需要访问Build的用户令牌时,才需要访问OAuth令牌复选框。