Как определить ключ хранения или дескриптор текущего пользователя - PullRequest
0 голосов
/ 24 октября 2019

Многие API Azure DevOps принимают ключ хранилища в качестве ввода при обращении к пользователю. Этот ключ хранения является уникальным идентификатором пользователя в организации, в которой вы работаете. Я не могу понять, как определить ключ хранилища для текущего пользователя.

Я знаю, что могу вызвать Get Profile API и указать Me в качестве идентификатора. , но это возвращает информацию о текущем пользователе в целом - не так, как это относится к конкретной организации. API List Users можно использовать для получения списка всех пользователей в организации, но я бы не стал искать в результатах, чтобы получить зарегистрированного пользователя. И API Get User требует дескриптора пользователя и, похоже, не позволяет мне указать Me для получения текущего пользователя. Так как же получить ключ хранения (или даже дескриптор) для текущего пользователя?

1 Ответ

0 голосов
/ 25 октября 2019

descriptor, который получает Get Profile API , он просто может представлять пользователя самостоятельно. Другими словами, это идентификатор, который будет обращаться к серверу dev.azure.com (не org, просто идентифицируемый сервером). Таким образом, descriptor, полученный здесь, не может использоваться для Org, поскольку не может быть идентифицирован в нем.

Также для Get User api и List User api , они все на уровне организации, что означает, что результатом запроса будет результат для всей организации. И мы не предложили функцию filter для остальных API Azure Devops.

Итак, если вы хотите filter, указав одного пользователя в URL-адресе API, к сожалению, извините, это не поддерживается при использовании оставшихся API Azure Devops. Вы должны следовать ограниченному формату URL, указанному в документе.


В качестве обходного пути, здесь вы можете использовать сценарий powershell для достижения фильтра.

Вы можете выполнить сценарий в конвейере devops Azure:

$url = 'https://vssps.dev.azure.com/{org}/_apis/graph/users?api-version=5.0-preview.1';
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Method Get
$results = $response.value | Where {$_.displayname -eq "{your account name}"} #|
Write-Host "results = $($results | ConvertTo-Json -Depth 100)"
Write-Host $results.desciptor

Или запустить его в Powershell ISE локально, что будет удобнее, чем в предыдущем:

enter image description here

Затем вы можете сохранить desciptor в одном параметре и использовать его в Ключах хранения - Get API .

...