web-dev-qa-db-ja.com

REST APIを介してjiraで問題を作成する方法は?

REST AP​​Iを使用してjiraで課題を作成することはできますか?私はドキュメントでこれを見つけませんでした(問題のPOSTはありません)が、可能だと思います。

Wgetまたはcurlの例はNiceです。

35
ymajoros

このURLにPOST

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

このデータ:

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

受信した回答には、あなたのISSUEのIDとキーがあります:

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

認証を忘れないでください。 HTTP-Basicを使用しました。

32
msangel

JIRA 5.0のREST APIには、タスクとサブタスクを作成するためのメソッドが含まれています。

(執筆時点では、5.0はまだリリースされていませんが、 [〜#〜] eap [〜#〜] ページから5.0-m4にアクセスできます。5.0-のcreate-issueのドコm4は ここ )です。

9
Matt Quail

最新リリースバージョン(4.3.3)では、 REST API を使用して実行することはできません。 JIRA SOAP API。を使用して、問題をリモートで作成できます。

例については このページ をご覧くださいJava client。

7
luuuis

より直接的な質問に答えるには、つまりcURLを使用します。

CURLを使用して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/

<Filename>に保存し(Jiraケースごとにフィールドを編集してください)、上記のcURLコマンドを呼び出すフォルダーに保存します。

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

これは動作するはずです。 (エラーが発生した場合、ファイル名のコンテンツが間違っている可能性があることに注意してください)。

3
Elye

**​​このコードを入力(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
Dumithu

これでREST + JSONを使用して問題を作成できます。

課題を作成するために設定できるjsonフィールドを確認するには、 https://jira.Host.com/rest/api/2/issue/createmeta を使用します。

詳細については、JIRAの残りのドキュメントを参照してください。 https://docs.atlassian.com/jira/REST/6.2.4/

2
mateuszb

これにつまずいて、REST API。

issue_dict = {
    'project': {'key': "<Key>"},
    'summary': 'New issue from jira-python',
    'description': 'Look into this one',
    'issuetype': {'name': 'Test'},
}
new_issue = jira.create_issue(issue_dict)

new_issueは既存の課題を返し、作成しません。

1
JP Hochbaum

REST APIで課題データを送信するには、課題の詳細で構成される有効なJSON文字列を作成する必要があります。

JSON文字列の基本的な例:

 {“fields” : { “project” : { “key” : “@KEY@” } , “issuetype” : { “name” : “@IssueType@” } } }

次に、JIRAへの接続を確立し、ユーザー認証を確認します。認証が確立されたら、POST the REST API + XMLHTTPメソッドを介したJSON文字列。 。

したがって、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

完全なVBAの例はこちら をチェックアウトできます。

1
cyboashu

課題を作成するには時間推定値およびassignそれを自分自身に、これを使用してください:

  1. アトラシアントークン を生成します

  2. Base64でエンコードされた認証トークンを生成して保存します。

    export b64token="$(echo "<your_email>:<generated_token>" | openssl base64)"

  3. POSTリクエストを作成:

curl -X POST \
  https://<your_jira_Host>.atlassian.net/rest/api/2/issue/ \
     -H 'Accept: */*' \
     -H 'Authorization: Basic $b64token \
     -d '{
       "fields":{
         "project":{
           "key":"<your_project_key (*)>"
         },
         "issuetype":{
           "name":"Task"
         },
         "timetracking":{
           "remainingEstimate":"24h"
        },
         "assignee":{
           "name":"<your_name (**)>"
       },
       "summary":"Endpoint Development"
     }
   }'

備考:

(*)通常、次のようなプロジェクト記述の短い大文字のバージョン:... atlassian.net/projects/UP/。

(**)JIRA名がわからない場合は、https://<your_jira_Host>.atlassian.net/rest/api/2/search?jql=project=<any_project_name>に対して上記と同じ認証でcURL GETし、issues.fields.assignee.nameを探します。

0
jzzfs