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