private string GetProjectKey(JiraAction action) { var userName = !String.IsNullOrWhiteSpace(action.ProjectKey) ? action.ProjectKey : _jiraSettings.DefaultProjectKey; return(userName); }
private string GetUsername(JiraAction action) { var userName = !String.IsNullOrWhiteSpace(action.Username) ? action.Username : _jiraSettings.DefaultUsername; return(userName); }
private string GetPassword(JiraAction action) { var password = !String.IsNullOrWhiteSpace(action.Password) ? action.Password : _jiraSettings.DefaultPassword; return(password); }
public async Task <JiraCreateIssueResponse> CreateIssueAsync(JiraAction action, Error error, string accountName) { var url = GetUrl(action); var userName = GetUsername(action); var password = GetPassword(action); var projectKey = GetProjectKey(action); var client = new JsonRestClient(url) { Username = userName, Password = password }; var fields = new Dictionary <string, object> { ["project"] = new { key = projectKey }, ["issuetype"] = new { name = action.Name }, ["summary"] = error.Message.CleanCRLF().TruncateWithEllipsis(255), ["description"] = RenderDescription(error, accountName) }; var components = action.GetComponentsForApplication(error.ApplicationName); if (components?.Count > 0) { fields.Add("components", components); } var labels = action.Labels.IsNullOrEmpty() ? null : action.Labels.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (labels?.Length > 0) { fields.Add("labels", labels); } var payload = new { fields }; var result = await client.PostAsync <JiraCreateIssueResponse, object>("issue", payload); var commentBody = RenderVariableTable("Server Variables", error.ServerVariables) + RenderVariableTable("QueryString", error.QueryString) + RenderVariableTable("Form", error.Form) + RenderVariableTable("Cookies", error.Cookies) + RenderVariableTable("RequestHeaders", error.RequestHeaders); if (commentBody.HasValue()) { await CommentAsync(action, result, commentBody); } result.Host = GetHost(action); return(result); }
public async Task <JiraCreateIssueResponse> CreateIssue(JiraAction action, Error error, string accountName) { var url = GetUrl(action); var userName = GetUsername(action); var password = GetPassword(action); var projectKey = GetProjectKey(action); var client = new JsonRestClient(url); client.Username = userName; client.Password = password; Dictionary <string, object> fields = new Dictionary <string, object>(); fields.Add("project", new { key = projectKey }); fields.Add("issuetype", new { name = action.Name }); fields.Add("summary", error.Message.CleanCRLF().TruncateWithEllipsis(255)); fields.Add("description", RenderDescription(error, accountName)); var components = action.GetComponentsForApplication(error.ApplicationName); if (components != null && components.Count > 0) { fields.Add("components", components); } var labels = String.IsNullOrWhiteSpace(action.Labels) ? null : action.Labels.Split(new char[1] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (labels != null && labels.Length > 0) { fields.Add("labels", labels); } var payload = new { fields = fields }; var result = await client.PostAsync <JiraCreateIssueResponse, object>("issue", payload).ConfigureAwait(false); var commentBody = RenderVariableTable("Server Variables", error.ServerVariables) + RenderVariableTable("QueryString", error.QueryString) + RenderVariableTable("Form", error.Form) + RenderVariableTable("Cookies", error.Cookies) + RenderVariableTable("RequestHeaders", error.RequestHeaders); var commentReponse = await Comment(action, result, commentBody).ConfigureAwait(false); result.Host = GetHost(action); return(result); }
public async Task <string> Comment(JiraAction actions, JiraCreateIssueResponse createResponse, string comment) { var url = GetUrl(actions); var userName = GetUsername(actions); var password = GetPassword(actions); var client = new JsonRestClient(url); client.Username = userName; client.Password = password; var payload = new { body = comment }; var resource = String.Format("issue/{0}/comment", createResponse.Key); var response = await client.PostAsync <string, object>(resource, payload).ConfigureAwait(false); return(response); }
public async Task <string> CommentAsync(JiraAction actions, JiraCreateIssueResponse createResponse, string comment) { var url = GetUrl(actions); var userName = GetUsername(actions); var password = GetPassword(actions); var client = new JsonRestClient(url) { Username = userName, Password = password }; var payload = new { body = comment }; var resource = $"issue/{createResponse.Key}/comment"; var response = await client.PostAsync <string, object>(resource, payload); return(response); }
private string GetHost(JiraAction action) { return(action.Host.IsNullOrEmptyReturn(_jiraSettings.DefaultHost)); }
private string GetUrl(JiraAction action) { return(action.Url.IsNullOrEmptyReturn(_jiraSettings.DefaultUrl)); }
private string GetProjectKey(JiraAction action) { return(action.ProjectKey.IsNullOrEmptyReturn(_jiraSettings.DefaultProjectKey)); }
private string GetUsername(JiraAction action) { return(action.Username.IsNullOrEmptyReturn(_jiraSettings.DefaultUsername)); }
private string GetPassword(JiraAction action) { return(action.Password.IsNullOrEmptyReturn(_jiraSettings.DefaultPassword)); }
private string GetHost(JiraAction action) { return(!String.IsNullOrWhiteSpace(action.Host) ? action.Host : _jiraSettings.DefaultHost); }
private string GetUrl(JiraAction action) { return(!String.IsNullOrWhiteSpace(action.Url) ? action.Url : _jiraSettings.DefaultUrl); }