class CopyGithubLabels::CLI
Public Class Methods
parse_args(args)
click to toggle source
# File lib/copy_github_labels/cli.rb, line 26 def parse_args(args) options = { override: false } credentials = {} OptionParser.new do |opts| opts.banner = "Usage: copy_github_labels [OPTION]... SOURCE_REPO TARGET_REPO" opts.on("-f", "--force", "Override existing labels") do options[:override] = true end opts.on("-uUSERNAME", "--username==USERNAME", "GitHub username") do |username| credentials[:login] = username end opts.on("-tTOKEN", "--token==TOKEN", "GitHub access token") do |token| credentials[:access_token] = token end opts.on("-h", "--help", "Print help") do puts opts exit end end.parse!(args) { args: args, credentials: credentials, options: options } end
run(args)
click to toggle source
# File lib/copy_github_labels/cli.rb, line 6 def run(args) parsed_options = parse_args(args) options = parsed_options.fetch(:options) credentials = parsed_options.fetch(:credentials) args = parsed_options.fetch(:args) if args.length != 2 puts parse_args(%W(--help)) else source, target = args if credentials[:login] credentials[:password] = TTY::Prompt.new.mask("GitHub account password: ") end CopyGithubLabels::Client.new(credentials) .copy_labels(source, target, options.slice(:override)) end end