Assign issue with comment in JIRA API not works

Ramesh Udari1 October 23, 2019

In the IssueService API it says "The issue will be saved and re-indexed, the comment, if provided, will be added". What comment does it refer to? I'm looking for a way to post a comment when an issue is assigned through my plugin.  When i tried with below code assigning to new user works, but comment is not added. Is it bug in API or i am missing something here.

 

{code}

IssueService.AssignValidationResult assignValidationResult = null;
IssueService issueService = ComponentAccessor.getIssueService();
ComponentAccessor.getJiraAuthenticationContext().setLoggedInUser(appUser);
IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();
issueInputParameters.setComment(commentString);
issueInputParameters.setAssigneeId(assigneeUser.getName());
assignValidationResult = issueService.validateAssign(user, issue.getId(), assigneeUser.getName());

if(assignValidationResult.isValid())
{
IssueService.IssueResult result = issueService.assign(user, assignValidationResult);
if (!result.isValid())
{
log.info("Issue Number "+issue.getKey() + " Not Updated with provided assignee value");

{code}

1 answer

0 votes
Aleksandr Zuevich
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 24, 2019

Hi @Ramesh Udari1 ,

I also don't understand what comment does it refer to. But you can use validateUpdate instead of validateAssign:

IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();
issueInputParameters.setComment(commentString);
issueInputParameters.setAssigneeId(assigneeUser.getName());
JiraAuthenticationContext auth = ComponentAccessor.getJiraAuthenticationContext();
ApplicationUser currentUser = auth.getLoggedInUser();
auth.setLoggedInUser(appUser);
try {
IssueService.UpdateValidationResult updateValidationResult = issueService.validateUpdate(user, issue.getId(), issueInputParameters);

if (updateValidationResult.isValid()) {
IssueService.IssueResult result = issueService.update(user, updateValidationResult);
if (!result.isValid()) {
log.info("Issue Number " + issue.getKey() + " Not Updated with provided assignee value");
}
}
} finally {
auth.setLoggedInUser(currentUser);
}

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events