# 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 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