Skip to main content
Example scripts
arrow icon
To homepage
Jira Service Desk
Data centre icon
Data Center

Display the Latest Public Comment in a Text Field

Features
Listeners
Created 1 year ago, Updated 2 month(s) ago
App in script
ScriptRunner For Jira
ScriptRunner For Jira
by Adaptavist
Compatibility
compatibility bullet
Jira Service Desk (8.20 - 8.21)
compatibility bullet
ScriptRunner For Jira (7.0.0)
Language |
groovy
import com.atlassian.jira.bc.issue.comment.property.CommentPropertyService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.comments.Comment
import groovy.json.JsonSlurper

final SD_PUBLIC_COMMENT = 'sd.public.comment'
final textFieldName = '<TEXT_FIELD_NAME>'

def issue = event.issue as MutableIssue
def issueEvent = event as IssueEvent
def user = issueEvent.user
def comment = issueEvent.comment

def customFieldManager = ComponentAccessor.customFieldManager
def issueManager = ComponentAccessor.issueManager
def commentPropertyService = ComponentAccessor.getComponent(CommentPropertyService)

def sampleMultiLine = customFieldManager.getCustomFieldObjectsByName(textFieldName).first()

def isInternal = { Comment cmt ->
    def commentProperty = commentPropertyService.getProperty(user, cmt.id, SD_PUBLIC_COMMENT).entityProperty.orNull

    if (commentProperty) {
        def props = new JsonSlurper().parseText(commentProperty.value) as Map
        props['internal'].toString().toBoolean()
    }
    else {
        null
    }
}

if (comment && !isInternal(comment)) {
    issue.setCustomFieldValue(sampleMultiLine, comment.body)
    issueManager.updateIssue(user, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
}
Having an issue with this script?
Report it here