Confluence has been updated to version 6.15.9

JIRA SERVER JIRA CLOUD ZENDESK

By default, Exalate adds a comment, received from the other side on behalf of the proxy user

The comment will look like the following:

You can change this behavior. For example, create the received comment with the original comment author. 

The comment object has a field Executor which can be set to any user. This is how you can impersonate synced comments.

Source side

Outgoing sync 

To send comments to the destination instance use the following script:

replica.comments = issue.comments

Destination side

You can apply the received comment in different ways:

1. Assign original comment author if exists in the local system and create a new user if not found

This method works only for Jira Server.

Incoming sync

  • Check if the author of the comment exists in the local system by doing a user lookup
  • If the author does not exist in the local JIRA, create a new user
  • Assign this user as a comment executor

issue.comments = commentHelper.mergeComments(issue, replica, {
  comment ->
  
  def authorUser = userHelper.getByEmail(comment.author.email)
  
  // set the executor, optionally create the user if the local user is not found
  comment.executor = authorUser ?: userHelper.createUser(comment.author.username, 
                                                     "changeme", //password !
                                                     comment.author.email,
                                                     comment.author.displayName
                                                   )
  comment
})

2. Assign original comment author if exists in the local system, use the proxy user if not found

This method works for Jira Server and Jira Cloud.

Incoming sync

  • Change the comment executor from the proxy user to the original comment author 
  • If the author does not exist in the local JIRA, use the proxy user as an author

replica.addedComments.each { it.executor = nodeHelper.getUserByEmail(it.author?.email) }
replica.changedComments.each { it.executor = nodeHelper.getUserByEmail(it.updateAuthor?.email) }
issue.comments = commentHelper.mergeComments(issue, replica, { it })
Result

The first comment was created by the proxy user, while the second comment was impersonated and the local administrator is the comment executor.

Incoming sync 

replica.addedComments.each { it.executor = nodeHelper.getUser("361777654679") } // replace "361777654679" with the zendesk user id
issue.comments     += replica.addedComments

Check user fields sync for more details.

See also




You are evaluating Refined.