User Tools

Site Tools


post_functions

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
post_functions [2018/01/11 17:07]
pawel [Update Fix Version/s field with first Unreleased version]
post_functions [2018/06/27 13:03] (current)
root
Line 16: Line 16:
 </code> </code>
  
-==== Update Fix Version/s field with first Unreleased version ====+==== Update Fix Version/s field with first Unreleased version if there isn't a version already there or give error message ====
  
 <code java> <code java>
 import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.component.ComponentAccessor
 +import com.onresolve.scriptrunner.runner.util.UserMessageUtil
  
 def versionManager = ComponentAccessor.getVersionManager() def versionManager = ComponentAccessor.getVersionManager()
Line 26: Line 27:
 def versions = versionManager.getVersions(project) def versions = versionManager.getVersions(project)
 def firstUnreleasedFound = versions.find{! it.released} def firstUnreleasedFound = versions.find{! it.released}
-//check if there are versions, then update + 
-if (firstUnreleasedFound) { +if (issue.fixVersions.size() == 0){ 
-      +    if (firstUnreleasedFound) {     
- issue.setFixVersions([firstUnreleasedFound]) + issue.setFixVersions([firstUnreleasedFound]) 
- issue.store()+ 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> </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>
post_functions.1515708421.txt.gz · Last modified: 2018/01/11 17:07 by pawel