как создать проблему в jira через остальные API? - PullRequest
34 голосов
/ 04 мая 2011

Можно ли создать проблему в jira с помощью REST API? Я не нашел этого в документации (нет POST для проблем), но я подозреваю, что это возможно.

Было бы неплохо сделать wget или curl.

Ответы [ 9 ]

32 голосов
/ 03 мая 2012

POST к этому URL

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"
   }
  }
}

В полученном ответе будет ID и ключ вашего ВЫПУСКА:

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

Донзабудь об авторизации.Я использовал HTTP-Basic.

9 голосов
/ 07 сентября 2011

REST API в JIRA 5.0 содержит методы для создания задач и подзадач.

(На момент написания 5.0 еще не выпущен, хотя вы можете получить доступ к 5.0-m4 из EAP page. Документ для создания вопроса в 5.0-m4: здесь ).

7 голосов
/ 05 мая 2011

Начиная с последней выпущенной версии (4.3.3) это невозможно сделать с помощью REST API . Вы можете создавать проблемы удаленно, используя JIRA SOAP API.

См. эту страницу для примера клиента Java.

3 голосов
/ 12 марта 2015

Чтобы ответить на вопрос более прямо, то есть с помощью 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/

и сохраните его в своем (пожалуйста, отредактируйте поле в соответствии с вашим регистром Jira) и сохраните в папке, которую вы называете командой cURL выше.

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

Это должно работать.(обратите внимание, иногда, если это ошибки, возможно, ваш контент в имени файла неверен).

3 голосов
/ 10 сентября 2014

** поставить этот код (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();
            }




        }
2 голосов
/ 08 мая 2014

Теперь вы можете использовать REST + JSON для создания проблем.

Чтобы проверить, какие поля json вы можете установить для создания проблемы, используйте: https://jira.host.com/rest/api/2/issue/createmeta

Для получения дополнительной информации см. Остальную документацию JIRA: https://docs.atlassian.com/jira/REST/6.2.4/

1 голос
/ 10 ноября 2018

Просто спотыкаюсь об этом, и у меня возникают проблемы с созданием проблемы через 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 голос
/ 03 сентября 2014

Чтобы отправить данные о проблеме с помощью REST API, нам нужно создать допустимую строку JSON, содержащую сведения о проблеме.

Базовый пример строки JSON:

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

Теперь установите соединениев JIRA и проверьте аутентификацию пользователя.Как только аутентификация установлена, мы отправляем строку REST API + JSON через метод XMLHTTP.Обработайте ответ и проинформируйте пользователя об успехе или неудаче ответа.

Итак, здесь 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 здесь

0 голосов
/ 11 июня 2019

Чтобы создать проблему , установите оценку времени и назначьте ее себе, используйте это:

  1. Создание токена Atlassian

  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, cURL GET с помощьюто же самое Разрешение, что и выше https://<your_jira_host>.atlassian.net/rest/api/2/search?jql=project=<any_project_name> и ищите issues.fields.assignee.name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...