public static async Task <List <Issue> > GetIssueList(List <string> caseIdList) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "("; bool isFirstOne = true; foreach (string caseId in caseIdList) { if (isFirstOne) { sql += " \"SalesForce ID\" ~ " + caseId; isFirstOne = false; } else { sql += " OR \"SalesForce ID\" ~ " + caseId; } } sql += ")"; List <Issue> issueList = new List <Issue>(); var issues = jira.GetIssuesByQuery("ENGSUPP", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return(issueList); }
private AnotherJiraRestClient.JiraModel.Version AddOrGetExistingVersion(ProjectMeta projectMeta) { IEnumerable <AnotherJiraRestClient.JiraModel.Version> versions = GetVersions(); if (versions.Any(v => v.name == _jiraOptions.AvailableFromVersion.ToString())) { _logger.Info("Version <{0}> already exists in Jira", _jiraOptions.AvailableFromVersion); return(versions.Single(v => v.name == _jiraOptions.AvailableFromVersion.ToString())); } // add the version _logger.Info("Adding version <{0}>", _jiraOptions.AvailableFromVersion); var client = new JiraClient(Account); var addedVersion = client.CreateVersion(new NewVersion { description = "Automatically added release version via TC on " + _dateTimeProvider.Now.ToShortDateString() + " " + _dateTimeProvider.Now.ToShortTimeString(), name = _jiraOptions.AvailableFromVersion.ToString(), userStartDate = _dateTimeProvider.Now.ToString("dd/MMM/yyyy"), userReleaseDate = _dateTimeProvider.Now.ToString("dd/MMM/yyyy"), project = projectMeta.key, released = true, }); return(addedVersion); }
/// <summary> /// Create the JiraApi, using OAuth 1 for the communication, here the HttpClient is configured /// </summary> /// <param name="baseUri">Base URL, e.g. https://yourjiraserver</param> /// <param name="jiraOAuthSettings">JiraOAuthSettings</param> /// <param name="httpSettings">IHttpSettings or null for default</param> public static IJiraClient Create(Uri baseUri, JiraOAuthSettings jiraOAuthSettings, IHttpSettings httpSettings = null) { JiraClient client = JiraClient.Create(baseUri, httpSettings) as JiraClient; var jiraOAuthUri = client.JiraBaseUri.AppendSegments("plugins", "servlet", "oauth"); var oAuthSettings = new OAuth1Settings { TokenUrl = jiraOAuthUri.AppendSegments("request-token"), TokenMethod = HttpMethod.Post, AccessTokenUrl = jiraOAuthUri.AppendSegments("access-token"), AccessTokenMethod = HttpMethod.Post, CheckVerifier = false, SignatureType = OAuth1SignatureTypes.RsaSha1, Token = jiraOAuthSettings.Token, ClientId = jiraOAuthSettings.ConsumerKey, CloudServiceName = jiraOAuthSettings.CloudServiceName, RsaSha1Provider = jiraOAuthSettings.RsaSha1Provider, AuthorizeMode = jiraOAuthSettings.AuthorizeMode, AuthorizationUri = jiraOAuthUri.AppendSegments("authorize") .ExtendQuery(new Dictionary <string, string> { { OAuth1Parameters.Token.EnumValueOf(), "{RequestToken}" }, { OAuth1Parameters.Callback.EnumValueOf(), "{RedirectUrl}" } }) }; // Configure the OAuth1Settings client.Behaviour = client.ConfigureBehaviour(OAuth1HttpBehaviourFactory.Create(oAuthSettings), httpSettings); return(client); }
public static async Task<List<Issue>> GetIssueList(List<string> caseIdList) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "("; bool isFirstOne = true; foreach(string caseId in caseIdList) { if(isFirstOne) { sql += " \"SalesForce ID\" ~ " + caseId; isFirstOne = false; } else { sql += " OR \"SalesForce ID\" ~ " + caseId; } } sql += ")"; List<Issue> issueList = new List<Issue>(); var issues = jira.GetIssuesByQuery("ENGSUPP", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return issueList; }
static async Task MainAsync() { // Insert Jira URL, username and API Token to test JiraClient // Also insert IDs or Keys for entities and uncomment needed ones using (IJiraClient jiraClient = new JiraClient( jiraBaseUrl: "https://medavanteinc.atlassian.net", username: "******", apiToken: "F1qeveAHxLEV6Mij2hQP3ECD")) { ICollection <Status> statuses = await jiraClient.GetStatusesAsync(); Console.WriteLine("Existing issues statuses:"); foreach (var status in statuses.OrderBy(x => x.Name)) { Console.WriteLine($"{status.Id.ToString().PadRight(6)} - {status.Name}"); } Console.WriteLine(); Console.Write("Select issue status (by ID or name): "); string statusIdOrName = Console.ReadLine(); ICollection <Issue> issues = await jiraClient.SearchAsync($"status={statusIdOrName}"); Console.Clear(); Console.WriteLine($"Found {issues.Count} issues:"); foreach (var issue in issues) { Console.WriteLine($"{issue.Id.ToString().PadRight(6)} - {issue.Key}"); } Console.ReadLine(); } }
public JiraConnector(IJiraConfiguration jiraConfiguration, JiraMonitor jiraMonitor) { jiraConfiguration.Url = jiraConfiguration.Url.Replace(DefaultPostfix, ""); _jiraConfiguration = jiraConfiguration; _jiraMonitor = jiraMonitor; _jiraClient = JiraClient.Create(new Uri(jiraConfiguration.Url)); }
// https://www.quora.com/How-could-I-close-JIRA-ticket-using-rest-API public static async void CloseSubTask(IssueRef issueRef) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); bool isClosed = false; while (true) { var transitions = jira.GetTransitions(issueRef); Transition lastTransition = null; foreach (var transition in transitions) { lastTransition = transition; if ("Closed".Equals(transition.name, StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); isClosed = true; break; } } if (isClosed == false && lastTransition != null) { jira.TransitionIssue(issueRef, lastTransition); } else { break; } } }
public static async Task <Comment> CreateComment(IssueRef issue, string caseComment) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var jiraComments = jira.GetComments(issue); bool isFound = false; Comment jiraComment = null; foreach (Comment temp in jiraComments) { if (temp.body.Equals(caseComment, System.StringComparison.InvariantCultureIgnoreCase)) { jiraComment = temp; isFound = true; break; } } if (!isFound) { jiraComment = jira.CreateComment(issue, caseComment); } return(jiraComment); }
public void SearchDeveloperReport_Test() { var client = new JiraClient(); var members = ConfigKeeper.Instance.Developers; var sb = new StringBuilder("Team,Name,Done,Total,Percent\n\t"); foreach (var(key, member) in members) { List <JiraTicket> tickets = null; tickets = client.SearchTicketsForCurrentRelease(key, false); var spTotal = tickets.Sum(x => x.StoryPoint); tickets = client.SearchTicketsForDone(key, false); var spDone = tickets.Sum(x => x.StoryPoint); var percent = string.Empty; if (spTotal > 0) { percent = (spDone / spTotal).ToString("#0.##%"); } sb.Append($"{member.Team},{key},{spDone},{spTotal},{percent}\n\t"); } File.WriteAllText($@"E:\@TestData-{DateTime.Now.ToString("yyyy-MM-dd_HH_mm_ss")}.csv", sb.ToString(), Encoding.UTF8); }
public void SearchTesterReportNew_Test() { var client = new JiraClient(); var members = ConfigKeeper.Instance.Testers; var sb = new StringBuilder("Name,StroyPoint,Bug-Error,Bug-Design\n\t"); var start = "2019-07-17"; var end = "2019-10-25"; var stories = client.SearchTicketsStroyForTime(start, end); var bugsByDesign = client.SearchTicketsBugByDesignForTime(start, end); var bugsCodeError = client.SearchTicketsBugCodeErrorForTime(start, end); foreach (var(name, m) in members) { var tempTickets = stories.Where(x => x.Tester == name); var tempBugCodeErrors = bugsCodeError.Where(x => x.Tester == name); var tempBugByDesigns = bugsByDesign.Where(x => x.Tester == name); var storyPoint = tempTickets.Sum(x => x.StoryPoint); var bugCodeErrorCount = tempBugCodeErrors.Count(); var bugByDesignCount = tempBugByDesigns.Count(); sb.Append($"{name},{storyPoint},{bugCodeErrorCount},{bugByDesignCount}\n\t"); } File.WriteAllText($@"E:\@TestData-{DateTime.Now.ToString("yyyy-MM-dd_HH_mm_ss")}.csv", sb.ToString(), Encoding.UTF8); }
public static async Task <Issue> GetDatabaseTaskByCustomerID(string project, string type, string customer) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "("; if (customer.IndexOf(",") > 0) { sql += " created >= -15d AND summary ~ \"" + customer.Substring(0, customer.IndexOf(",")) + "\""; } else { sql += " created >= -15d AND summary ~ \"" + customer + "\""; } sql += ")"; List <Issue> issueList = new List <Issue>(); var issues = jira.GetIssuesByQuery(project, type, sql); foreach (Issue issue in issues) { if (issue != null) { return(issue); } } return(null); }
public async Task <ActionResult> JiraAction(string log, Guid id, int actionid) { var e = await GetError(log, id).ConfigureAwait(false); var user = Current.User; var action = JiraSettings.Actions.Find(i => i.Id == actionid); var jiraClient = new JiraClient(JiraSettings); var result = await jiraClient.CreateIssueAsync(action, e, user == null? "" : user.AccountName).ConfigureAwait(false); if (string.IsNullOrWhiteSpace(result.Key)) { return(Json(new { success = false, message = "Can not create issue" })); } return(Json(new { success = true, issueKey = result.Key, browseUrl = result.BrowseUrl })); }
public async Task <ActionResult> JiraAction(string log, Guid id, int actionid, bool redirect = false) { var e = ExceptionStores.GetError(log, id); var user = Current.User; var action = JiraSettings.Actions.FirstOrDefault(i => i.Id == actionid); var jiraClient = new JiraClient(JiraSettings); var result = await jiraClient.CreateIssue(action, e, user == null?String.Empty : user.AccountName); if (String.IsNullOrWhiteSpace(result.Key)) { return(Json(new { success = false, message = "Can not create issue" })); } else { return(Json(new { success = true, issueKey = result.Key, browseUrl = result.BrowseUrl })); } }
private bool VerifyProjectKey(out ProjectMeta projectMeta) { var client = new JiraClient(Account); projectMeta = client.GetProjectMeta(_jiraOptions.ProjectKey); return(projectMeta != null); }
public async Task Test_SearchSnippet() { // begin-snippet: SearchExample var client = JiraClient.Create(TestJiraUri); // Preferably use a "bot" user for maintenance var username = Environment.GetEnvironmentVariable("jira_test_username"); var password = Environment.GetEnvironmentVariable("jira_test_password"); client.SetBasicAuthentication(username, password); const string unavailableUser = "******"; // Find all issues in a certain state and assigned to a user who is not available var searchResult = await client.Issue.SearchAsync(Where.And(Where.Assignee.Is(unavailableUser), Where.Status.Is("Building"))); foreach (var issue in searchResult.Issues) { // Remote the assignment, to make clear no-one is working on it await issue.AssignAsync(User.Nobody); // Comment the reason to the issue await issue.AddCommentAsync($"{unavailableUser} is currently not available."); } // end-snippet }
public JiraConnection() { _baseUrl = AppSettings["JiraUrl"]; _username = AppSettings["JiraUsername"]; _password = AppSettings["JiraPassword"]; _client = new JiraClient(_baseUrl, _username, _password); }
public async Task Test_GetFields_Successful() { var response = new RestResponse <List <FieldInfo> >(); response.Data = new List <FieldInfo>() { new FieldInfo { Id = "1" }, new FieldInfo { Id = "2" }, new FieldInfo { Id = "3" } }; response.StatusCode = HttpStatusCode.OK; response.ResponseStatus = ResponseStatus.Completed; var factory = CreateMockFactory_ExecuteAsync <List <FieldInfo> >(response, (r, c) => { Assert.AreEqual(JiraClient.RESOURCE_GETFIELDS, r.Resource, $"Expected resource \"{JiraClient.RESOURCE_GETFIELDS}\" but got \"{r.Resource}\""); Assert.AreEqual(Method.GET, r.Method, $"Expected GET HTTP Method but got {r.Method}"); }); var jira = new JiraClient(factory); var results = await jira.GetFields(); Assert.IsNotNull(results, $"Got NULL results"); Assert.AreEqual(3, results.Count, $"Expected {response.Data.Count} data but got {results.Count}"); }
public void CallApi() { var client = new RestClient("http://localhost:3000"); //client.Authenticator = new HttpBasicAuthenticator("username", "password"); var request01 = new RestRequest("token", DataFormat.Json); //var response01 = client.Post<MyResponse>(request01); var response01 = client.Post <dynamic>(request01); //_output.WriteLine(response01.Data["token"]); var request02 = new RestRequest("users", DataFormat.Json); request02.AddHeader("Authorization", $"Basic {response01.Data.Token}"); var response02 = client.Get(request02); _output.WriteLine(response02.Content); var clientA = new JiraClient(); var dataContainer = new DataContainer("TC00001"); var respone = clientA.RestInlineCreateIssue(dataContainer["IssueData"]); Assert.Equal(201, respone.HttpCode); //Rest 封装 //结构的重复定义 // IRestClient client; // client.Invoke("data","Put"); // client.Invoke("alan_test"); }
public static async void ListUserStories() { if (!File.Exists(Common.UserSettingFilePath)) { SetUpUserSetting.SetUp(); } JiraClient Client = JiraClient.Instance; Client.InitializeClient(); var data = Client.GetAssignedUserStories(); if (data.Status == RestSharp.ResponseStatus.Completed) { Console.WriteLine(new String('-', 115)); Console.WriteLine(string.Format("| {0,10} | {1, 15} | {2, -80} |", "id", "User Story Key", "User Story Summary")); Console.WriteLine(new String('-', 115)); for (int i = 0; i < data.issues.Length; i++) { var issue = data.issues[i]; string summary = issue.fields.summary; if (summary.Length > 78) { summary = summary.Substring(0, 75) + "..."; } Console.WriteLine(string.Format("| {0,10} | {1, 15} | {2, -80} |", i, issue.key, summary)); } Console.WriteLine(new String('-', 115)); } }
public static async Task <List <Issue> > GetIssueListBySalesforceId(string salesforceId, List <string> projects) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "\"Salesforce ID\" ~ " + salesforceId; sql += " AND project in ( "; bool isFirstOne = true; foreach (string project in projects) { if (isFirstOne) { sql += project; isFirstOne = false; } else { sql += " , " + project; } } sql += ")"; List <Issue> issueList = new List <Issue>(); var issues = jira.GetIssuesByQuery("", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return(issueList); }
public static async Task <List <Issue> > GetCaseListFromCrossProjects(DateTime startDate, DateTime endDate, List <string> projects) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "resolutiondate >= " + String.Format("{0}-{1}-{2}", startDate.Year, startDate.Month, startDate.Day) + " AND " + " resolutiondate <= " + String.Format("{0}-{1}-{2}", endDate.Year, endDate.Month, endDate.Day); sql += " AND \"Salesforce ID\" !~ Empty "; sql += " AND project in ( "; bool isFirstOne = true; foreach (string project in projects) { if (isFirstOne) { sql += project; isFirstOne = false; } else { sql += " , " + project; } } sql += ")"; List <Issue> issueList = new List <Issue>(); var issues = jira.GetIssuesByQuery("", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return(issueList); }
public async Task StartupAsync(CancellationToken cancellationToken = new CancellationToken()) { Log.Debug().WriteLine("StartAsync called!"); var serverInfo = await JiraClient.Create(new Uri("https://greenshot.atlassian.net")).Server.GetInfoAsync(cancellationToken).ConfigureAwait(false); Log.Debug().WriteLine("Jira server version {0}", serverInfo.Version); await Task.Delay(100, cancellationToken).ConfigureAwait(false); }
public static async Task <Issue> UpdateDatabaseTask(Issue issue) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var result = jira.UpdateIssue(issue); return(result); }
public static async Task <List <Worklog> > GetWorklogs(IssueRef issue) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var worklogs = jira.GetWorklogs(issue); return(worklogs as List <Worklog>); }
public static bool UploadAttachment(IssueRef issue, string fileName, byte[] fileStream) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); jira.CreateAttachment(issue, fileStream, fileName); return(true); }
public static async Task <Issue> LoadIssue(IssueRef issue) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var Issue = jira.LoadIssue(issue); return(Issue); }
public static async Task <Issue> CreateDatabaseTask(IssueFields fields) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var issue = jira.CreateIssue("DATABASE", "Task", fields); return(issue); }
public static async Task <Issue> CreateSubTask(string summary, string description, IssueRef parent) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var issue = jira.CreateSubTask("ENGSUPP", parent.key, summary, description); return(issue); }
public void Dispose() { if (JiraClient != null) { JiraClient.Dispose(); JiraClient = null; } }
/// <summary> /// Returns the possible priorities from cache. If the cache has not been set /// this method will load the values using the specified JiraClient. /// </summary> /// <param name="client">used to load priories if not already in cache</param> /// <param name="context">Context that contains the cache</param> /// <returns>cached priority values</returns> public static List <Priority> GetCachedPriorities(this JiraClient client, HttpContextBase context) { return(GetFromCache <List <Priority> >( KEY_PRIORITY_FILTER, () => client.GetPriorities(), PRIORITY_FILTER_EXPIRATION_HOURS, context)); }
public void Setup() { jiraApiRequestFactoryMock = new Mock <IJiraApiRequestFactory>(); jiraApiRequesterMock = new Mock <IJiraApiRequester>(); jiraClient = new JiraClient(jiraApiRequestFactoryMock.Object, jiraApiRequesterMock.Object); }
public JiraProject(string jiraServer, string jiraProject, string userName, string password) { jira = new JiraClient(jiraServer, userName, password); jira.OnPercentComplete += onPercentComplete; this.userName = userName; this.password = password; this.jiraProject = jiraProject; this.jiraServer = jiraServer; PreferHtml = false; }
private static IHttpController CreatePrintController() { var config = CreatePrintServiceConfig(); var jiraRestClient = CreateJiraRestClient(config); var client = new JiraClient(jiraRestClient); var issuePrinter = new WindowsIssuePrinter(config.PrinterName); return new PrintController(new PrintService(client, issuePrinter)); }
public static async Task<List<Issue>> GetIssueListByStatus(string status) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "project = ENGSUPP AND status = \"" + status + "\" AND reporter in (\"[email protected]\")"; List<Issue> issueList = new List<Issue>(); var issues = jira.GetIssuesByQuery("ENGSUPP", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return issueList; }
public static async Task<List<Issue>> GetIssueListByLabel(string label) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "labels = " + label + ""; List<Issue> issueList = new List<Issue>(); var issues = jira.GetIssuesByQuery("ENGSUPP", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return issueList; }
public static async Task<List<Issue>> GetIssueList(string email) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "assignee in (\"" + email + "\") and status in (\"Open\", \"In Progress\", \"Reopened\", \"Pending\", \"Development in Progress\") "; List<Issue> issueList = new List<Issue>(); var issues = jira.GetIssuesByQuery("ENGSUPP", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return issueList; }
public async Task<ActionResult> JiraAction(string log, Guid id, int actionid, bool redirect = false) { var e = ExceptionStores.GetError(log, id); var user = Current.User; var action = JiraSettings.Actions.FirstOrDefault(i => i.Id == actionid); var jiraClient = new JiraClient(JiraSettings); var result = await jiraClient.CreateIssue(action, e, user == null ? String.Empty : user.AccountName); if (String.IsNullOrWhiteSpace(result.Key)) { return Json(new { success = false, message = "Can not create issue" }); } else { return Json(new { success = true, issueKey = result.Key, browseUrl = result.BrowseUrl }); } }
public static bool UpdateJIRAStatus(IssueRef issueRef, string jiraStatus, string jiraNextStatus) { // Start Review Case: Open -> In Progress // Pending -> In Progress // Resolved -> In Progress(Command: Re-Open) // Closed -> In Progress(Command: Re-Open) // Add some comment: In Progress -> Pending // if (String.IsNullOrEmpty(jiraNextStatus)) { return false; } IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var transitions = jira.GetTransitions(issueRef); if ("In Progress" == jiraNextStatus) { if ("Open".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase)) { return true; } if ("Pending".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase) || "Reopened".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase)) { foreach (var transition in transitions) { if ("Analysis In Progress".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } else { if ("Closed".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase)) { foreach (var transition in transitions) { if ("Re-Open".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } if ("Resolved".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase)) { foreach (var transition in transitions) { if ("Dev In Progress".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } transitions = jira.GetTransitions(issueRef); foreach (var transition in transitions) { if ("Analysis In Progress".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } } if ("Pending" == jiraNextStatus) { if ("Open".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase)) { foreach (var transition in transitions) { if ("Analysis In Progress".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } jiraStatus = "In Progress"; } if ("In Progress".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase)) { foreach (var transition in transitions) { if ("Commented".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } } if ("Closed" == jiraNextStatus) { } return true; }
public void SetUp() { _builderMock = MockRepository.GenerateMock<IJiraRequestUrlBuilder>(); _webClientStub = MockRepository.GenerateStub<IWebClient>(); _jiraClient = new JiraClient (_webClientStub, () => _builderMock); }
public static async Task<bool> UpdateJiraStatus(IssueRef issueRef, string jiraStatus, string jiraNextStatus) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var transitions = jira.GetTransitions(issueRef); if ("Closed".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase) && jiraNextStatus == "In Progress") { foreach (var transition in transitions) { if ("Re-Open".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } if ("Pending".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase) && jiraNextStatus == "In Progress") { foreach (var transition in transitions) { if ("Analysis In Progress".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } if ("In Progress".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase) && jiraNextStatus == "Pending") { foreach (var transition in transitions) { if ("Commented".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } if (("Pending".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase) || "Resolved".Equals(jiraStatus, System.StringComparison.InvariantCultureIgnoreCase)) && jiraNextStatus == "Closed") { foreach (var transition in transitions) { if ("Closed".Equals(transition.name, System.StringComparison.InvariantCultureIgnoreCase)) { jira.TransitionIssue(issueRef, transition); break; } } } //var issues = jira.TransitionIssue(issueRef, inProgressOrReopen); // "Open" -> "In Progress" // "In Progress" -> "Commented" // "In Progress" -> "Closed" return true; }
public static async Task<Issue> CreateIssue(IssueFields fields) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var issue = jira.CreateIssue("ENGSUPP", "Case", fields); return issue; }
public static async Task<List<Issue>> GetIssueListBySalesforceId(string salesforceId, List<string> projects) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "\"Salesforce ID\" ~ " + salesforceId; sql += " AND project in ( "; bool isFirstOne = true; foreach (string project in projects) { if (isFirstOne) { sql += project; isFirstOne = false; } else { sql += " , " + project; } } sql += ")"; List<Issue> issueList = new List<Issue>(); var issues = jira.GetIssuesByQuery("", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return issueList; }
public static async Task<List<Issue>> GetCaseListFromCrossProjects(DateTime startDate, DateTime endDate, List<string> projects) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); string sql = "resolutiondate >= " + String.Format("{0}-{1}-{2}", startDate.Year, startDate.Month, startDate.Day) + " AND " + " resolutiondate <= " + String.Format("{0}-{1}-{2}", endDate.Year, endDate.Month, endDate.Day); sql += " AND \"Salesforce ID\" !~ Empty "; sql += " AND project in ( "; bool isFirstOne = true; foreach (string project in projects) { if (isFirstOne) { sql += project; isFirstOne = false; } else { sql += " , " + project; } } sql += ")"; List<Issue> issueList = new List<Issue>(); var issues = jira.GetIssuesByQuery("", "", sql); foreach (Issue issue in issues) { issueList.Add(issue); } return issueList; }
public static async Task<Issue> UpdateIssue(Issue issue) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var result = jira.UpdateIssue(issue); return result; }
public static async Task<List<Attachment>> GetAttachments(IssueRef issue) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var jiraAttachments = jira.GetAttachments(issue); return (jiraAttachments as List<Attachment>); }
public static async Task<Comment> CreateComment(IssueRef issue, string caseComment) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); var jiraComments = jira.GetComments(issue); bool isFound = false; Comment jiraComment = null; foreach (Comment temp in jiraComments) { if (temp.body.Equals(caseComment, System.StringComparison.InvariantCultureIgnoreCase)) { jiraComment = temp; isFound = true; break; } } if (!isFound) { jiraComment = jira.CreateComment(issue, caseComment); } return jiraComment; }
public static bool UploadAttachment(IssueRef issue, string fileName, byte[] fileStream) { IJiraClient jira = new JiraClient("https://accelaeng.atlassian.net/", "*****@*****.**", "peter.peng"); jira.CreateAttachment(issue, fileStream, fileName); return true; }