turbot-api 0.0.1
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 +15 -0
- data/README.md +0 -0
- data/lib/turbot_api/api.rb +124 -0
- data/lib/turbot_api/errors.rb +28 -0
- data/lib/turbot_api/version.rb +3 -0
- data/lib/turbot_api.rb +2 -0
- metadata +76 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MTZjMjQ2MWVlYjEwMGU4YmUyN2M0NWZmMDhmNTE3ZmYxOTEzYWU3NQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
N2Q3NTc4NzQ1YzczYTc5ZGFlYjgxMWZhZjA5NGQyMWU5NjcwNWVhOA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NWE0OTU4ZDAzNjQ1ODk2ZWRmODU5OTZjMmJjOTU4MjRmOGYxYzM0OTIzYWUz
|
10
|
+
MzBmZWVlYzg4NjAxNGE1MjU5NmM3NDgyZDI1ODJkMjg4MjQ4YWM4YmVjNTZj
|
11
|
+
YmUwNDNhMWQ3YzlmMTM0MWI5ZTA0ZGU5Mjc1ODc3OTE3ZmIwZTc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MmRlNTE4ODQ1YWZlMmYzMTk4YmE1MDZmMGQyY2MzOGJhOTExZWRiNWFhN2Qx
|
14
|
+
NWVjMTJhNDdhNTE3YThiNDBkODI3MjlmOTI4NmEyNDUxMDg0M2JjN2E0MDA5
|
15
|
+
MWM0YjVlZmZiN2E0YzIyMDcyY2IxNjY2NTM1MGI0ZGUyYTBjZmI=
|
data/README.md
ADDED
File without changes
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'rest_client'
|
3
|
+
|
4
|
+
module Turbot
|
5
|
+
class API
|
6
|
+
def initialize(params)
|
7
|
+
@headers = params[:headers]
|
8
|
+
@host = params[:host]
|
9
|
+
@port = params[:port]
|
10
|
+
@username = params[:username]
|
11
|
+
@password = params[:password]
|
12
|
+
@scheme = params[:scheme]
|
13
|
+
@ssl_verify_peer = params[:ssl_verify_peer]
|
14
|
+
@api_key = params[:api_key] || get_api_key_for_credentials(@username, @password)["api_key"]
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_user
|
18
|
+
response = RestClient.get(server_req("/users/get_user"))
|
19
|
+
JSON.parse(response)
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_api_key
|
23
|
+
get_user["api_key"]
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_api_key_for_credentials(user, password)
|
27
|
+
url = server_req("/users/api_key",
|
28
|
+
:email => user,
|
29
|
+
:password => password)
|
30
|
+
response = RestClient.get(url)
|
31
|
+
JSON.parse(response)
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_keys
|
35
|
+
# return an array of ssh keys
|
36
|
+
["jkjk"]
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_ssh_keys
|
40
|
+
# return an array of ssh keys
|
41
|
+
["jkjk"]
|
42
|
+
end
|
43
|
+
|
44
|
+
def post_key(key)
|
45
|
+
# receive ssh key and associate with account
|
46
|
+
end
|
47
|
+
|
48
|
+
def delete_key(key)
|
49
|
+
end
|
50
|
+
|
51
|
+
def delete_keys
|
52
|
+
end
|
53
|
+
|
54
|
+
def read_logs(bot, opts={})
|
55
|
+
url = server_req("/users/read_logs", :bot => bot)
|
56
|
+
JSON.parse(RestClient.get(url))
|
57
|
+
end
|
58
|
+
|
59
|
+
def post_bot(data)
|
60
|
+
url = server_req("/users/post_bot")
|
61
|
+
begin
|
62
|
+
RestClient.post(url, data)
|
63
|
+
rescue => e
|
64
|
+
if e.response.match(/Gitlab::Error::NotFound/)
|
65
|
+
puts "That bot already exists!"
|
66
|
+
exit 0
|
67
|
+
elsif e.response.match(/MissingManifest/)
|
68
|
+
puts "ERROR: You didn't provide a manifest.json"
|
69
|
+
exit 1
|
70
|
+
else
|
71
|
+
raise
|
72
|
+
end
|
73
|
+
end
|
74
|
+
puts "Created bot #{data['bot_id']}"
|
75
|
+
end
|
76
|
+
|
77
|
+
def delete_bot(bot)
|
78
|
+
RestClient.delete(server_req("/users/delete_bot", {:bot => bot}))
|
79
|
+
end
|
80
|
+
|
81
|
+
def get_bots
|
82
|
+
JSON.parse(RestClient.get(server_req("/users/get_bots")).body)
|
83
|
+
end
|
84
|
+
|
85
|
+
def get_bot(bot)
|
86
|
+
JSON.parse(RestClient.get(server_req("/users/get_bot", :bot => bot)).body)
|
87
|
+
end
|
88
|
+
|
89
|
+
def put_config_vars(bot, vars)
|
90
|
+
JSON.parse(RestClient.post(server_req("/users/config_vars", :bot => bot, :vars => vars)).body)
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_config_vars(bot)
|
94
|
+
JSON.parse(RestClient.get(server_req("/users/config_vars", :bot => bot)).body)
|
95
|
+
end
|
96
|
+
|
97
|
+
def delete_config_var(bot, key)
|
98
|
+
JSON.parse(RestClient.delete(server_req("/users/config_vars", :bot => bot, :key => key)).body)
|
99
|
+
end
|
100
|
+
|
101
|
+
def send_drafts_to_angler(bot, batch)
|
102
|
+
RestClient.post(
|
103
|
+
server_req("/users/send_drafts_to_angler"),
|
104
|
+
{:bot => bot,
|
105
|
+
:batch => batch}).body
|
106
|
+
end
|
107
|
+
|
108
|
+
private
|
109
|
+
|
110
|
+
def server_req(path, params={})
|
111
|
+
query_string = params.update(:api_key => @api_key).map do |k, v|
|
112
|
+
"#{k}=#{v}" if v
|
113
|
+
end.compact.join("&")
|
114
|
+
args = {
|
115
|
+
:host => @host,
|
116
|
+
:port => @port,
|
117
|
+
:scheme => @scheme,
|
118
|
+
:path => path.strip
|
119
|
+
}
|
120
|
+
args[:query] = query_string unless query_string.empty?
|
121
|
+
URI::HTTP.build(args).to_s
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Turbot
|
2
|
+
class API
|
3
|
+
module Errors
|
4
|
+
class Error < StandardError; end
|
5
|
+
|
6
|
+
class ErrorWithResponse < Error
|
7
|
+
attr_reader :response
|
8
|
+
|
9
|
+
def initialize(message, response=nil)
|
10
|
+
message = message << "\nbody: #{response.body.inspect}" if response
|
11
|
+
super message
|
12
|
+
@response = response
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Unauthorized < ErrorWithResponse; end
|
17
|
+
class VerificationRequired < ErrorWithResponse; end
|
18
|
+
class Forbidden < ErrorWithResponse; end
|
19
|
+
class NotFound < ErrorWithResponse; end
|
20
|
+
class Timeout < ErrorWithResponse; end
|
21
|
+
class Locked < ErrorWithResponse; end
|
22
|
+
class RateLimitExceeded < ErrorWithResponse; end
|
23
|
+
class RequestFailed < ErrorWithResponse; end
|
24
|
+
class NilApp < ErrorWithResponse; end
|
25
|
+
class MissingManifest < ErrorWithResponse; end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/turbot_api.rb
ADDED
metadata
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: turbot-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Turbot
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.6.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.6.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rubyzip
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Client library to deploy apps on Turbot.
|
42
|
+
email: support@opencorporates.com
|
43
|
+
executables: []
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- README.md
|
48
|
+
- lib/turbot_api.rb
|
49
|
+
- lib/turbot_api/api.rb
|
50
|
+
- lib/turbot_api/errors.rb
|
51
|
+
- lib/turbot_api/version.rb
|
52
|
+
homepage: http://opencorporates.com/
|
53
|
+
licenses:
|
54
|
+
- MIT
|
55
|
+
metadata: {}
|
56
|
+
post_install_message:
|
57
|
+
rdoc_options: []
|
58
|
+
require_paths:
|
59
|
+
- lib
|
60
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
requirements: []
|
71
|
+
rubyforge_project:
|
72
|
+
rubygems_version: 2.2.2
|
73
|
+
signing_key:
|
74
|
+
specification_version: 4
|
75
|
+
summary: Client library to deploy apps on Turbot.
|
76
|
+
test_files: []
|