Confluence has been updated to ver 6.15.9. In case of any troubles, please contact infra team.

How to convert remote assignee changes to local comments

 
1
0
-1

Hi!

I'd like to get changes in remote assingee value added as a comment in local issue.

Found this: https://docs.idalko.com/exalate/display/ED/How+to+convert+remote+status+changes+to+local+comments

How can I change it to assignee?

And also, can the local issue show the name of current assignee without the assignee being a user in the local jira?


BR,

Marika

    CommentAdd your comment...

    3 answers

    1.  
      1
      0
      -1

      Hi Marika,


      Can you try it this way?

      if (replica.assignee) {
        if (!replica.assignee.equals(previous?.assignee)) {
          // construct the comment
          String message = "${replica.key}: Assignee updated from '${previous?.assignee?.displayName}' to '${replica?.assignee?.displayName}'"
          BasicHubComment hubComment = new BasicHubComment();
          hubComment.setBody(message);
          hubComment.setInternal(false);
          issue.comments += hubComment
        }
        else {
         // construct the comment
         String message = "${replica.key}: Assignee updated from 'Unassigned' to '${replica?.assignee?.displayName}'"
         BasicHubComment hubComment = new BasicHubComment();
         hubComment.setBody(message);
         hubComment.setInternal(false);
         issue.comments += hubComment
        }
      }


      Thanks,


      André

        CommentAdd your comment...
      1.  
        1
        0
        -1

        Hi André!

        I'm getting an error.

        Error Detail Message:

        Script error details: No such property: previous for class: Script2119. Error line: Script2119.groovy:29



        Seems like it's a problem with "previous".


        /Marika


        1. Marika Trygg

          Hi André Leroy-Beaulieu Castro !

          Can it be that Assignee is empty upon Creation of the issue?

          Therefore it has no "previous"?

          Because I get the error when it's a newly created issue, but the script works fine if I enter it and change assignee in an issue that has Assignee set, and I then change it.


          So in the case of "Add comment when status is changed", the script works from start, because the issue always has a status?


          So the script needs to be able to send a comment in local when remote Assignee field goes from "Unassigned" to "Marika".

          Thanks!


          /Marika

        2. André Leroy-Beaulieu Castro
          if (replica.assignee) {
          if (!replica.assignee.equals(previous?.assignee)) {
          // construct the comment
          String message = "${replica.key}: Assignee updated from '${previous?.assignee?.displayName}' to '${replica?.assignee?.displayName}'"
          issue.comments = commentHelper.addComment(message, issue.comments)
          }
          else {
          // construct the comment
          String message = "${replica.key}: Assignee updated from 'Unassigned' to '${replica?.assignee?.displayName}'"
          issue.comments = commentHelper.addComment(message, issue.comments)
          }
          }

          Would this be sufficient for you? Let me know if this works :)
        3. Marika Trygg

          Thank you for this extended script! Almost there! (wink)
          The last thing I need is for the comments to be synced as External comments from remote Software to local ServiceDesk project. Right now they become Internal comments and does not show in the customer portal.


          /Marika

        4. André Leroy-Beaulieu Castro

          Hi Marika,


          Can I see some screenshots of your scripts right now? I want to see if there is any outside logic that might be creating these comments as internal..


          Thanks,


          André

        5. Marika Trygg

          This is how it looks. (Both projects in same Jira instance)

          /Marika

        CommentAdd your comment...
      2.  
        1
        0
        -1

        Hi Marika,


        Thanks for raising this question (smile)


        Outgoing (source side):

        replica.assignee = issue.assignee


        Incoming (destination side):

        if (!replica.assignee.equals(previous?.assignee)) {
          // construct the comment
          String message = "${replica.key}: Assignee updated from '${previous?.assignee?.displayName}' to '${replica?.assignee?.displayName}'"
          issue.comments = commentHelper.addComment(message, issue.comments)
        }


        This would add the display name of the assignee but you can change that to username or email depending on your needs. Let me know if this works for you!


        And also, can the local issue show the name of current assignee without the assignee being a user in the local jira?

        you could set this in a text custom field like so:


        Incoming (destination side):

        issue.customFields."Remote Assignee".value = replica.assignee?.displayName


        Again, you can choose username or email if that's better for you (smile)


        Thanks,


        André

          CommentAdd your comment...