...
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)
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
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
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 |
Learning:
Knowledge on how script-runner listener works for both cloud and server
Got to understand different scenarios for Jira based on which scripts were written
Basic knowledge on groovy
While setting the value for multi-select system fields always set the values based on “id’s of values” and not “values itself“ in behaviors
While setting the value for single select system fields we can directly give “values” instead of “id’s of values”
script-runner behaviors
While setting the value for single select custom field we have to give “id’s of values” only (can also be directly configured in field setting as these are custom fields)
...