如何从 ruby 的 octokit github 客户端获取所有已部署的提交?
How to fetch all the deployed commits from octokit github client for ruby?
我正在使用 ruby Ocktokit
来获取部署 (list_deployments)。目前它只列出了最新的 30 个。我需要根据有效负载对其进行过滤,并且需要访问迄今为止的所有部署。
GithubApi提供了link在header访问下一页。 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)
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
我正在使用 ruby Ocktokit
来获取部署 (list_deployments)。目前它只列出了最新的 30 个。我需要根据有效负载对其进行过滤,并且需要访问迄今为止的所有部署。
GithubApi提供了link在header访问下一页。 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)
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