Быстрый поиск всех запросов Bitbucket Pull для проблем с Jira

Я хотел бы найти все запросы на вытягивание по проблеме Jira. Очевидно, это возможная задача, поскольку сама Jira показывает информацию:

Скриншот интеграции Jira / Bitbucket

В настоящее время я получаю список всех объединенных и открытых запросов на вытягивание через API Bitbucket, и шаблон сопоставляет их с моим номером проблемы. Это отнимает много времени, тем более что мне приходится загружать запросы на вытягивание партиями по 100 (максимальный предел в Bitbucket), а наш код разбросан по нескольким репозиториям.

Существует вызов API интеграции для bitbucket: /rest/jira/1.0/issues//commit, который покажет все коммиты по этой проблеме, но ... / pullrequests недоступен.

Кто-нибудь знает, как Jira извлекает эту информацию?


person Alexander Reifinger    schedule 14.02.2017    source источник
comment
Вы узнали что-нибудь еще, потому что теперь я столкнулся с той же проблемой.   -  person Roemer    schedule 12.12.2017
comment
Нет, сейчас я кэширую информацию.   -  person Alexander Reifinger    schedule 19.12.2017


Ответы (3)


https://github.com/jira-node/node-jira-client/issues/142

JIRA имеет недокументированный API "dev-status", который обычно используется, когда JIRA интегрирована с другими инструментами, такими как Stash (Bitbucket Server).

Сначала вам нужно получить jiraIssueNumericId. Например, вы можете получить его, получив информацию о проблеме через Jira API, которая хорошо документирована. Поле, которое вы ищете, - «id». https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/?_ga=2.203378385.1940451621.1522669776-298439511.1476796418#api/2/issue-getIssue)

О методах этого API статуса разработчика Jira:

  1. Чтобы получить информацию о ветвях и запросах на вытягивание, связанных с проблемой: https://{jiraHost}/rest/dev-status/latest/issue/detail?issueId={jiraIssueNumericId}&applicationType=stash&dataType=pullrequest
  2. Чтобы получить информацию о коммитах, связанных с проблемой: https://{jiraHost}/rest/dev-status/latest/issue/detail?issueId={jiraIssueNumericId}&applicationType=stash&dataType=repository
  3. Чтобы получить сводку: https://{jiraHost}/rest/dev-status/latest/issue/summary?issueId={jiraIssueNumericId}

P.S. Этот API фактически используется на странице задач в Jira. Попробуйте щелкнуть ссылку pull-request, чтобы открыть всплывающее окно со списком. В панели разработки вашего браузера во вкладке Network вы найдете XHR-вызовы или эти URL-адреса.

P.P.S. И да, я тоже изо всех сил пытался найти эту информацию, и я понятия не имею, почему она недокументирована.

person Pigalev Pavel    schedule 03.04.2018
comment
Пытался получить персональные данные по вопросу. Вот что у меня получилось: imgur.com/a/Uqcep. Помимо того, что prs является пустым массивом, а информация находится в _instance, как мне получить pr с этим идентификатором? - person Alexander Reifinger; 05.04.2018
comment
@AlexanderReifinger Я думаю, что проблема, с которой вы ее пытаетесь, не имеет связанных с ней pullRequests. Я предлагаю вам попытаться заглянуть на вкладку «Сеть», как я писал в ps. Просто откройте панель разработки в своем браузере, выберите вкладку «Сеть», выберите XHR, а затем нажмите N запросов на вытягивание, и вы увидите всплывающее окно со списком извлекающих запросов. запросы, и вы также увидите xhr-call на вкладке сети, подобной этой: imgur.com/a/oaH9I - person Pigalev Pavel; 09.04.2018

Похоже, эта конечная точка раньше документировалась в API https://developer.atlassian.com/static/rest/stash/2.6.0/stash-jira-integration-rest.html#idp21856

Но я почти уверен, что это внутренний API, поэтому не стоит полагаться на его стабильность. В текущей документации это не указано https://developer.atlassian.com/static/rest/bitbucket-server/4.13.0/bitbucket-rest.html

person Ben    schedule 15.02.2017
comment
Спасибо, что посмотрели. Но эта конечная точка - Список всех проблем для запроса на вытягивание. Мне нужен другой - все запросы на вытягивание по проблеме. - person Alexander Reifinger; 15.02.2017

Правильный API:

https://{jiraHost}/rest/dev-status/latest/issue/details?issueId={jiraIssueNumericId}&applicationType=<scm>&dataType=<option>

где <scm> может быть bitbucket, stash или github
, а dataType может быть веткой или pullrequest

person mdarwish    schedule 17.07.2021