User Tools

Site Tools


post_functions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
post_functions [2017/06/01 11:13]
pawel created
post_functions [2018/06/27 13:03] (current)
root
Line 14: Line 14:
         "This is my comment",         "This is my comment",
         false)          false) 
 +</code>
 +
 +==== Update Fix Version/s field with first Unreleased version if there isn't a version already there or give error message ====
 +
 +<code java>
 +import com.atlassian.jira.component.ComponentAccessor
 +import com.onresolve.scriptrunner.runner.util.UserMessageUtil
 +
 +def versionManager = ComponentAccessor.getVersionManager()
 +def projectManager = ComponentAccessor.getProjectManager()
 +def project = projectManager.getProjectObjByKey(issue.projectObject.key)
 +def versions = versionManager.getVersions(project)
 +def firstUnreleasedFound = versions.find{! it.released}
 +
 +if (issue.fixVersions.size() == 0){
 +    if (firstUnreleasedFound) {    
 + issue.setFixVersions([firstUnreleasedFound])
 + issue.store()
 + } else {
 +    UserMessageUtil.error("MANUAL INTERVENTION REQUIRED!!! No Unreleased Fix Version Found. Please add a Fix Version manually to this ticket....")
 + }    
 +}
 +</code>
 +
 +==== Set Reporter ID to be a value from a custom field called User ID ====
 +<code java>
 +import com.atlassian.jira.issue.CustomFieldManager
 +import com.atlassian.jira.issue.fields.CustomField
 +import com.atlassian.jira.component.ComponentAccessor
 +
 +CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
 +CustomField cfUID = customFieldManager.getCustomFieldObjectByName("User ID")
 +def cfUIDvalue = issue.getCustomFieldValue(cfUID)
 +
 +issue.reporterId=cfUIDvalue
 +</code>
 +
 +==== Add users to watch list on create or transition ====
 +
 +If you're using this code on issue creation, make sure the script is after the "Create the issue originally" task.
 +
 +<code java>
 +import com.atlassian.jira.component.ComponentAccessor
 +def watcherManager = ComponentAccessor.getWatcherManager()
 +def userManager = ComponentAccessor.getUserManager()
 +def watchUsers = {usernames ->
 +    usernames.each {
 +        def user = userManager.getUserByKey(it.toString())
 +        if (user) {
 +            watcherManager.startWatching(user, issue)
 +        }
 +        
 +    }
 +}
 +def users = ["abc", "def", "ghi"]
 +if (issue.projectObject.key == 'KEY') {
 +    watchUsers(users)
 +}
 +</code>
 +
 +=== Set custom text field value in field Approval Status with date/time & currentUser on POST transition ===
 +
 +<code java>
 +import com.atlassian.jira.component.ComponentAccessor
 +import com.atlassian.jira.issue.fields.CustomField
 +//Define cfm
 +def cfm = ComponentAccessor.getCustomFieldManager()
 +//Set custom text field for Text field called "Approval Status"
 +def cfApprovalStatus = cfm.getCustomFieldObjectByName("Approval Status")
 +def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
 +def currentDate = new Date().format( 'yyyy-MM-dd hh:mm a' )
 +def statusMessage = "Approved by "+currentUser+" at "+currentDate
 +issue.setCustomFieldValue(cfApprovalStatus,statusMessage)
 +</code>
 +
 +=== Set "Awaiting Approval" message in field "Approval Status" if there is a value in "Selected Approver" user picker field ===
 +<code java>
 +import com.atlassian.jira.component.ComponentAccessor
 +import com.atlassian.jira.issue.fields.CustomField
 +//define cfm
 +def cfm = ComponentAccessor.getCustomFieldManager()
 +
 +// get value for "Selected Approver"  and set status accordingly
 +def cfApprovalStatus = cfm.getCustomFieldObjectByName("Approval Status")
 +def SelApp = cfm.getCustomFieldObjectByName("Selected Approver")
 +def SelAppValue = issue.getCustomFieldValue(SelApp)
 +//If there is a value in the Selected Approver, set value in Approval Status
 +if (SelAppValue){
 + issue.setCustomFieldValue(cfApprovalStatus,"Awaiting Approval")
 +}
 +</code>
 +
 +=== Additional actions performed on Issue Clone post function ===
 +
 +<code java>
 +def cfD = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Deployers'}
 +def cfS = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Start Date'}
 +def cfE = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'End Date'}
 +
 +issue.setCustomFieldValue(cfD, null)
 +issue.setCustomFieldValue(cfS, null)
 +issue.setCustomFieldValue(cfE, null)
 +
 +issue.summary = 'Available for use'
 +
 +import com.onresolve.scriptrunner.runner.util.UserMessageUtil
 +
 +UserMessageUtil.success('So... you think you can dance? :)')
 +</code>
 +
 +=== Update Select List (Drop Down) field Status with value Waiting Approval ===
 +
 +<code java>
 +import com.atlassian.jira.component.ComponentAccessor
 +def cfSelect = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("Status")
 +def cfConfig = cfSelect.getRelevantConfig(issue)
 +def value = ComponentAccessor.optionsManager.getOptions(cfConfig)?.find {
 +    it.toString() == 'Waiting Approval'
 +}
 +issue.setCustomFieldValue(cfSelect, value)
 </code> </code>
post_functions.1496329982.txt.gz · Last modified: 2017/06/01 11:13 by pawel