public void CreateAndQueryIssueWithSubTask() { var parentTask = _jira.CreateIssue("TST"); parentTask.Type = "1"; parentTask.Summary = "Test issue with SubTask" + _random.Next(int.MaxValue); parentTask.SaveChanges(); var subTask = _jira.CreateIssue("TST", parentTask.Key.Value); subTask.Type = "5"; // SubTask issue type. subTask.Summary = "Test SubTask" + _random.Next(int.MaxValue); subTask.SaveChanges(); Assert.False(parentTask.Type.IsSubTask); Assert.True(subTask.Type.IsSubTask); Assert.Equal(parentTask.Key.Value, subTask.ParentIssueKey); // query the subtask again to make sure it loads everything from server. subTask = _jira.GetIssue(subTask.Key.Value); Assert.False(parentTask.Type.IsSubTask); Assert.True(subTask.Type.IsSubTask); #if !SOAP Assert.Equal(parentTask.Key.Value, subTask.ParentIssueKey); #endif }
public void DeleteIssue(string id) { Issue issue = _jira.GetIssue(id); if (issue != null) { _jira.DeleteIssue(issue); } }
public Issue GetJiraIssue(string jiraRef) { try { CheckAndConnectJira(); return(jira.GetIssue(jiraRef)); } catch (Exception ex) { throw new NoResultsFoundException(string.Format("Unable to locate Jira {0}", jiraRef), ex); } }
public void AddAttachment(string path, string issueID) { XMLParse _oWaXmlData = new XMLParse(); _oWaXmlData.LoadXML("../../Config/ApplicationSettings.xml"); jiraURL = _oWaXmlData.getData("settings/JiraCredentials", "URL"); jiraUsername = _oWaXmlData.getData("settings/JiraCredentials", "UserName"); jiraPassword = _oWaXmlData.getData("settings/JiraCredentials", "Password"); jiraConn = new Jira(jiraURL[0], jiraUsername[0], jiraPassword[0]); string jqlString = "project = PegasusCRM AND issuetype = Bug"; bool result = false; IEnumerable <Atlassian.Jira.Issue> jiraIssues = jiraConn.GetIssuesFromJql(jqlString); foreach (var issue in jiraIssues) { if (issue.Key.Value == issueID) { Issue foundissue = jiraConn.GetIssue(issueID); foundissue.AddAttachment(path); Console.WriteLine("Attachment Added Successfully"); foundissue.SaveChanges(); result = true; break; } } if (!result) { Console.WriteLine("Failed To Add Attachment"); } }
public void AddAttachment(string path, string issueID) { XMLParse _oWaXmlData = new XMLParse(); _oWaXmlData.LoadXML("../../Config/ApplicationSettings.xml"); jiraURL = _oWaXmlData.getData("settings/JiraCredentials", "URL"); jiraUsername = _oWaXmlData.getData("settings/JiraCredentials", "UserName"); jiraPassword = _oWaXmlData.getData("settings/JiraCredentials", "Password"); jiraConn = new Jira(jiraURL[0], jiraUsername[0], jiraPassword[0]); string jqlString = "project = PegasusCRM AND issuetype = Bug"; bool result = false; IEnumerable<Atlassian.Jira.Issue> jiraIssues = jiraConn.GetIssuesFromJql(jqlString); foreach (var issue in jiraIssues) { if (issue.Key.Value == issueID) { Issue foundissue = jiraConn.GetIssue(issueID); foundissue.AddAttachment(path); Console.WriteLine("Attachment Added Successfully"); foundissue.SaveChanges(); result = true; break; } } if (!result) { Console.WriteLine("Failed To Add Attachment"); } }
public bool GetJiraIssueDetail(string jiraNr) { if (!LoginJira()) { return(false); } try { _issue = jira.GetIssue(jiraNr); } catch (Exception) { return(false); } return(true); }
public async Task <List <KeyValueDTO> > GetJiraIssue(string jiraKey, AuthorizationToken authToken) { return(await InterceptJiraExceptions(() => { Jira jira = CreateRestClient(authToken.Token); var issue = jira.GetIssue(jiraKey); return CreateKeyValuePairList(issue, jira); })); }
public void AddComment(string issueID, string Comment) { XMLParse _oWaXmlData = new XMLParse(); _oWaXmlData.LoadXML("../../Config/ApplicationSettings.xml"); jiraURL = _oWaXmlData.getData("settings/JiraCredentials", "URL"); jiraUsername = _oWaXmlData.getData("settings/JiraCredentials", "UserName"); jiraPassword = _oWaXmlData.getData("settings/JiraCredentials", "Password"); jiraConn = new Jira(jiraURL[0], jiraUsername[0], jiraPassword[0]); try { Issue issue = jiraConn.GetIssue(issueID); issue.AddComment(Comment); issue.SaveChanges(); Console.WriteLine("Comment added to Issue - " + issueID + " Successfully"); } catch (Exception e) { Console.WriteLine(e.Message); } }
private void SubmitCommentIfDifferent(string key, string comment) { Jira = Session["jira"] as Jira; if(Jira != null) { var issue = Jira.GetIssue(key); FinalBuilds = Session["builds"] as List<ConnectorBuildItem>; var issueInCache = FinalBuilds.Where(x => x.ParentTicket.Key == key).Select(x => x).FirstOrDefault(); if(issueInCache!=null && (issueInCache.ParentTicket.Description == null ? "" : Regex.Replace(issueInCache.ParentTicket.Description, @"\s+", "")) != Regex.Replace(comment, @"\s+", "")) { issue.AddComment(comment); FileWriter.Log(string.Format("Comment on {0} by {1}", key, Session["username"] != null ? Session["username"].ToString(): "Unknown user")); if (issueInCache != null && FinalBuilds.Contains(issueInCache)) { FinalBuilds.Remove(issueInCache); issueInCache.ParentTicket.Description = comment; FinalBuilds.Add(issueInCache); Session["builds"] = FinalBuilds; } } } }
private bool InitiateConnection(string userName, string password) { bool success = true; try { Jira = Jira.CreateRestClient(BaseURL, userName, password); Jira.MaxIssuesPerRequest = MaxIssueCount; var testQueryResult = Jira.GetIssue("AAI-1"); success = testQueryResult != null; } catch (Exception e) { Debug.WriteLine(e.Message); success = false; } Session["SuccessfulLogin"] = success; return success; }
public ActionResult Details(string Id) { JiraIssues issueDetails = new JiraIssues(); Issue issue = null; bool isFound = true; try { issue = jc.GetIssue(Id); } catch (Exception) { isFound = false; } finally { if (isFound) { issueDetails.key = issue.Key.Value; if (issue.Type.Id == "6") { issueDetails.type = "Sub-Task"; } else { issueDetails.type = issue.Type.Name; } issueDetails.summary = issue.Summary; issueDetails.status = issue.Status.Name; if (issue.Assignee != null) { issueDetails.assignee = issue.Assignee; } else { issueDetails.assignee = "Not Assigned"; } issueDetails.priority = issue.Priority.Name; if (issue.Resolution != null) { issueDetails.resolution = issue.Resolution.Name; } else { issueDetails.resolution = "None"; } IEnumerable <Issue> issuesInEpicEnum = null; issuesInEpicEnum = jc.GetIssuesFromJql("project in (BCTBI, OCTBI) AND \"Epic Link\"=" + Id, Int32.MaxValue); issueDetails.issuesInEpic = issuesInEpicEnum.ToList(); } else { issueDetails.issuesInEpic = new List <Issue>(); } } //string url = "http://jira.micron.com/rest/agile/1.0/issue/" + Id; //string data = null; //HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; //req.ContentType = "application/json"; //req.Method = "GET"; ////req.Credentials = new NetworkCredential("OCTBI_USER", "cifd99dsfssccEE"); //string mergedCredentials = string.Format("{0}:{1}", "OCTBI_USER", "cifd99dsfssccEE"); //byte[] byteCredentials = UTF8Encoding.UTF8.GetBytes(mergedCredentials); //string base64Credentials = Convert.ToBase64String(byteCredentials); //req.Headers.Add("Authorization", "Basic " + base64Credentials); //if (data != null) //{ // using (StreamWriter writer = new StreamWriter(req.GetRequestStream())) // { // writer.Write(data); // } //} //HttpWebResponse resp = req.GetResponse() as HttpWebResponse; //string result = string.Empty; //using (StreamReader reader = new StreamReader(resp.GetResponseStream())) //{ // result = reader.ReadToEnd(); //} //var test = result; return(PartialView("_Details", issueDetails)); }
public Task PushTime(AppSetting settings, DateTime startDate, DateTime endDate) { //tra-74 if (settings == null) throw new Exception("No Jira or Toggl credentials provided."); this.VerifySetting(settings.JiraLogin, "JIRA login"); this.VerifySetting(settings.JiraPassword, "JIRA password"); this.VerifySetting(settings.JiraUrl, "JIRA URL"); this.VerifySetting(settings.TogglApiKey, "Toggl API Key"); var jira = new Jira(settings.JiraUrl, settings.JiraLogin, settings.JiraPassword); var toggl = new Toggl.Toggl(settings.TogglApiKey); return Task.Run(() => { var timeService = new TimeEntryService(settings.TogglApiKey); var timeParams = new TimeEntryParams(); timeParams.StartDate = startDate.Date; timeParams.EndDate = endDate.Date; foreach (var te in timeService.List(timeParams).Where(w => (w.TagNames == null || !w.TagNames.Contains(POSTED_TAG)) && !string.IsNullOrEmpty(w.Description))) { KeyValuePair<string, string> description = this.ParseDescription(te.Description); if (string.IsNullOrEmpty(description.Key)) continue; var issue = jira.GetIssue(description.Key); issue.AddWorklog(new Worklog(this.GetMinutes(te.Duration.GetValueOrDefault()), DateTime.Parse(te.Start), description.Value)); if (te.TagNames == null) te.TagNames = new List<string>(); te.TagNames.Add(POSTED_TAG); timeService.Edit(te); } }); //return Task.Run(() => // { // //Atlassian.Jira.Jira aa = new Atlassian.Jira.Jira("urlhere", "loginhere", "passwordhere"); // //var issue = aa.GetIssue("FLW6-2247"); // //issue.AddWorklog(new Atlassian.Jira.Worklog) // //var apiKey = "apikeyhere"; // //var t = new Toggl.Toggl(apiKey); // //var c = t.User.GetCurrent(); // //var timeSrv = new Toggl.Services.TimeEntryService(apiKey); // //var prams = new Toggl.QueryObjects.TimeEntryParams(); // //// there is an issue with the date ranges have // //// to step out of the range on the end. // //// To capture the end of the billing range day + 1 // //prams.StartDate = DateTime.Now.AddMonths(-1); // //prams.EndDate = DateTime.Now.AddMonths(1); // //var hours = timeSrv.List(prams) // // .Where(w => !string.IsNullOrEmpty(w.Description)).ToList(); // }); }
public TrackerIssue GetIssue(string issueId) { Issue issue = _jira.GetIssue(issueId); return(Convert(issue)); }