0

我正在使用 rubyOcktokit​​ 来获取部署(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)
4

1 回答 1

2

Octokit 提供分页,但也提供自动分页。

您也许可以执行以下操作:

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

更新:我在本地对此进行了测试,并以这种方式进行了分页,虽然记录在案,但在部署时并不能按预期工作。您需要手动获取部署。

部署文档表明列出所有部署应该在最新版本中可用。

如果这不起作用,您可能需要手动执行此操作:

# 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
于 2018-12-19T08:22:58.733 回答