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

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,559,044
Community Members
 
Community Events
184
Community Groups

post an issue to JIRA from confluence using REST API

I have a form on a confluence page that gets some information from a user and creates an issue on a JIRA server using REST API . I tried all of the things I could find online and still I cant get what I want.  Here is all the things I've tried so far:

FYI: 

  • Confluence and JIRA are linked together.
  • I am not in a position to change any server configurations on any of the servers.
  • I use Jquery.ajax

1. Directly submitting data as JSON using a POST request using simple Authentication: 

[jira-domain]/rest/api/2/issue
  • Outcome: ONLY works on Internet explorer because both of the domains are in the intranet. for other browsers, failing because of  CORS (Cross-Origin Resource Sharing) 

 

2. Using Confluence's API and JIRA's application ID to post requests: (this only works for GET requests)

[confluence-domain]/plugins/servlet/applinks/proxy?appId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&path=[jira-domain]/rest/api/2/issue
  • Outcome: I always get an HTTP 400 Bad request.

 

3.  Using ANOTHER Confluence's API and JIRA's application ID to post requests:

[confluence-domain]/rest/jira-integration/1.0/issues?applicationId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Note: Json must be an array of issues.

  • Outcome: my JSON contains 2 fields "duedate" and "assignee".  I get the following errors:
"Field 'duedate' cannot be set. It is not on the appropriate screen, or unknown."
"Field 'assignee' cannot be set. It is not on the appropriate screen, or unknown."

 I deleted these 2 fields from my JSON and I could sucessfully create an issue. BUT these 2 fields are very important and I need them,

after some investigation, I realized that a normal JIRA user cannot set these 2 fields on the jira web interface. (eventhough the same user could set them using the 1st solution from above). I do not want to and cannot get users higher rights. 

 

 

------------

 

So can anyone please help me with this problem? 

 

1 answer

1 accepted

1 vote
Answer accepted
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
Nov 07, 2017

REST respects the issue setup for the users, so you're not going to get anywhere unless you either stop sending due date and assignee, or you enable the users to set them in the UI.

On point 1, where you could set them, it wasn't using the same user.

you are right! assuming the user has the permissions, solution 1 and 3 are working correctly. 

What about option 2? For me option 1 and 3 are giving HTTP 500, but options 2 seems to be working with 'GET' calls at least:

$.ajax({
url: '<CONFLUENCE URL>/plugins/servlet/applinks/proxy?appId=<APP_ID>&path=<JIRA_URL_ENCODED>%2Frest%2Fapi%2F2%2Fissue%2FISSUE-123',
type: 'get',
contentType: 'application/json',
success: function (resp) { },
});

but the 'POST' requests always fail with HTTP 400 Bad request: "The request sent by the client was syntactically incorrect"

var jiraData = {"fields": {"project": { "key": "PRJ" },"summary": "dummy","description": "test","issuetype": { "name": "Task" }}}

$.ajax({
url: '<CONFLUENCE URL>/plugins/servlet/applinks/proxy?appId=<APP_ID>&path=<JIRA_URL_ENCODED>%2Frest%2Fapi%2F2%2Fissue',
type: 'post',
contentType: 'application/json',
data: JSON.stringify( jiraData ),
success: function (resp) { },
});

I am thinking that the JSON should be formatted/escaped somehow.. any clue?

I use: JIRA v7.2.7, Confluence 6.4.3

I am having the same problem.  Perhaps the Applink doesn’t allow POST??

actually, I just found this posted solution, which is basically to use "escape(escape(myquery))" around the JQL.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events