bin/closed_pull_report
#! /usr/bin/env ruby
# frozen_string_literal: true
require 'octokit'
require 'optparse'
require 'yaml'
require_relative '../lib/hubtrics'
options = { client: {} }
OptionParser.new do |opts|
opts.banner = 'Usage: apply_labels.rb [options]'
opts.program_name = 'Hubtrics: GitHub-based reports and metrics'
# -----------------------------------------------------------------------------
# BEGIN Authentication options
options[:config] = File.expand_path('../.hubtrics.yml', __dir__)
opts.on('-c CONFIG', '--config CONFIG', String, 'Path to config file') do |config|
options[:config] = config
end
config = YAML.load_file(options[:config]).fetch('client', {})
options[:client][:login] = config.fetch('login', nil)
opts.on('--login LOGIN', String, 'Login for your GitHub account') do |login|
options[:client][:login] = login
end
options[:client][:access_token] = config.fetch('access_token', nil)
opts.on('--access-token TOKEN', String, 'OAuth access token for your GitHub account') do |token|
options[:client][:access_token] = token
end
options[:client][:netrc] = config.fetch('netrc', false)
opts.on('--[no-]netrc', 'Use .netrc to connect') do |netrc|
options[:client][:netrc] = netrc
end
# END Authentication option
# -----------------------------------------------------------------------------
opts.on('--repository REPOSITORY', String, 'Repository to run this report against') do |repository|
options[:repository] = repository
end
opts.on('--gist GIST', String, 'Update the Gist specified by the SHA provided') do |gist|
options[:gist] = gist
end
opts.on('-h', '--help', 'Display this screen') do
puts opts
exit
end
end.parse!
client = Hubtrics.client(options[:client])
report = Hubtrics::Reports::ClosedPullReport.new(client, options[:repository])
report.generate
gist = report.save_to_gist(options[:gist])
Hubtrics.say("Report was written to:\n#{gist.html_url}")