public bool ModifTrigger(string buildTypeId, string triggerId, string newBt) { //Get data from the old trigger var urlExtractAllTriggersOld = String.Format("/app/rest/buildTypes/id:{0}/triggers", buildTypeId); var triggers = _caller.GetFormat <BuildTriggers>(urlExtractAllTriggersOld); foreach (var trigger in triggers.Trigger.OrderByDescending(m => m.Id)) { if (trigger.Type != "buildDependencyTrigger") { continue; } foreach (var property in trigger.Properties.Property) { if (property.Name != "dependsOn") { continue; } if (triggerId != property.Value) { continue; } property.Value = newBt; var writer = new JsonWriter( new DataWriterSettings(new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Lowercase, "-"))); var ttt = writer.Write(trigger); var urlNewTrigger = String.Format("/app/rest/buildTypes/id:{0}/triggers", buildTypeId); var response = _caller.Post(ttt, HttpContentTypes.ApplicationJson, urlNewTrigger, HttpContentTypes.ApplicationJson); if (response.StatusCode != HttpStatusCode.OK) { continue; } var urlDeleteOld = String.Format("/app/rest/buildTypes/id:{0}/triggers/{1}", buildTypeId, trigger.Id); _caller.Delete(urlDeleteOld); if (response.StatusCode == HttpStatusCode.OK) { return(true); } } } return(false); }
/// <summary> /// Unpin a build by build number /// </summary> /// <param name="buildConfigId"></param> /// <param name="buildNumber"></param> public void UnPinBuildByBuildNumber(string buildConfigId, string buildNumber) { var urlPart = $"/builds/buildType:{buildConfigId},number:{buildNumber}/pin/"; m_caller.Delete(urlPart); }