Class: RakeCircleCI::Client
- Inherits:
-
Object
- Object
- RakeCircleCI::Client
- Defined in:
- lib/rake_circle_ci/client.rb
Instance Method Summary collapse
- #create_checkout_key(type) ⇒ Object
- #create_env_var(name, value) ⇒ Object
- #create_ssh_key(private_key, opts = {}) ⇒ Object
- #delete_checkout_key(fingerprint) ⇒ Object
- #delete_checkout_keys ⇒ Object
- #delete_env_var(name) ⇒ Object
- #delete_env_vars ⇒ Object
- #delete_ssh_key(fingerprint, opts = {}) ⇒ Object
- #delete_ssh_keys ⇒ Object
- #find_checkout_keys ⇒ Object
- #find_env_vars ⇒ Object
- #find_ssh_keys ⇒ Object
- #follow_project ⇒ Object
-
#initialize(opts) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(opts) ⇒ Client
Returns a new instance of Client.
7 8 9 10 11 |
# File 'lib/rake_circle_ci/client.rb', line 7 def initialize(opts) @base_url = opts[:base_url] @api_token = opts[:api_token] @project_slug = opts[:project_slug] end |
Instance Method Details
#create_checkout_key(type) ⇒ Object
90 91 92 93 94 95 96 97 98 |
# File 'lib/rake_circle_ci/client.rb', line 90 def create_checkout_key(type) type_strings = { deploy_key: 'deploy-key', github_user_key: 'github-user-key' } body = JSON.dump(type: type_strings[type.to_sym] || type.to_s) assert_successful( Excon.post(checkout_keys_url, body: body, headers: headers)) end |
#create_env_var(name, value) ⇒ Object
25 26 27 28 29 |
# File 'lib/rake_circle_ci/client.rb', line 25 def create_env_var(name, value) body = JSON.dump(name: name, value: value) assert_successful( Excon.post(env_vars_url, body: body, headers: headers)) end |
#create_ssh_key(private_key, opts = {}) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/rake_circle_ci/client.rb', line 50 def create_ssh_key(private_key, opts = {}) body = { fingerprint: SSHKey.new(private_key).sha1_fingerprint, private_key: private_key, } body = body.merge(hostname: opts[:hostname]) if opts[:hostname] body = JSON.dump(body) assert_successful( Excon.post(ssh_keys_url, body: body, headers: headers)) end |
#delete_checkout_key(fingerprint) ⇒ Object
100 101 102 103 |
# File 'lib/rake_circle_ci/client.rb', line 100 def delete_checkout_key(fingerprint) assert_successful( Excon.delete(checkout_key_url(fingerprint), headers: headers)) end |
#delete_checkout_keys ⇒ Object
105 106 107 108 109 110 |
# File 'lib/rake_circle_ci/client.rb', line 105 def delete_checkout_keys checkout_keys = find_checkout_keys checkout_keys.each do |checkout_key| delete_checkout_key(checkout_key[:fingerprint]) end end |
#delete_env_var(name) ⇒ Object
31 32 33 |
# File 'lib/rake_circle_ci/client.rb', line 31 def delete_env_var(name) assert_successful(Excon.delete(env_var_url(name), headers: headers)) end |
#delete_env_vars ⇒ Object
35 36 37 38 39 40 |
# File 'lib/rake_circle_ci/client.rb', line 35 def delete_env_vars env_vars = find_env_vars env_vars.each do |env_var| delete_env_var(env_var) end end |
#delete_ssh_key(fingerprint, opts = {}) ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/rake_circle_ci/client.rb', line 61 def delete_ssh_key(fingerprint, opts = {}) body = { fingerprint: fingerprint } body = body.merge(hostname: opts[:hostname]) if opts[:hostname] body = JSON.dump(body) assert_successful( Excon.delete(ssh_keys_url, body: body, headers: headers)) end |
#delete_ssh_keys ⇒ Object
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/rake_circle_ci/client.rb', line 71 def delete_ssh_keys ssh_keys = find_ssh_keys ssh_keys.each do |ssh_key| fingerprint = ssh_key[:fingerprint] hostname = ssh_key[:hostname] = hostname && {hostname: hostname} args = [fingerprint, ].compact delete_ssh_key(*args) end end |
#find_checkout_keys ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/rake_circle_ci/client.rb', line 82 def find_checkout_keys response = assert_successful( Excon.get(checkout_keys_url, headers: headers)) checkout_keys = JSON.parse(response.body, symbolize_names: true) checkout_keys end |
#find_env_vars ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/rake_circle_ci/client.rb', line 17 def find_env_vars response = assert_successful(Excon.get(env_vars_url, headers: headers)) body = JSON.parse(response.body) env_vars = body["items"].map { |item| item["name"] } env_vars end |
#find_ssh_keys ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/rake_circle_ci/client.rb', line 42 def find_ssh_keys response = assert_successful(Excon.get(settings_url, headers: headers)) body = JSON.parse(response.body, symbolize_names: true) ssh_keys = body[:ssh_keys] ssh_keys end |
#follow_project ⇒ Object
13 14 15 |
# File 'lib/rake_circle_ci/client.rb', line 13 def follow_project assert_successful(Excon.post(follow_url, headers: headers)) end |