Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagegroovy
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
languagegroovy
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
languagegroovy
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
languagegroovy
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
languagegroovy
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

...