如何从Ruby的octokit github客户端获取所有已部署的提交?

时间:2018-12-19 06:11:06

标签: ruby github-api octokit

我正在使用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 :(得分:0)

Octokit提供了pagination,而且还提供了自动分页功能。

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

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

更新:尽管有文档记录,但我在本地对此进行了测试,并以这种方式进行分页,但是对于部署而言,它无法正常工作。您需要手动获取部署。

deployment documentation表示列出所有部署应该是最新版本。

如果这不起作用,则可能需要手动进行:

# 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