public QueueGetItemCommand(IJenkinsContext context, int itemNumber) { if (context == null) { throw new ArgumentNullException(nameof(context)); } Url = NetPath.Combine(context.BaseUrl, "queue/item", itemNumber.ToString(), "api/xml"); UserName = context.UserName; Password = context.Password; Crumb = context.Crumb; OnWrite = request => { request.Method = "POST"; }; OnRead = response => { using (var stream = response.GetResponseStream()) { if (stream == null) { return; } var document = XDocument.Load(stream); if (document.Root == null) { throw new ApplicationException("An empty response was returned!"); } Result = new JenkinsQueueItem(document.Root); } }; }
public async static Task DequeueJob(JenkinsQueueItem queueItem, string jenkinsServerUrl) { if (queueItem == null) { throw new ArgumentNullException("queueItem"); } Uri dequeueUri = CreateDeqeueuBuildUri(jenkinsServerUrl, queueItem); using (WebClient client = JenkinsDataLoader.CreateJenkinsWebClient(jenkinsServerUrl)) { byte[] response = await client.UploadValuesTaskAsync(dequeueUri, new NameValueCollection()); } }
private static Uri CreateDeqeueuBuildUri(string jenkinsServerUrl, JenkinsQueueItem queueItem) { var serverUri = new Uri(jenkinsServerUrl); return(new Uri(serverUri, "queue/cancelItem?id=" + queueItem.ID)); }