dotenv_to_ci 0.0.2 → 0.0.3

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