public async Task <List <CruiseControlBuild> > GetBuilds(string projectName, int limit = Connector.MaxSnapshots) { var history = new List <CruiseControlBuild>(); var projectReportUrl = UrlHelper.GetAllBuildsUrl(this.baseUrl, projectName); using (var client = new WebClient()) { var html = client.DownloadString(projectReportUrl); var doc = new HtmlDocument(); doc.LoadHtml(html); var recentBuilds = doc.DocumentNode.SelectNodes("//table[@class='RecentBuildsPanel']/tr/td/a[@class]"); foreach (var b in recentBuilds.Take(limit)) { var authority = new Uri(projectReportUrl).GetLeftPart(System.UriPartial.Authority); var build = CruiseControlBuild.FromHtmlNode(b, authority); if (build == null) { continue; } history.Add(build); } } return(history); }
private static Status CreateStatus(CruiseControlBuild build) { var result = new CruiseControlStatus(); result.Building = false; result.BuildNumber = build.BuildNumber; result.Details = build.BuildLabel; result.Url = build.Url; result.Label = build.BuildLabel; result.Time = build.BuildTime; result.State = CcStatusToObservationStatus(build.Status); result.Name = build.Name; return(result); }