Крейсер прав, таких нет Предопределенные переменные в TFS, вы можете получить необходимую информацию с помощью REST API , а затем установить соответствующие переменные с помощью Команды ведения журнала .
- Создание сценария PowerShell для установки переменных (см. Ниже).
Например, вы также можете использовать токен OAuth для доступа к REST API ), затем зафиксировать и отправить скрипт в TFS.
- Добавьте задачу
PowerShell
до задачи "Post to Slack
" в вашем
определение для запуска сценария PS
- Используйте переменные
$(commitID)
, $(CommitMessage)
и
$(commitUrl)
в задании "Post to Slack
"
Примечание : Для Git это коммит, Для TFVC это changeset
Вы можете использовать приведенный ниже скрипт для установки переменных:
Param(
[string]$collectionurl = "http://server:8080/tfs/DefaultCollection",
[string]$repoid = "389e8215-1fb2-4fdc-bd04-ebc8a8a4410e",
[string]$user = "username",
[string]$token = "password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$searchCriteria = "$" + "top=1"
$baseUrl = "$collectionurl/_apis/git/repositories/$repoid/commits?$searchCriteria"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
#Retrieve values
$commitID = $response.value.commitID
$CommitMessage = $response.value.comment
$commitUrl = $response.value.remoteUrl
#Set variables
Write-Host "##vso[task.setvariable variable=commitID]$commitID"
Write-Host "##vso[task.setvariable variable=CommitMessage]$CommitMessage"
Write-Host "##vso[task.setvariable variable=commitUrl]$commitUrl"
UPDATE:
Вы можете использовать этот REST API для получения идентификатора хранилища:
GET http://server:8080/tfs/DefaultCollection/{ProjectName}/_apis/git/repositories