我的构建脚本使用SYSTEM_ACCESSTOKEN
环境变量。
在设计器版本定义中,我检查了允许脚本访问OAuth令牌,一切正常。
复制设计者生成的YAML定义后,我无法访问SYSTEM_ACCESSTOKEN
环境变量。
如何允许我的YAML版本访问OAuth令牌?
这是我的azure-pipelines.yaml:
queue:
name: Hosted VS2017
steps:
- checkout: self
lfs: true
persistCredentials: true
- powershell: ./build.ps1
答案 0 :(得分:2)
我在Pipeline Variable docs中找到了解决方案:必须在YAML中声明该变量。
在管道级别上用于所有作业/任务:
variables:
system_accesstoken: $(System.AccessToken)
jobs:
job: ...
或者在脚本/任务级别,例如PowerShell:
- powershell: ./build.ps1
env:
system_accesstoken: $(System.AccessToken)
答案 1 :(得分:0)
这对我有用。
- pwsh: |
$pat = "Bearer $env:SYSTEM_ACCESSTOKEN"
Write-Host "PAT is: $pat"
$getItemsUrl = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/git/repositories/$(Build.Repository.ID)/items?recursionLevel=Full&includeContentMetadata=true&api-version=6.0"
Write-Host "url: $getItemsUrl"
$data = Invoke-RestMethod -Uri "$getItemsUrl" -Headers @{Authorization = $pat}
Write-Host "Raw data returned from Get Items API call: $data"
Foreach ($i in $data.value)
{
Write-Host "Detailed data returned from Get Items API call: $i"
}
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: Power!