Chr*_*eld 2 azure-devops azure-pipelines
我的构建脚本使用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
Run Code Online (Sandbox Code Playgroud)
我在Pipeline Variable docs中找到了解决方案:必须在YAML中声明该变量。
在所有工作/任务的管道级别:
variables:
system_accesstoken: $(System.AccessToken)
jobs:
job: ...
Run Code Online (Sandbox Code Playgroud)
或在脚本/任务级别,例如PowerShell:
- powershell: ./build.ps1
env:
system_accesstoken: $(System.AccessToken)
Run Code Online (Sandbox Code Playgroud)
这对我有用。
- 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!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1784 次 |
| 最近记录: |