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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/rake_circle_ci/client.rb +43 -0
- data/lib/rake_circle_ci/tasks/environment_variables/provision.rb +37 -0
- data/lib/rake_circle_ci/tasks/environment_variables.rb +8 -0
- data/lib/rake_circle_ci/tasks.rb +6 -0
- data/lib/rake_circle_ci/version.rb +1 -1
- data/lib/rake_circle_ci.rb +2 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df1940d5edea738730c5de0e2e4195e363e8596e99344ee105e809d8aa2ea79b
|
4
|
+
data.tar.gz: e9ad318bee7536ca18ee0cb12888f8799018800aac0337ed6e62f308449f9ced
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35de43169c37970c95daf0f62487d0033bcc82b7485fcfb84cf0122025c4430ccf447ad086045c5e95ace25908f3802cadeb663c00959f76a7e2db0970a2b717
|
7
|
+
data.tar.gz: 5fe3e61b2d6eafa9fe77bff6a95a7d5eae691c451d861db30e25b2a04c579566049ae77c44f7dad6afbfe94de5f871fb1035ef8408722bdcb1ec2a3fd6bb84fb
|
data/Gemfile.lock
CHANGED
@@ -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
|
data/lib/rake_circle_ci.rb
CHANGED
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.
|
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
|