Получайте информацию о проблемах в диапазоне дат из Github Enterprise API - PullRequest
0 голосов
/ 07 июня 2018

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

issue search

Я пробовал следующеекоманда: curl -H "Authorization: token myToken" "https://github.mydomain.com/api/v3/repos/owner/repo/issues?state=all&since=2015-09-01" > issues.json но это не дает мне того, что мне нужно, потому что параметр since в соответствии с Api docs описывается как:

Только проблемы, обновленные во время или послена этот раз возвращаются.Это временная метка в формате ISO 8601: ГГГГ-ММ-ДДЧЧ: ММ: ССЗ

Заранее спасибо!

1 Ответ

0 голосов
/ 07 июня 2018

Итак, после множества поисков в Google и прочтения документации по Github API, я понял это.Для этого мне понадобился API поиска Github .Первое, что я сделал, это выяснил, какие конечные точки были доступны для меня на моем корпоративном API, как описано в этой публикации в стеке .Для этого я использовал следующую команду:

curl -H "Authorization: token [myToken]" "https://github.mydomain.com/api/v3/"

Одна из конечных точек, возвращаемых в ответе:

"issue_search_url": "https://github.mydomain.com/api/v3/search/issues?q={query}{&page,per_page,sort,order}"

Используя эту конечную точку, я создал следующую команду, которая дала мне то, что мне было нужно:

curl -H "Authorization: token [myToken]" "https://github.mydomain.com/api/v3/search/issues?page=1&per_page=100&sort=created&order=asc&q=repo:[Owner]/[RepoName]+is:issue+created:>=2015-09-01"

Давайте разберем параметры (что угодно после знака?):

  • page=1&per_page=100: по умолчанию количество результатов для этого запроса составляет 30 на страницу.В моем случае у меня было 664 результата.Поэтому мне нужно было сделать несколько запросов, указав, какую страницу (page=1) и сколько результатов я хотел получить для этого запроса (per_page=100), пока я не получу их все.В моем случае я делал 7 запросов с указанным выше URL каждый раз, когда менял номер страницы.Для получения дополнительной информации см. Github документы по нумерации страниц
  • &sort=created&order=asc: сортировка по дате создания в порядке возрастания (сначала самая старая).См. API поиска Github и Проблемы с поиском
  • q=repo:[Owner]/[RepoName]+is:issue+created:>=2015-09-01: сформируйте поисковый запрос (q=), ограничивающий поиск созданными проблемами (is:issue)с 2015-09-01 и далее (created:>=2015-09-01) в поле «Владелец / имя репо» (repo:[Owner]/[RepoName])

Надеюсь, это поможет другим, поскольку я обнаружил, что документы Github api не очень ясны.

...