public void GetProject(string baseUrl, string authToken, string ownerName, string projectName, Action <TravisCiBuildDefinition> getProjectComplete, Action <Exception> getProjectError) { WebClient webClient = new WebClient(); var travisUrl = GetUrl(baseUrl, ownerName, projectName); var projectUrl = new Uri(travisUrl); webClient.DownloadStringCompleted += (s, e) => { if (e.Error != null) { getProjectError(e.Error); return; } try { getProjectComplete(TravisCiBuildDefinition.FromJson(e.Result)); } catch (Exception ex) { getProjectError(ex); } }; AddTravisHeaders(webClient, authToken); webClient.DownloadStringAsync(projectUrl); }
private TravisCiBuildStatus GetBuildStatus(BuildDefinitionSetting buildDefinitionSetting) { var webClient = new WebClient(); var travisBuildDef = TravisCiBuildDefinition.FromIdString(buildDefinitionSetting.Id); var buildDefinitionUrl = "https://api.travis-ci.org/repositories/" + travisBuildDef.OwnerName + "/" + travisBuildDef.ProjectName + ".json"; try { var json = webClient.DownloadString(buildDefinitionUrl); var lastBuildId = GetJsonValue(json, "last_build_id"); var buildUrl = "https://api.travis-ci.org/builds/" + lastBuildId + ".json"; json = webClient.DownloadString(buildUrl); return(new TravisCiBuildStatus(travisBuildDef, json, buildDefinitionSetting)); } catch (WebException webException) { throw WebClientXml.ToServerUnavailableException(buildDefinitionUrl, webException); } }
public TravisCiBuildStatus(TravisCiBuildDefinition travisCiBuildDefinition, string jsonDoc, BuildDefinitionSetting buildDefinitionSetting) { try { BuildStatusEnum = ToBuildStatusEnum(TravisCiService.GetJsonValue(jsonDoc, "result")); BuildDefinitionId = buildDefinitionSetting.Id; Name = buildDefinitionSetting.Name; RequestedBy = TravisCiService.GetJsonValue(jsonDoc, "author_name"); StartedTime = TravisCiService.GetJsonDate(jsonDoc, "started_at"); Comment = TravisCiService.GetJsonValue(jsonDoc, "message"); FinishedTime = TravisCiService.GetJsonDate(jsonDoc, "finished_at"); Url = "http://travis-ci.org/" + travisCiBuildDefinition.OwnerName + "/" + travisCiBuildDefinition.ProjectName + "/builds/" + TravisCiService.GetJsonValue(jsonDoc, "id"); BuildId = TravisCiService.GetJsonValue(jsonDoc, "id"); } catch (Exception) { _log.Error("Error parsing the following json: " + jsonDoc); throw; } }
public TravisCiBuildStatus(TravisCiBuildDefinition travisCiBuildDefinition, string jsonDoc, BuildDefinitionSetting buildDefinitionSetting) { try { BuildStatusEnum = ToBuildStatusEnum(TravisCiService.GetJsonValue(jsonDoc, "result")); BuildDefinitionId = buildDefinitionSetting.Id; Name = buildDefinitionSetting.Name; RequestedBy = TravisCiService.GetJsonValue(jsonDoc, "author_name"); StartedTime = TravisCiService.GetJsonDate(jsonDoc, "started_at"); Comment = TravisCiService.GetJsonValue(jsonDoc, "message"); FinishedTime = TravisCiService.GetJsonDate(jsonDoc, "finished_at"); Url = "http://travis-ci.org/" + travisCiBuildDefinition.OwnerName + "/" + travisCiBuildDefinition.ProjectName + "/builds/" + TravisCiService.GetJsonValue(jsonDoc, "id"); BuildId = TravisCiService.GetJsonValue(jsonDoc, "id"); } catch (Exception) { _log.Error("Error parsing the following json: " + jsonDoc); throw; } }
private TravisCiBuildStatus GetBuildStatus(CiEntryPointSetting ciEntryPointSetting, BuildDefinitionSetting buildDefinitionSetting) { var webClient = new WebClient(); var authToken = ciEntryPointSetting.GetPassword(); AddTravisHeaders(webClient, authToken); var travisBuildDef = TravisCiBuildDefinition.FromIdString(buildDefinitionSetting.Id); var buildDefinitionUrl = GetUrl(ciEntryPointSetting.Url, travisBuildDef.OwnerName, travisBuildDef.ProjectName); try { var json = webClient.DownloadString(buildDefinitionUrl); var lastBuildId = GetJsonValue(json, "last_build_id"); var buildUrl = string.Format("{0}builds/{1}", ciEntryPointSetting.Url, lastBuildId); json = webClient.DownloadString(buildUrl); return(new TravisCiBuildStatus(travisBuildDef, json, buildDefinitionSetting)); } catch (WebException webException) { throw WebClientXml.ToServerUnavailableException(buildDefinitionUrl, webException); } }