GitHub: Как получить собранный релиз из Latest в программе на C#?
Собственно сабж: есть графическая оболочка, управляющая консольным приложением. Само консольное приложение регулярно обновляется. Каждый раз перепаковывать и выкладывать обновленную версию надоело. Есть ли вариант получения готового релиза из Latest с GitHub, учитывая что архивы в зависимости от версии имеют различные имена и разные теги?
Ответы (1 шт):
Автор решения: Stealch
→ Ссылка
Все оказалось до безобразия просто и давно расписано. Получение последнего релиза из GitHub разными методами (cURL, JS, GitHub CLI) https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#get-the-latest-release cURL:
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/OWNER/REPO/releases/latest
Код на C# будет выглядеть так:
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/vnd.github+json"));//ПРИНЯТЬ заголовок
string request = "https://api.github.com/repos/OWNER/REPO/releases/latest";
httpClient.DefaultRequestHeaders.Add("User-Agent", ".NET Foundation Repository Reporter"); // НЕОБХОДИМО, ИНАЧЕ ОШИБКА 403
var response = httpClient.GetStringAsync(request);
var jArray = await response;
var url = JObject.Parse(jArray).SelectToken("assets[0].browser_download_url").ToString();// ПАРСИМ URL