docs/list_contributors.rb
#!/usr/bin/env ruby
require 'octokit'
# Provide an Access Token in the OCTOKIT_ACCESS_TOKEN environemnt variable
# to prevent running into the hourly rate-limit.
#
# See also:
# * https://octokit.github.io/octokit.rb/#Authentication and
# * https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/
#
# Example:
# OCTOKIT_ACCESS_TOKEN=11223344556677889900cafebabedeadbeef0000 ruby list_contributors.rb
Octokit.configure do |c|
c.auto_paginate = true
end
excluded_contributors = [
'dependabot-bot',
'dependabot-preview[bot]',
'dependabot[bot]',
'codetriage-readme-bot',
'renovate[bot]',
'renovate-bot'
]
contributors = []
repo_contributors = Octokit.contributors('dropwizard/dropwizard')
repo_contributors.each do |c|
if excluded_contributors.include?(c.login)
next
end
user = Octokit.user(c.login)
contributor = {}
contributor['login'] = user.login
if user.name.nil? then
contributor['name'] = user.login
else
contributor['name'] = user.name
end
contributors << contributor
end
sorted_contributors = contributors.sort_by{ |contributor| contributor['name'].downcase }
sorted_contributors.each do |c|
puts "* :ghuser:`#{c['name']} <#{c['login']}>`"
end