...
Code Block | ||
---|---|---|
| ||
def versionIdProductionMaintenance = "10214" def versionIdProductionUAT = "10306" def actionName = "Create" if (getActionName() != actionName) { return // not the initial action, so don't set default values } //get fixVersion ID def fixVersionsField = getFieldById("fixVersions") //set fixVersion value def fixVersionsNewValue = fixVersionsField.setFormValue([versionIdProductionMaintenance, versionIdProductionUAT]) |
5. Adding Custom filed value while changing the status to the particular screen
...
: post-function (Server)
...
Code Block | ||
---|---|---|
| ||
import groovy.json.JsonSlurper; import groovy.json.StreamingJsonBuilder; import com.atlassian.jira.issue.util.DefaultIssueChangeHolder; import com.atlassian.jira.issue.ModifiedValue; import com.atlassian.jira.issue.CustomFieldManager; import com.atlassian.jira.issue.fields.CustomField; import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.Issue; import com.atlassian.jira.issue.MutableIssue import org.apache.commons.codec.binary.Base64; def url = new URL("https://jsonplaceholder.typicode.com/posts").openConnection(); def message = '{"title": "foo","body": "bar", "userId": "1"}'; url.setRequestMethod("POST") url.setDoOutput(true) url.setRequestProperty("Content-Type", "application/json") url.getOutputStream().write(message.getBytes("UTF-8")); def postRC = url.getResponseCode(); IssueManager im = ComponentAccessor.getIssueManager() MutableIssue issue = im.getIssueObject("SP-5519") if(issue){ def customFieldManager = ComponentAccessor.getCustomFieldManager() def cField = customFieldManager.getCustomFieldObject("customfield_10401") def cFieldValue = issue.getCustomFieldValue(cField) def changeHolder = new DefaultIssueChangeHolder() cField.updateValue(null, issue, new ModifiedValue(cFieldValue, url.getInputStream().getText()),changeHolder) }else { return "Issue doesn't exist" } |
6. Changing the status of particular issue
...
(Server)
Code Block |
---|
import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.issue.MutableIssue; import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.user.ApplicationUser; //Workflow imports import com.atlassian.jira.issue.IssueInputParametersImpl import com.atlassian.jira.bc.issue.IssueService import com.atlassian.jira.workflow.JiraWorkflow import com.atlassian.jira.workflow.WorkflowManager ApplicationUser currentUser = ComponentAccessor.getJiraAuthenticationContext().loggedInUser IssueManager im = ComponentAccessor.getIssueManager(); MutableIssue issue = im.getIssueObject("SP-5519"); //Workflow WorkflowManager workflowManager = ComponentAccessor.getWorkflowManager() JiraWorkflow workflow = workflowManager.getWorkflow(issue) def actionId = 41 IssueService issueService = ComponentAccessor.getIssueService() def transitionValidationResult = issueService.validateTransition(currentUser, issue.id, actionId, new IssueInputParametersImpl()) def transitionResult = issueService.transition(currentUser, transitionValidationResult) return transitionResult |
7. Getting Comments from particular issue and linked issues of particular issue
...
(Server)
Code Block | ||
---|---|---|
| ||
import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.issue.MutableIssue; import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.link.IssueLink; import com.atlassian.jira.issue.comments.CommentManager; import com.atlassian.jira.user.ApplicationUser; CommentManager commentMgr = ComponentAccessor.getCommentManager() ApplicationUser currentUser = ComponentAccessor.getJiraAuthenticationContext().loggedInUser IssueManager im = ComponentAccessor.getIssueManager(); MutableIssue issue = im.getIssueObject("SP-5519"); return commentMgr.getComments(issue).last().body def links = ComponentAccessor.getIssueLinkManager().getOutwardLinks(issue.getId()) def output = "" for( l in links) { //use this for Outward links output = output + l.issueLinkType.name + ": " + l.getDestinationObject() + "<br/> } return output |
...
Code Block | ||
---|---|---|
| ||
def versionIdProductionMaintenance = "10214" def actionName = "Create" if (getActionName() != actionName) { return // not the initial action, so don't set default values } //def issueType = getFieldById("10402").getValue().toString() def issueType = issueContext.issueType.name if(issueType == "Change Request") { //get fixVersion ID def fixVersionsFieldCR = getFieldById("fixVersions") //set fixVersion value def fixVersionsNewValueCR = fixVersionsFieldCR.setFormValue([versionIdProductionMaintenance]) } else { def fixVersionsField = getFieldById("fixVersions") def fixVersionsNewValue = fixVersionsField.setFormValue("") } |
9. Adding a comment to the linked issue and the main issue
...
(Server)
Code Block | ||
---|---|---|
| ||
import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.issue.MutableIssue; import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.link.IssueLink; import com.atlassian.jira.issue.comments.CommentManager; import com.atlassian.jira.user.ApplicationUser; CommentManager commentMgr = ComponentAccessor.getCommentManager() ApplicationUser currentUser = ComponentAccessor.getJiraAuthenticationContext().loggedInUser IssueManager im = ComponentAccessor.getIssueManager(); MutableIssue issue = im.getIssueObject("SP-5519"); def lastComment = commentMgr.getComments(issue).last().body //def links = ComponentAccessor.getIssueLinkManager().getInwardLinks(issue.getId()) def links = ComponentAccessor.getIssueLinkManager().getOutwardLinks(issue.getId()) //return links[0].getSourceObject() def output = "" for( l in links) { //use this for Outward links output = output + l.issueLinkType.name + ": " + l.getDestinationObject() + "<br/>" //use this for Inward links //output = output + l.issueLinkType.name + ": " + l.getSourceObject() + "<br/>" // adding comment for the main issue commentMgr.create(l.getSourceObject(),currentUser, "Test------------", false) // adding comment for the linked issue commentMgr.create(l.getDestinationObject(),currentUser, "Test------------", false) } return output |
...