JIRA API: получить epic для проблемы

#jira #jql

#jira #jql

Вопрос:

Есть ли способ, которым я мог бы получить epic для проблемы?

API возвращает много информации о проблеме, но epic не включен.

Я использую JIRA REST API (https://developer.atlassian.com/display/JIRADEV/JIRA REST APIs ).

Комментарии:

1. Вы читали API для поиска ссылок Epic ?

Ответ №1:

Я хотел извлечь эпическое имя для an issue , и это поставило меня в тупик на несколько дней. Ключевым моментом было понять, что an epic — это просто родительская проблема, а имя epic — это summary поле родительского issue элемента.

Итак:

Шаг 1

Найдите пользовательское поле, в котором хранится epic, с помощью editmeta запроса:

https://[your-jira-hostname]/jira/rest/api/2/issue/[issue-number]/editmeta

Это даст что-то вроде приведенного ниже, которое показывает идентификатор пользовательского поля, который нам нужен

 {
  "fields": {
    <SNIP>
    "customfield_12360": {
      "required": false,
      "schema": {
        "type": "any",
        "custom": "com.pyxis.greenhopper.jira:gh-epic-link",
        "customId": 12360
      },
      "name": "Epic Link",
      "operations": [
        "set"
      ]
    }
    <SNIP>
  }
}
  

Шаг 2

Запросите вашу проблему, извлекая значение пользовательского поля

https://[your-jira-hostname]/jira/rest/api/2/issue/[номер проблемы]?fields=customfield_12360,сводка

если наша проблема JIRA-34 , скажем, это даст что-то вроде

 {
  "expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
  "id": "39080",
  "key": "JIRA-34",
  "fields": {
    "summary": "Write heavily upvoted answers for stack overflow",
    "customfield_12360": "JIRA-33"
  }
}
  

Шаг 3

Теперь мы знаем номер проблемы нашего epic JIRA-33 , так что теперь запросите epic…

https://[your-jira-hostname]/jira/rest/api/2/issue/JIRA-33?поля = сводка

 {
      "expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
      "id": "39080",
      "key": "JIRA-33",
      "fields": {
        "summary": "Improve StackOverflow reptuation"
      }
    }
  

Название epic для JIRA-34 — «Улучшить перестановку стекового потока»

Выполнено.

Комментарии:

1. Приятно! Я не уверен, поддерживалось ли это в API в то время. Хорошая находка!

2. Вместо шага 1 вы можете узнать пользовательское поле epic link, запросив API пользовательских полей напрямую, не требуя ключа / идентификатора проблемы : /rest/api/3/field/search?type=customamp;query=Epic Link . Это полезно, если вам нужно извлечь ссылки epic, например, из вызова API поиска проблем. Документы API здесь: developer.atlassian.com/cloud/jira/platform/rest/v3 /…

Ответ №2:

Чтобы получить ключ epic для решения проблемы:

Отправьте запрос по адресу: /issue/ISSUE-NUMBER

И посмотрите на тело ответа:

 {
    ...,
    fields: {
        ...,
        customfield_11300: ... <- here, the epic should be listed. The number can be different
    }
}
  

Комментарии:

1. Здравствуйте. Интересно, могли бы вы указать какие-либо сведения о том, почему это так, или где было бы задокументировано точное пользовательское поле (и как узнать, будет ли оно другим).

2. Я действительно не знаю, документация в то время была не так хороша. Возможно, попробуйте заглянуть в API Greenhopper.

3. Пользовательские поля, скорее всего, будут меняться для каждого экземпляра jira. Это означает, что пользовательское поле, в котором отображается ваша ссылка epic, будет отличаться от моего. Мой customfield_10101 , например. Так что это ненадежный способ получения ссылки epic.

Ответ №3:

у @fiat есть очень четкие шаги, чтобы найти пользовательское поле и сопоставление epic. В моем сценарии весь экземпляр jira использует то же пользовательское поле, что и epic. Поэтому мне не нужно будет повторять эти шаги для сопоставления для каждого проекта. Надеюсь, это может помочь.

Ответ №4:

Согласно https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-fields / , вы можете вызвать API /rest/api/3/field , затем вы можете получить такие данные, как:

 [
  {
    "id": "customfield_10014",
    "key": "customfield_10014",
    "name": "Epic Link",
    "untranslatedName": "Epic Link",
    "custom": true,
    "orderable": true,
    "navigable": true,
    "searchable": true,
    "clauseNames": [
      "cf[10014]",
      "Epic Link"
    ],
    "schema": {
      "type": "any",
      "custom": "com.pyxis.greenhopper.jira:gh-epic-link",
      "customId": 10014
    }
  },
]

  

Затем вернитесь к вашей проблеме с данными json:

 issue:
  fields:
    ....
    customfield_10014: OT-5
    ....
  

OT-5 Это ключ Epic.