Кто-то знает способ получить проекты, которые не удалось построить, через REST API TFS?
Спрашивая "кто-нибудь знает X?" Может иметь действительный, но бесполезный ответ да/нет. Проведите некоторое исследование, попробуйте какой-нибудь код, и если у вас возникнут проблемы, вернитесь с минимальный воспроизводимый пример.
Вы можете загрузить журналы сборки с помощью Сборка - Получить журнал сборки Rest API. Вам нужно знать, какой идентификатор журнала является журналом сборки (если у вас мало задач, поэтому у каждой задачи есть журнал), чтобы вы могли проверить все доступные журналы с помощью Сборка — получение журналов сборки Rest API, затем выполнить их итерацию и проверить, что такое сборка. после того, как у вас есть журнал, вы можете искать и фильтровать ошибки.
Небольшой пример с PowerShell:
$collection = "http://tfs-server:8080/tfs/collection"
$project = "team-project"
$buildId = 10
#"api-version=4.1" is for TFS 2018, for other versions you need to change the number
$logsUrl = "$collection/$project/_apis/build/builds/$buildId/lgos?api-version=4.1"
$logs = Invoke-RestMethod -Uri $logsUrl -Method Get -UseDeafultCredntials -ContentType application/json
$buildLog = ""
ForEach($log in $logs.value)
{
$urlLog = "$collection/$project/_apis/build/builds/$buildId/logs/$($log.id)?api-version=4.1"
$logDetails = Invoke-RestMethod -Uri $urlLog -Method Get -UseDefaultCredntials -ContentType application/json
if ($logDetails.Contains("msbuild"))
{
$buildLog = $logDetails
break
}
}
# Now you have the logs in your hand and you can find in which projects have errors
Если вы хотите сделать это с помощью C#, вы можете вызвать Rest API с помощью HttpClient
:
using (HttpClient client = new HttpClient(new HttpClientHandler() { UseDeafultCredntials = true } )
{
string url = "the-url-from-above-powershell-script";
var method = new HttpMethod("GET");
var reqeust = new HttpRequestMessage(mehtod,url);
var result = await client.SendAsync(rqeuest);
}
// In this way you get the Rest API response, so you need to it once for the logs, iterate them to get each log and then filter the errors.
Быстрый поиск в Google выдал эта документация Майкрософт, что намекает на использование
resultFilter
изfailed
. В будущем вы можете взять SO тур и прочитать Как спросить.