#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.