dotenv_to_ci 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6285da0c0c107f67c996c11897c47fae4bf1afb0
4
- data.tar.gz: 3286148fd8ba4d6ecba0c7c03c82567adaf6d205
3
+ metadata.gz: '08e1e947193384f465a58733f4e68346b8cb18c8'
4
+ data.tar.gz: ae64fb7d6bc010112ccbbf570d7230f2c7f0296a
5
5
  SHA512:
6
- metadata.gz: ea956a4b4cbf4d7ad894d5f37ae8dbc768cec0660936c932524eee60399825c0549afaa6733987e579a229356ef1abd04501781f2f72f84b2768dc6d327924ec
7
- data.tar.gz: 598ec6c003e44c1104efb61de0d101f7f7b7658e445c69a74c84ec14587e0813f7e7f6865c1652aaf3e63b3fd642da0c3f2957ea9947599aaf4a7431442560f8
6
+ metadata.gz: eaa4ad6d41284ae4f476156be6fdbd6ff23d00ee93f9388a5c532f8e4bc9cf91344fecb26309096b3f95eaae488441d680766ab71dad9c095fbb4a43cba7801c
7
+ data.tar.gz: 61b96f99efa0beb11c07e3375edfb4724c27db189e8e2d3535937b7aab1396159186c1fc93495969349c6527c405aea7d4fc55c752a9cf9f414473122a9bd88d
data/bin/dotenv_to_ci ADDED
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.push File.expand_path('../../lib', __FILE__)
4
+
5
+ require 'commander/import'
6
+ require 'dotenv_to_ci'
7
+
8
+ program :name, 'dotenv_to_ci'
9
+ program :version, DotenvToCI::VERSION
10
+ program :description, 'Set environment variables on your CI provider'
11
+
12
+ global_option('--verbose') { $verbose = true }
13
+ default_command :help
14
+
15
+ command :circleci do |c|
16
+ c.syntax = 'dotenv_to_ci circleci'
17
+ c.description = 'Set environment variables on CircleCI'
18
+ c.option '-d', '--dotenvs STRING', String, 'Dotenv file name(s) (ex: .env, .env.secret)'
19
+ c.option '-T', '--token STRING', String, 'API token'
20
+ c.option '-V', '--vcs STRING', String, 'VCS (allowed: github, bitbucket)'
21
+ c.option '-u', '--username STRING', String, 'Username'
22
+ c.option '-p', '--project STRING', String, 'Project'
23
+ c.action do |args, options|
24
+ config = {
25
+ provider: 'circleci',
26
+ dotenvs: options.dotenvs,
27
+ token: options.token,
28
+ vcs: options.vcs,
29
+ username: options.username,
30
+ project: options.project
31
+ }
32
+
33
+ dotenv_to_ci = DotenvToCI::CircleCI.new(config)
34
+ dotenv_to_ci.run!
35
+ end
36
+ end
Binary file
Binary file
data/lib/dotenv_to_ci.rb CHANGED
@@ -2,78 +2,74 @@ require 'dotenv'
2
2
  require 'json'
3
3
  require 'rest-client'
4
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}"
5
+ module DotenvToCI
6
+ class CircleCI
7
+
8
+ attr_accessor :dotenvs
9
+ attr_accessor :provider
10
+ attr_accessor :token
11
+ attr_accessor :vcs
12
+ attr_accessor :username
13
+ attr_accessor :project
14
+ attr_accessor :verbose
15
+
16
+ def initialize(options)
17
+ @dotenvs = options[:dotenvs]
18
+ @provider = options[:provider]
19
+ @token = options[:token]
20
+ @vcs = options[:vcs]
21
+ @username = options[:username]
22
+ @project = options[:project]
23
+ @verbose = options[:verbose]
24
+
25
+ load_from_env
26
+
27
+ if $verbose
28
+ puts self.inspect
29
+ end
28
30
  end
29
- end
30
31
 
31
- def load_from_env
32
- if @provider == "circleci"
33
- @token ||= ENV["CIRCLECI_TOKEN"]
32
+ def load_from_env
33
+ if @provider == "circleci"
34
+ @token ||= ENV["CIRCLECI_TOKEN"]
35
+ end
34
36
  end
35
- end
36
37
 
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}"
38
+ def run!
39
+ verify_options!
40
+ envs = parse_envs(@dotenvs)
41
+ send_to_circleci(envs)
52
42
  end
53
43
 
54
- return envs
55
- end
44
+ def verify_options!
45
+
46
+ end
56
47
 
57
- def send_to_circleci(envs)
58
- envs.each do |k,v|
59
- payload = {
60
- name: k,
61
- value: v
62
- }
48
+ def parse_envs(dotenv_paths)
49
+ return Dotenv.parse(dotenv_paths)
50
+ end
63
51
 
64
- if verbose
65
- puts "Setting: #{payload}"
52
+ def send_to_circleci(envs)
53
+ envs.each do |k,v|
54
+ payload = {
55
+ name: k,
56
+ value: v
57
+ }
58
+
59
+ if $verbose
60
+ puts "Setting key=#{k}} value=#{v}"
61
+ end
62
+
63
+ resp = RestClient::Request.execute(
64
+ method: :post,
65
+ url: "https://circleci.com/api/v1.1/project/#{vcs}/#{username}/#{project}/envvar?circle-token=#{@token}",
66
+ payload: payload.to_json,
67
+ headers: { 'Content-Type' => 'application/json' }
68
+ )
66
69
  end
67
70
 
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
- )
71
+ puts "Successfully added: #{envs.keys.join(', ')}"
74
72
  end
75
73
 
76
- puts "Successfully added: #{envs.keys.join(', ')}"
77
74
  end
78
-
79
75
  end
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module DotenvToCI
2
+ VERSION = "0.0.3"
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotenv_to_ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Holtz
@@ -10,6 +10,20 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2019-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: commander
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: dotenv
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -46,11 +60,16 @@ dependencies:
46
60
  version: 1.8.0
47
61
  description: Set dotenv values in your CI provider
48
62
  email: me@joshholtz.com
49
- executables: []
63
+ executables:
64
+ - dotenv_to_ci
50
65
  extensions: []
51
66
  extra_rdoc_files: []
52
67
  files:
53
- - lib/dotenv_to_ci.rb
68
+ - "./lib/.dotenv_to_ci.rb.swp"
69
+ - "./lib/.version.rb.swp"
70
+ - "./lib/dotenv_to_ci.rb"
71
+ - "./lib/version.rb"
72
+ - bin/dotenv_to_ci
54
73
  homepage: https://github.com/joshdholtz/dotenv_to_ci
55
74
  licenses:
56
75
  - MIT