Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

API Adding a comment with a transition message

When I use the API to apply a transition I don't seem to be able to attach a comment to the issue altough the API documentation clearly says I should be (https://docs.atlassian.com/jira/REST/latest/#idp2074672)

Here is the JSON I'm trying to send via POST:

{
    "update": {
        "comment": [
            {
                "add": {
                    "body": "Some comment"
                }
            }
        ]
    },
    "fields": {
        
    },
    "transition": {
        "id": "1"
    }
}

The issue is being moved without problems and I don't see any errors in the response either, it feels like the method is just broken. Any suggestions? Thanks!

10 answers

1 accepted

0 votes
Answer accepted

It seems the problem resolved itself although I haven't touched the code in a while. It was possibly a temporary issue with Atlassian's webservice. Thanks for the suggestions anyways.

Actually, the problem that you mention is still valid, I couldn't add comment while doing the transition.

If you are trying to add a comment on any transition and facing problem in showing the comment because Comment field is not present on that transition so as a Solution for this, JIRA has a provision to add a screen on that transition with a Comment field on that screen. Then you will be able to see the comment in the comment section of that issue.

It will work fine then.

You do not have to make a custom screen for every transition. You can select the Default Screen and that should get all the fields, including Comments field. 

i can able to add comment with your JSON which is

{ "update": { "comment": [ { "add": {"body": "Bug has been fixed."} }]},"fields": {}, "transition": { "id": "21" }}

how your trying to update? if you are using any client can you post your client code?

I got the same result using a browser-based REST client like postman and writing an API service myself. I doubt it has anything to do with client code as the issue is being transitioned just fine. I also double checked the API user permissions and it does have right to insert comments. Is it possible that I need to enable something in the settings to make it work?

the following client code i have used test REST

package com.rest.client;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;

public class RESTclient {

	public static void main(String[] args) {
		try {
			Client client = Client.create();			
			client.addFilter(new HTTPBasicAuthFilter("admin", "admin"));
			WebResource webResource = client.resource("http://LOCALHOST:8080/rest/api/2/issue/JIRA-100/transitions");		
		String input="{ \"update\": {\"comment\": [ { \"add\": {\"body\": \"Testing.\"} }]},\"fields\": {}, \"transition\": { \"id\": \"21\" }} ";	
			ClientResponse response = webResource.type("application/json").post(ClientResponse.class, input);	
			String output = response.getEntity(String.class);
			System.out.println("Output from Server .... \n");
			System.out.println(output);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

I still believe it has nothing to do with client, but anyways here is my code:

http = Net::HTTP.new API_HOST, 443
http.use_ssl = true
req = Net::HTTP::Post.new "/rest/api/2/issue/JIRA-123/transitions", initheader = {'Content-Type' =>'application/json'}
req.basic_auth USERNAME, PASSWORD
# Load in request body template file
renderer = ERB.new File.new("transition.erb").read, nil, "%"
# Substitute variables with values and set result as the body
req.body = renderer.result
http.start do |http|
  response = http.request req
end

Also note that I'm using ondemand so it might has a slightly different configuration.

Im experiencing this issues as well, is there a fix?

I would love a resolution to this issue!

Same with me. The issue transits, but there is no comment. I do have Comment field on the screen of this transition ID.

+ 1 more thing: API now seems to not accept basic text content (like {"body": "Text"}), but it works with more complicated "document" format (like in this example: https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-issue-issueIdOrKey-comment-id-put). By "works" I mean "does not fail and returns HTTP 204". Still there is no comment appear.

Additionally, the methods works separately, if I call /issue/key/comment and issue/key/transitions it works as expected.

0 votes

The issue is still present. You can make the transition with a comment inside the request, but only the transition will be processed, the comment not.

Suggest an answer

Log in or Sign up to answer
TAGS

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you