dotenv_to_ci 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/dotenv_to_ci.rb +79 -0
  3. metadata +78 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ed499f22f887b98118af85fb7d02ee45bb6c6919
4
+ data.tar.gz: ad52456a5fd285cf5384f79905c419457ed644b1
5
+ SHA512:
6
+ metadata.gz: f083d94dd39b60fd8fae90cccaffb0bf052ed5286c58b1e4740e02e8354bee79404e05d6e9cb2f09e0325e7eb43c9b64150065fb087f6e91513dbc5fc6e761a9
7
+ data.tar.gz: efcdab0c23310d1fc5c1d67d4040371edcb093ea6ccdb6e55bf0fb598639018ee42474cd47bd9c1292fef7b68cda5271b089dc6e9ad4ebf27e8e3073183c8ba5
@@ -0,0 +1,79 @@
1
+ require 'dotenv'
2
+ require 'json'
3
+ require 'rest-client'
4
+
5
+ class DotenvToCI
6
+
7
+ attr_accessor :dotenvs
8
+ attr_accessor :provider
9
+ attr_accessor :token
10
+ attr_accessor :vcs
11
+ attr_accessor :username
12
+ attr_accessor :project
13
+ attr_accessor :verbose
14
+
15
+ def initialize(options)
16
+ @dotenvs = options[:dotenvs]
17
+ @provider = options[:provider]
18
+ @token = options[:token]
19
+ @vcs = options[:vcs]
20
+ @username = options[:username]
21
+ @project = options[:project]
22
+ @verbose = options[:verbose]
23
+
24
+ load_from_env
25
+
26
+ if verbose
27
+ puts "Config: #{@token}"
28
+ end
29
+ end
30
+
31
+ def load_from_env
32
+ if @provider == "circleci"
33
+ @token ||= ENV["CIRCLECI_TOKEN"]
34
+ end
35
+ end
36
+
37
+ def run!
38
+ verify_options!
39
+ envs = parse_envs(@dotenvs)
40
+ send_to_circleci(envs)
41
+ end
42
+
43
+ def verify_options!
44
+
45
+ end
46
+
47
+ def parse_envs(dotenv_paths)
48
+ envs = Dotenv.parse(dotenv_paths)
49
+
50
+ if verbose
51
+ puts "ENVS: #{envs}"
52
+ end
53
+
54
+ return envs
55
+ end
56
+
57
+ def send_to_circleci(envs)
58
+ envs.each do |k,v|
59
+ payload = {
60
+ name: k,
61
+ value: v
62
+ }
63
+
64
+ if verbose
65
+ puts "Setting: #{payload}"
66
+ end
67
+
68
+ resp = RestClient::Request.execute(
69
+ method: :post,
70
+ url: "https://circleci.com/api/v1.1/project/#{vcs}/#{username}/#{project}/envvar?circle-token=#{@token}",
71
+ payload: payload.to_json,
72
+ headers: { 'Content-Type' => 'application/json' }
73
+ )
74
+ end
75
+
76
+ puts "Successfully added: #{envs.keys.join(', ')}"
77
+ end
78
+
79
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dotenv_to_ci
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Josh Holtz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-05-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dotenv
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.1.1
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 3.0.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 2.1.1
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 3.0.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: rest-client
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.8.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.8.0
47
+ description: Set dotenv values in your CI provider
48
+ email: me@joshholtz.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/dotenv_to_ci.rb
54
+ homepage: https://github.com/joshdholtz/dotenv_to_ci
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.5.2.3
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: dotenv to CI env
78
+ test_files: []