utils/github: Add date filtering to the commit author API query

- I missed this off the original implementation - oops. This gives parity with
  the `git log` implementation.
This commit is contained in:
Issy Long 2023-02-22 23:01:38 +00:00
parent bfff981f1a
commit 28a2a6ea43
No known key found for this signature in database
GPG Key ID: 8247C390DADC67D4
2 changed files with 7 additions and 3 deletions

View File

@ -143,7 +143,7 @@ module Homebrew
puts "Determining contributions for #{person} on #{repo_full_name}..." if args.verbose?
data[repo] = {
commits: GitHub.repo_commit_count_for_user(repo_full_name, person),
commits: GitHub.repo_commit_count_for_user(repo_full_name, person, args),
coauthorships: git_log_trailers_cmd(T.must(repo_path), person, "Co-authored-by", args),
signoffs: git_log_trailers_cmd(T.must(repo_path), person, "Signed-off-by", args),
}

View File

@ -700,11 +700,15 @@ module GitHub
output[/^Status: (200)/, 1] != "200"
end
def repo_commit_count_for_user(nwo, user)
def repo_commit_count_for_user(nwo, user, args)
return if Homebrew::EnvConfig.no_github_api?
params = ["author=#{user}"]
params << "since=#{DateTime.parse(args.from).iso8601}" if args.from
params << "until=#{DateTime.parse(args.to).iso8601}" if args.to
commits = 0
API.paginate_rest("#{API_URL}/repos/#{nwo}/commits", additional_query_params: "author=#{user}") do |result|
API.paginate_rest("#{API_URL}/repos/#{nwo}/commits", additional_query_params: params.join("&")) do |result|
commits += result.length
end
commits