rake_circle_ci 0.2.0.pre.1 → 0.2.0.pre.2

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
  SHA256:
3
- metadata.gz: 5a34b2d8b71d4a51032baa2b227165cee58e2fc8f31a4379bf7abbc9010e9aa2
4
- data.tar.gz: 25111f79d2b5ea73b821ad567cbcbc46ffbc3cd87ada411095136612ff6b3499
3
+ metadata.gz: df1940d5edea738730c5de0e2e4195e363e8596e99344ee105e809d8aa2ea79b
4
+ data.tar.gz: e9ad318bee7536ca18ee0cb12888f8799018800aac0337ed6e62f308449f9ced
5
5
  SHA512:
6
- metadata.gz: e03c619ed36c8f2929348d23f3da615b49f73a5d1e60da798ad229061bdec19890575083008845ca7f92e6eb35365729a665c408addaec240153222e0b9abccf
7
- data.tar.gz: 0edeb99e83aec7cdbe5acfe05ee902a4357ce09c95b6f620fdec2d961f968abf69ed816627510ac341040ac0a763ec1b289329d840e14a3941230925cb34ba2a
6
+ metadata.gz: 35de43169c37970c95daf0f62487d0033bcc82b7485fcfb84cf0122025c4430ccf447ad086045c5e95ace25908f3802cadeb663c00959f76a7e2db0970a2b717
7
+ data.tar.gz: 5fe3e61b2d6eafa9fe77bff6a95a7d5eae691c451d861db30e25b2a04c579566049ae77c44f7dad6afbfe94de5f871fb1035ef8408722bdcb1ec2a3fd6bb84fb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_circle_ci (0.2.0.pre.1)
4
+ rake_circle_ci (0.2.0.pre.2)
5
5
  colored2 (~> 3.1)
6
6
  excon (~> 0.72)
7
7
  rake_factory (~> 0.23)
@@ -0,0 +1,43 @@
1
+ require 'json'
2
+ require 'excon'
3
+
4
+ module RakeCircleCI
5
+ class Client
6
+ def initialize(opts)
7
+ @base_url = opts[:base_url]
8
+ @api_token = opts[:api_token]
9
+ @project_slug = opts[:project_slug]
10
+ end
11
+
12
+ def create_env_var(name, value)
13
+ body = JSON.dump(name: name, value: value)
14
+ assert_successful(
15
+ Excon.post(env_vars_url, body: body, headers: headers))
16
+ end
17
+
18
+ private
19
+
20
+ def headers
21
+ {
22
+ "Circle-Token": @api_token,
23
+ "Content-Type": "application/json",
24
+ "Accept": "application/json"
25
+ }
26
+ end
27
+
28
+ def assert_successful(response)
29
+ unless response.status >= 200 && response.status < 300
30
+ host = response.data[:host]
31
+ path = response.data[:path]
32
+ status = response.status
33
+ reason = response.data[:reason_phrase]
34
+ raise "Unsuccessful request: #{host}#{path} #{status} #{reason}"
35
+ end
36
+ response
37
+ end
38
+
39
+ def env_vars_url
40
+ "#{@base_url}/v2/project/#{@project_slug}/envvar"
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,37 @@
1
+ require 'rake_factory'
2
+
3
+ require_relative '../../client'
4
+
5
+ module RakeCircleCI
6
+ module Tasks
7
+ module EnvironmentVariables
8
+ class Provision < RakeFactory::Task
9
+ default_name :provision
10
+ default_description RakeFactory::DynamicValue.new { |t|
11
+ "Provision environment variables on the #{t.project_slug} project"
12
+ }
13
+
14
+ parameter :project_slug, required: true
15
+ parameter :api_token, required: true
16
+ parameter :base_url, default: 'https://circleci.com/api'
17
+ parameter :environment_variables, default: {}
18
+
19
+ action do |t|
20
+ client = Client.new(
21
+ base_url: t.base_url,
22
+ api_token: t.api_token,
23
+ project_slug: t.project_slug)
24
+
25
+ puts "Provisioning all environment variables to the " +
26
+ "'#{t.project_slug}' project... "
27
+
28
+ t.environment_variables.each do |name, value|
29
+ print "Setting environment variable: '#{name}'... "
30
+ client.create_env_var(name.to_s, value)
31
+ puts "Done."
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'environment_variables/provision'
2
+
3
+ module RakeCircleCI
4
+ module Tasks
5
+ module EnvironmentVariables
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ require_relative 'tasks/environment_variables'
2
+
3
+ module RakeCircleCI
4
+ module Tasks
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module RakeCircleCI
2
- VERSION = '0.2.0.pre.1'
2
+ VERSION = '0.2.0.pre.2'
3
3
  end
@@ -1,4 +1,6 @@
1
1
  require 'rake_circle_ci/version'
2
+ require 'rake_circle_ci/client'
3
+ require 'rake_circle_ci/tasks'
2
4
 
3
5
  module RakeCircleCI
4
6
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_circle_ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre.1
4
+ version: 0.2.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
@@ -198,6 +198,10 @@ files:
198
198
  - config/secrets/rubygems/credentials
199
199
  - go
200
200
  - lib/rake_circle_ci.rb
201
+ - lib/rake_circle_ci/client.rb
202
+ - lib/rake_circle_ci/tasks.rb
203
+ - lib/rake_circle_ci/tasks/environment_variables.rb
204
+ - lib/rake_circle_ci/tasks/environment_variables/provision.rb
201
205
  - lib/rake_circle_ci/version.rb
202
206
  - rake_circle_ci.gemspec
203
207
  - scripts/ci/common/configure-git.sh