Как получить все развернутые коммиты из gitub-клиента octokit для ruby? - PullRequest
0 голосов
/ 19 декабря 2018

Я использую ruby ​​Ocktokit для получения развертываний (list_deployments).В настоящее время в нем перечислены только последние 30. Мне нужно отфильтровать это на основе полезной нагрузки и получить доступ ко всем развертываниям до даты.

Github Api предоставляет ссылку в заголовке для доступа к следующей странице.Есть ли что-то похожее в Ocktokit?

client = Octokit::Client.new(
  :access_token => ENV.fetch("GITHUB_TOKEN"),
)

repo = "repo_name"
env  = "env_name"
options = {
    :environment => env,
    :task => "task_name"
  }

deployments = client.deployments(repo, options)

1 Ответ

0 голосов
/ 19 декабря 2018

Octokit обеспечивает нумерацию страниц , а также автоматическую нумерацию страниц.

Вы можете сделать что-то вроде:

client.auto_paginate = true
deployments = client.deployments 'username/repository' # same as list_deployments
deployments.length

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

В документации по развертыванию 1011 * указано, что список всех развертываний должен быть доступен в последней версии.

Если это не сработаетвам может понадобиться сделать это вручную:

# fetch your first list of deployments
deployments = client.deployments 'username/repository'

while true
  begin
    deployments.concat client.last_response.rels[:next].get.data
    puts deployments.length
    break if deployments.length > 500
  rescue StandardError
    puts 'quitting'
  end
end

puts deployments.length
...