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

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