2011-05-04 4 views

답변

26

POST는

https://<JIRA_HOST>/rest/api/2/issue/ 

이 데이터 :

{"id":"83336","key":"PROJECT_KEY-4","self":"https://<JIRA_HOST>/rest/api/2/issue/83336"} 

권한 부여에 대해 잊지 마세요 : 접수 대답에

{ 
"fields": { 
    "project": 
    { 
     "key": "<PROJECT_KEY>" 
    }, 
    "summary": "REST EXAMPLE", 
    "description": "Creating an issue via REST API", 
    "issuetype": { 
     "name": "Bug" 
    } 
    } 
} 

는 ID와 문제의 열쇠가 될 것입니다 . 나는 HTTP Basic을 사용했다.

+0

언급 한 인증에 대해 더 자세히 알려 주실 수 있습니까? 프로젝트 소유자의 사용자 이름과 비밀번호를 전달할 필요가 있습니까? 아니면 REST가 URL, 헤더 (json) 및 데이터만으로 POST를 수락합니까? – Tru

+0

"400 Bad Request ... field : 요약을 설정할 수 없습니다"라는 오류 메시지가 나타납니다. – Tru

+0

@Tru yes. HTTP-Basic 자동 화는 [autorization 유형] (http://en.wikipedia.org/wiki/Basic_access_authentication)입니다. AFAIK에는 자동 가능 화를위한 또 다른 가능한 옵션이 있습니다. [manual] (http://docs.atlassian.com/jira/REST/latest/)에서 :'선호되는 인증 방법은 HTTP Basic (SSL 사용시)과 OAuth입니다. 둘 다 JIRA REST API 튜토리얼에 설명되어 있습니다. HTTP 쿠키, 신뢰할 수있는 응용 프로그램 및 os_username/os_password 쿼리 매개 변수를 포함하는 다른 지원되는 메서드가 있습니다. – msangel

6

최신 릴리스 버전 (4.3.3)부터 REST API을 사용할 수 없습니다. JIRA SOAP API를 사용하여 원격으로 이슈를 생성 할 수 있습니다.

예제 Java 클라이언트는 this page을 참조하십시오.

+0

어떤 이유로 (표준 준수가 부족함) soap api는 축에 대한 종속성을 의미합니다. 내 응용 프로그램에서 이것을 소개 할 수 없습니다. 나는 방법이있을 것이라고 확신한다. (아마도 jira 플러그인을 작성한다. 더 좋은 해결책이 없다면 내가 할 것이다.) – ymajoros

9

JIRA 5.0의 REST API는 작업과 하위 작업을 생성하는 메소드를 포함합니다.

(작성시, EAP 페이지에서 5.0-m4에 액세스 할 수 있지만 5.0은 아직 출시되지 않았습니다. 5.0-m4의 작성 문제 용 문서는 here입니다). 이 URL에

2

이제 REST + JSON을 사용하여 문제를 만들 수 있습니다.

는 문제의 사용을 만들기 위해 설정할 수있는 JSON 필드를 확인하려면 다음 https://docs.atlassian.com/jira/REST/6.2.4/

+0

REST API를 사용하여 데이터를 읽는 것 이상의 기능을 수행하는 능력은 JIRA 5.x의 일부였습니다. REST API는 그 이후로 많이 변경되지 않았습니다. – mdoar

1

은 우리가 필요로하는 REST API를 사용하여 문제 데이터를 전송하려면 자세한 내용 https://jira.host.com/rest/api/2/issue/createmeta

을 JIRA의 나머지 문서를 참조하십시오 문제 세부 정보로 구성된 유효한 JSON 문자열을 구성합니다.

JSON 문자열의 기본 예제 :

{“fields” : { “project” : { “key” : “@[email protected]” } , “issuetype” : { “name” : “@[email protected]” } } } 

지금, JIRA에 연결을 설정하고 사용자 인증을 확인합니다. 인증이 완료되면 XMLHTTP 메소드를 통해 REST API + JSON 문자열을 POST합니다. 응답 및 친밀한 사용자가 응답의 성공 또는 실패를 처리합니다.

그래서 여기 JiraService는 XMLHTTP 객체이므로이 경우 엔 EncodeBase64가 암호화 된 문자열을 반환하는 함수 인 문제가 추가됩니다.

Public Function addJIRAIssue() as String 
With JiraService 
    .Open "POST", <YOUR_JIRA_URL> & "/rest/api/2/issue/", False 
    .setRequestHeader "Content-Type", "application/json" 
    .setRequestHeader "Accept", "application/json" 
    .setRequestHeader "Authorization", "Basic " & EncodeBase64 
    .send YOUR_JSON_STRING 

    If .Status <> 401 Then 
     addJIRAIssue = .responseText 
    Else 
     addJIRAIssue = "Error: Invalid Credentials!" 
    End If 

End With 

Set JiraService = Nothing 
End Sub 

당신은 체크 아웃 할 수있는 complete VBA example here

+0

고마워요,하지만 2 년 전에 대답을 받아 들였습니다. API 문서에 관심이있었습니다. VB 예제 (즉, 내가 관심을 가지고 있었던 유일한 것)가 YOUR_JSON_STRING에있는 것이 었습니다. – ymajoros

+1

확실, 문제 없음. VBA와 JIRA가 필요한 링크가 필요할 때 유용하게 사용할 수 있도록 답변을 게시하고 싶었습니다. 나는 당신에게 동의하며 받아 들여진 대답은 완벽합니다. – cyboashu

3

** 컬를 사용하여 더 많은 직접 질문, 즉 대답하기 위해이 코드 (C#을) **

 string postUrl = "https://netstarter.jira.com/rest/api/latest/issue"; 

     var httpWebRequest = (HttpWebRequest)WebRequest.Create(postUrl); 
     httpWebRequest.ContentType = "application/json"; 
     httpWebRequest.Method = "POST"; 
     httpWebRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("JIRAMMS:JIRAMMS")); 

     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
     { 
      string json = @"{""fields"":{""project"":{""key"": ""JAPI""},""summary"": ""REST EXAMPLE"",""description"": ""Creating an issue via REST API 2"",""issuetype"": {""name"": ""Bug""}}}"; 

      streamWriter.Write(json); 
      streamWriter.Flush(); 
      streamWriter.Close(); 

      var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
      using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
      { 
       var result = streamReader.ReadToEnd(); 
      } 




     } 
3

을 넣어.

는 케이스를 만드는 JIRA REST API에 액세스 할 컬을 사용

curl -D- -u <username>:<password> -X POST --data-binary "@<filename>" -H "Content-Type: application/json" http://<jira-host>/rest/api/2/issue/ 

을 사용하고>를 < 파일 이름이 저장 (당신 락스 케이스 당 필드를 편집하십시오) 당신이 전화 폴더에 저장하려면 위의 cURL 명령

{ 
    "fields": { 
     "project": 
     { 
      "key": "<PROJECT_KEY>" 
     }, 
     "summary": "REST EXAMPLE", 
     "description": "Creating an issue via REST API", 
     "issuetype": { 
      "name": "Bug" 
     } 
    } 
} 

이렇게하면됩니다. (때로는 오류가 발생하여 파일 이름의 내용이 잘못되었을 수도 있음).

관련 문제