dev-cmd/contributions: Fix single-user handling; be more verbose

- `brew contributions --user=issyl0` was taking forever because it went
  through all maintainers first, because the conditionals were in the
  wrong order.
- This was too quiet, far too quiet, for something that takes so long.
- Now verbose mode tells you what repos it's scanning for a user.
This commit is contained in:
Issy Long 2023-02-22 16:48:31 +00:00
parent dd32c7a92c
commit d40bd0ae3e
No known key found for this signature in database
GPG Key ID: 8247C390DADC67D4

View File

@ -58,7 +58,15 @@ module Homebrew
args.repositories
end
return ofail "CSVs not yet supported for the full list of maintainers at once." if args.csv? && args.user.nil?
if args.user
user = args.user
results[user] = scan_repositories(repos, user, args)
puts "#{user} contributed #{total(results[user])} times #{time_period(args)}."
puts generate_csv(T.must(user), results[user]) if args.csv?
return
end
return ofail "CSVs not yet supported for the full list of maintainers at once." if args.csv?
maintainers = GitHub.members_by_team("Homebrew", "maintainers")
maintainers.each do |username, _|
@ -71,13 +79,6 @@ module Homebrew
results[username] = scan_repositories(repos, username, args)
puts "#{username} contributed #{total(results[username])} times #{time_period(args)}."
end
return unless args.user
user = args.user
results[user] = scan_repositories(repos, user, args)
puts "#{user} contributed #{total(results[user])} times #{time_period(args)}."
puts generate_csv(T.must(user), results[user]) if args.csv?
end
sig { params(repo: String).returns(Pathname) }
@ -139,6 +140,8 @@ module Homebrew
tap.full_name
end
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),
coauthorships: git_log_trailers_cmd(T.must(repo_path), "Co-authored-by", person, args),