# frozen_string_literal: true require "octokit" require_relative "../base" require_relative "../../exception_handler" require_relative "auth" require_relative "../../utils" module Neetob class CLI module Github class Base < CLI::Base include Utils attr_accessor :client def initialize super() auth_client = Auth.new(**read_and_parse_auth_params_from_env) unless auth_client.token_persisted? auth_client.start_oauth2_device_flow end @client = Octokit::Client.new(access_token: auth_client.access_token) end def check_for_apps_and_all_neeto_repos_option(repos, all_neeto_repos) if (repos.nil? && !all_neeto_repos) || (!repos.nil? && all_neeto_repos) ui.error("Please provide either \"repos\" or \"all-neeto-repos\" option.") exit end end private def read_and_parse_auth_params_from_env hash_with_keys_of_string_type = JSON.parse(ENV["AUTH_PARAMS"]) symbolize_keys(hash_with_keys_of_string_type) end end end end end