class DotenvToCI::CircleCI

Attributes

dotenvs[RW]
project[RW]
provider[RW]
token[RW]
username[RW]
vcs[RW]
verbose[RW]

Public Class Methods

new(options) click to toggle source
# File lib/dotenv_to_ci/circleci.rb, line 16
def initialize(options)
  @dotenvs = options[:dotenvs]
  @provider = options[:provider]
  @token = options[:token]
  @vcs = options[:vcs]
  @username = options[:username]
  @project = options[:project]
  @verbose = options[:verbose]

  load_from_env
end

Public Instance Methods

load_from_env() click to toggle source
# File lib/dotenv_to_ci/circleci.rb, line 28
def load_from_env
  if @provider == "circleci"
    @token ||= ENV["CIRCLECI_TOKEN"]
  end
end
parse_envs(dotenv_paths) click to toggle source
# File lib/dotenv_to_ci/circleci.rb, line 44
def parse_envs(dotenv_paths)
  return Dotenv.parse(dotenv_paths)
end
run!() click to toggle source
# File lib/dotenv_to_ci/circleci.rb, line 34
def run!
  verify_options!
  envs = parse_envs(@dotenvs)
  send_to_circleci(envs)
end
send_to_circleci(envs) click to toggle source
# File lib/dotenv_to_ci/circleci.rb, line 48
def send_to_circleci(envs)
  envs.each do |k,v|
    payload = {
      name: k,
      value: v
    }

    if $verbose
      puts "Setting key=#{k} value=#{v}"
    end

    resp = RestClient::Request.execute(
      method: :post,
      url: "https://circleci.com/api/v1.1/project/#{vcs}/#{username}/#{project}/envvar?circle-token=#{@token}",
      payload: payload.to_json,
      headers: { 'Content-Type' => 'application/json' }
    )
  end

  puts "Successfully added: #{envs.keys.join(', ')}"
end
verify_options!() click to toggle source
# File lib/dotenv_to_ci/circleci.rb, line 40
def verify_options!
  
end