public async Task <ActionResult> Builds([FromServices] GiteeHttpClient client, [FromQuery] string userName = "******", [FromQuery] string projName = "bootstrapadmin", [FromQuery] string branchName = "master", [FromQuery] string label = "custom badge", [FromQuery] string color = "orange") { var ret = await GetJsonAsync(() => client.HttpClient.GetAsJsonAsync <AppveyorBuildResult>($"https://ci.appveyor.com/api/projects/{userName}/{projName}/branch/{branchName}", null, new CancellationTokenSource(10000).Token), content => { return(content == null ? "unknown" : content.Build.Version); }); return(new JsonResult(new { schemaVersion = 1, label, message = ret, color })); }
public async Task <ActionResult> Releases([FromServices] GiteeHttpClient client, [FromQuery] string userName = "******", [FromQuery] string repoName = "BootstrapAdmin", [FromQuery] string label = "custom badge", [FromQuery] string color = "orange") { var ret = await GetJsonAsync(() => client.HttpClient.GetStringAsync($"https://gitee.com/{userName}/{repoName}/releases"), content => { var regex = Regex.Match(content, $"<a href=\"/{userName}/{repoName}/releases/([^\\s]+)\" target=\"_blank\">", RegexOptions.IgnoreCase); return(string.IsNullOrEmpty(content) ? "unknown" : regex.Groups[1].Value); }); return(new JsonResult(new { schemaVersion = 1, label, message = ret, color })); }
public async Task <ActionResult> Pulls([FromServices] GiteeHttpClient client, [FromQuery] string userName = "******", [FromQuery] string repoName = "BootstrapAdmin", [FromQuery] string label = "custom badge", [FromQuery] string color = "orange") { var ret = await GetJsonAsync(() => client.HttpClient.GetStringAsync($"https://gitee.com/{userName}/{repoName}/pulls"), content => { var regex = Regex.Matches(content, "<div class='ui mini circular label'>([\\d]+)</div>", RegexOptions.IgnoreCase); var labels = new string[] { "open", "merged", "closed" }; var result = string.IsNullOrEmpty(content) ? new string[] { "unknown" } : regex.Select((m, i) => $"{labels[i]} {m.Groups[1].Value}"); return(string.Join(" ", result)); }); return(new JsonResult(new { schemaVersion = 1, label, message = ret, color })); }
public async Task <bool> Healths([FromServices] GiteeHttpClient httpClient, [FromServices] IConfiguration config, [FromBody] string message) { var ret = false; var url = config.GetValue("HealthsCloudUrl", ""); if (!string.IsNullOrEmpty(url)) { try { await httpClient.HttpClient.PostAsJsonAsync(url, message); ret = true; } catch { } } return(ret); }
public async Task <ActionResult> Issues([FromServices] GiteeHttpClient client, [FromQuery] string?userName = "******", [FromQuery] string?repoName = "BootstrapAdmin", [FromQuery] string?label = "custom badge", [FromQuery] string?color = "orange") { var ret = await GetJsonAsync($"https://gitee.com/{userName}/{repoName}/issues", url => client.HttpClient.GetStringAsync(url), content => { var regex = Regex.Matches(content, "<div class='ui mini circular label'>([\\d]+)</div>", RegexOptions.IgnoreCase); var labels = new string[] { "open", "progressing", "closed", "rejected" }; var result = string.IsNullOrEmpty(content) ? new string[] { "unknown" } : regex.Select((m, i) => $"{labels[i]} {m.Groups[1].Value}"); return(string.Join(" ", result)); }); color = ret.StartsWith("open 0 progressing 0", StringComparison.OrdinalIgnoreCase) ? "success" : color; return(new JsonResult(new { schemaVersion = 1, label, message = ret, color })); }
/// <summary> /// 构造函数 /// </summary> /// <param name="client"></param> /// <param name="accessor"></param> public GiteeHttpHealthCheck(GiteeHttpClient client, IHttpContextAccessor accessor) { _client = client; _client.HttpClient.BaseAddress = new Uri($"{accessor.HttpContext.Request.Scheme}://{accessor.HttpContext.Request.Host}{accessor.HttpContext.Request.PathBase}"); }