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!
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.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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 must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Except that there's no Comment field that you can add to a screen.
Proof: https://confluence.atlassian.com/jirakb/how-to-add-a-comment-during-a-transition-779160682.html
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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(); } } }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.