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);
        }
Пример #5
0
        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}");
 }