bitbucket_rest_api 0.1.0
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.
- data/README.md +163 -0
- data/lib/bitbucket_rest_api/api/actions.rb +50 -0
- data/lib/bitbucket_rest_api/api.rb +121 -0
- data/lib/bitbucket_rest_api/api_factory.rb +30 -0
- data/lib/bitbucket_rest_api/authorization.rb +49 -0
- data/lib/bitbucket_rest_api/client.rb +52 -0
- data/lib/bitbucket_rest_api/compatibility.rb +23 -0
- data/lib/bitbucket_rest_api/configuration.rb +101 -0
- data/lib/bitbucket_rest_api/connection.rb +97 -0
- data/lib/bitbucket_rest_api/constants.rb +58 -0
- data/lib/bitbucket_rest_api/core_ext/array.rb +17 -0
- data/lib/bitbucket_rest_api/core_ext/hash.rb +56 -0
- data/lib/bitbucket_rest_api/core_ext/ordered_hash.rb +107 -0
- data/lib/bitbucket_rest_api/deprecation.rb +39 -0
- data/lib/bitbucket_rest_api/error/bad_request.rb +12 -0
- data/lib/bitbucket_rest_api/error/client_error.rb +20 -0
- data/lib/bitbucket_rest_api/error/forbidden.rb +12 -0
- data/lib/bitbucket_rest_api/error/internal_server_error.rb +12 -0
- data/lib/bitbucket_rest_api/error/invalid_options.rb +18 -0
- data/lib/bitbucket_rest_api/error/not_found.rb +12 -0
- data/lib/bitbucket_rest_api/error/required_params.rb +18 -0
- data/lib/bitbucket_rest_api/error/service_error.rb +19 -0
- data/lib/bitbucket_rest_api/error/service_unavailable.rb +12 -0
- data/lib/bitbucket_rest_api/error/unauthorized.rb +12 -0
- data/lib/bitbucket_rest_api/error/unknown_value.rb +18 -0
- data/lib/bitbucket_rest_api/error/unprocessable_entity.rb +12 -0
- data/lib/bitbucket_rest_api/error/validations.rb +18 -0
- data/lib/bitbucket_rest_api/error.rb +35 -0
- data/lib/bitbucket_rest_api/issues/comments.rb +118 -0
- data/lib/bitbucket_rest_api/issues/components.rb +106 -0
- data/lib/bitbucket_rest_api/issues/milestones.rb +107 -0
- data/lib/bitbucket_rest_api/issues.rb +201 -0
- data/lib/bitbucket_rest_api/normalizer.rb +27 -0
- data/lib/bitbucket_rest_api/parameter_filter.rb +32 -0
- data/lib/bitbucket_rest_api/repos/changesets.rb +54 -0
- data/lib/bitbucket_rest_api/repos/following.rb +39 -0
- data/lib/bitbucket_rest_api/repos/keys.rb +87 -0
- data/lib/bitbucket_rest_api/repos.rb +213 -0
- data/lib/bitbucket_rest_api/request/basic_auth.rb +31 -0
- data/lib/bitbucket_rest_api/request/jsonize.rb +46 -0
- data/lib/bitbucket_rest_api/request/oauth.rb +49 -0
- data/lib/bitbucket_rest_api/request.rb +67 -0
- data/lib/bitbucket_rest_api/response/helpers.rb +21 -0
- data/lib/bitbucket_rest_api/response/jsonize.rb +30 -0
- data/lib/bitbucket_rest_api/response/mashify.rb +24 -0
- data/lib/bitbucket_rest_api/response/raise_error.rb +31 -0
- data/lib/bitbucket_rest_api/response/xmlize.rb +26 -0
- data/lib/bitbucket_rest_api/response.rb +28 -0
- data/lib/bitbucket_rest_api/result.rb +140 -0
- data/lib/bitbucket_rest_api/utils/url.rb +56 -0
- data/lib/bitbucket_rest_api/validations/format.rb +24 -0
- data/lib/bitbucket_rest_api/validations/presence.rb +25 -0
- data/lib/bitbucket_rest_api/validations/required.rb +24 -0
- data/lib/bitbucket_rest_api/validations/token.rb +43 -0
- data/lib/bitbucket_rest_api/validations.rb +25 -0
- data/lib/bitbucket_rest_api/version.rb +11 -0
- data/lib/bitbucket_rest_api.rb +87 -0
- metadata +266 -0
@@ -0,0 +1,140 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
module Result
|
5
|
+
include BitBucket::Constants
|
6
|
+
|
7
|
+
# TODO Add result counts method to check total items looking at result links
|
8
|
+
|
9
|
+
def ratelimit_limit
|
10
|
+
loaded? ? @env[:response_headers][RATELIMIT_LIMIT] : nil
|
11
|
+
end
|
12
|
+
|
13
|
+
def ratelimit_remaining
|
14
|
+
loaded? ? @env[:response_headers][RATELIMIT_REMAINING] : nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def cache_control
|
18
|
+
loaded? ? @env[:response_headers][CACHE_CONTROL] : nil
|
19
|
+
end
|
20
|
+
|
21
|
+
def content_type
|
22
|
+
loaded? ? @env[:response_headers][CONTENT_TYPE] : nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def content_length
|
26
|
+
loaded? ? @env[:response_headers][CONTENT_LENGTH] : nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def etag
|
30
|
+
loaded? ? @env[:response_headers][ETAG] : nil
|
31
|
+
end
|
32
|
+
|
33
|
+
def date
|
34
|
+
loaded? ? @env[:response_headers][DATE] : nil
|
35
|
+
end
|
36
|
+
|
37
|
+
def location
|
38
|
+
loaded? ? @env[:response_headers][LOCATION] : nil
|
39
|
+
end
|
40
|
+
|
41
|
+
def server
|
42
|
+
loaded? ? @env[:response_headers][SERVER] : nil
|
43
|
+
end
|
44
|
+
|
45
|
+
def status
|
46
|
+
loaded? ? @env[:status] : nil
|
47
|
+
end
|
48
|
+
|
49
|
+
def success?
|
50
|
+
(200..299).include? status
|
51
|
+
end
|
52
|
+
|
53
|
+
# Returns raw body
|
54
|
+
def body
|
55
|
+
loaded? ? @env[:body] : nil
|
56
|
+
end
|
57
|
+
|
58
|
+
def loaded?
|
59
|
+
!!@env
|
60
|
+
end
|
61
|
+
|
62
|
+
# Return page links
|
63
|
+
def links
|
64
|
+
@@links = BitBucket::PageLinks.new(@env[:response_headers])
|
65
|
+
end
|
66
|
+
|
67
|
+
# Iterator like each for response pages. If there are no pages to
|
68
|
+
# iterate over this method will return nothing.
|
69
|
+
def each_page
|
70
|
+
yield self.body
|
71
|
+
while page_iterator.has_next?
|
72
|
+
yield next_page
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# Retrives the result of the first page. Returns <tt>nil</tt> if there is
|
77
|
+
# no first page - either because you are already on the first page
|
78
|
+
# or there are no pages at all in the result.
|
79
|
+
def first_page
|
80
|
+
first_request = page_iterator.first
|
81
|
+
self.instance_eval { @env = first_request.env } if first_request
|
82
|
+
self.body
|
83
|
+
end
|
84
|
+
|
85
|
+
# Retrives the result of the next page. Returns <tt>nil</tt> if there is
|
86
|
+
# no next page or no pages at all.
|
87
|
+
def next_page
|
88
|
+
next_request = page_iterator.next
|
89
|
+
self.instance_eval { @env = next_request.env } if next_request
|
90
|
+
self.body
|
91
|
+
end
|
92
|
+
|
93
|
+
# Retrives the result of the previous page. Returns <tt>nil</tt> if there is
|
94
|
+
# no previous page or no pages at all.
|
95
|
+
def prev_page
|
96
|
+
prev_request = page_iterator.prev
|
97
|
+
self.instance_eval { @env = prev_request.env } if prev_request
|
98
|
+
self.body
|
99
|
+
end
|
100
|
+
alias :previous_page :prev_page
|
101
|
+
|
102
|
+
# Retrives the result of the last page. Returns <tt>nil</tt> if there is
|
103
|
+
# no last page - either because you are already on the last page,
|
104
|
+
# there is only one page or there are no pages at all in the result.
|
105
|
+
def last_page
|
106
|
+
last_request = page_iterator.last
|
107
|
+
self.instance_eval { @env = last_request.env } if last_request
|
108
|
+
self.body
|
109
|
+
end
|
110
|
+
|
111
|
+
# Retrives a specific result for a page given page number.
|
112
|
+
# The <tt>page_number</tt> parameter is not validate, hitting a page
|
113
|
+
# that does not exist will return BitBucket API error. Consequently, if
|
114
|
+
# there is only one page, this method returns nil
|
115
|
+
def page(page_number)
|
116
|
+
request = page_iterator.get_page(page_number)
|
117
|
+
self.instance_eval { @env = request.env } if request
|
118
|
+
self.body
|
119
|
+
end
|
120
|
+
|
121
|
+
# Returns <tt>true</tt> if there is another page in the result set,
|
122
|
+
# otherwise <tt>false</tt>
|
123
|
+
def has_next_page?
|
124
|
+
page_iterator.has_next?
|
125
|
+
end
|
126
|
+
|
127
|
+
# Repopulates objects for new values
|
128
|
+
def reset
|
129
|
+
nil
|
130
|
+
end
|
131
|
+
|
132
|
+
private
|
133
|
+
|
134
|
+
# Internally used page iterator
|
135
|
+
def page_iterator # :nodoc:
|
136
|
+
@@page_iterator = BitBucket::PageIterator.new(@env)
|
137
|
+
end
|
138
|
+
|
139
|
+
end # Result
|
140
|
+
end # BitBucket
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
module Utils
|
5
|
+
module Url
|
6
|
+
extend self
|
7
|
+
|
8
|
+
DEFAULT_QUERY_SEP = /[&;] */n
|
9
|
+
|
10
|
+
KEY_VALUE_SEP = '='.freeze
|
11
|
+
|
12
|
+
def escape(s) CGI.escape s.to_s end
|
13
|
+
|
14
|
+
def unescape(s) CGI.unescape s.to_s end
|
15
|
+
|
16
|
+
def build_query(params)
|
17
|
+
params.map { |k, v|
|
18
|
+
if v.class == Array
|
19
|
+
build_query(v.map { |x| [k, x] })
|
20
|
+
else
|
21
|
+
v.nil? ? escape(k) : "#{escape(k)}=#{escape(v)}"
|
22
|
+
end
|
23
|
+
}.join("&")
|
24
|
+
end
|
25
|
+
|
26
|
+
def parse_query(query_string)
|
27
|
+
return '' if query_string.nil? || query_string.empty?
|
28
|
+
params = {}
|
29
|
+
|
30
|
+
query_string.split(DEFAULT_QUERY_SEP).each do |part|
|
31
|
+
k, v = part.split(KEY_VALUE_SEP, 2).map { |el| unescape(el) }
|
32
|
+
|
33
|
+
if cur = params[k]
|
34
|
+
if cur.class == Array
|
35
|
+
params[k] << v
|
36
|
+
else
|
37
|
+
params[k] = [cur, v]
|
38
|
+
end
|
39
|
+
else
|
40
|
+
params[k] = v
|
41
|
+
end
|
42
|
+
end
|
43
|
+
params
|
44
|
+
end
|
45
|
+
|
46
|
+
def parse_query_for_param(query_string, name)
|
47
|
+
parse_query(query_string).each do |key, val|
|
48
|
+
return val.first if (name == key) && val.is_a?(Array)
|
49
|
+
return val if (name == key)
|
50
|
+
end
|
51
|
+
return nil
|
52
|
+
end
|
53
|
+
|
54
|
+
end # Url
|
55
|
+
end # Utils
|
56
|
+
end # BitBucket
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
module Validations
|
5
|
+
module Format
|
6
|
+
|
7
|
+
# Ensures that value for a given key is of the correct form whether
|
8
|
+
# matching regular expression or set of predefined values.
|
9
|
+
#
|
10
|
+
def assert_valid_values(permitted, params)
|
11
|
+
params.each do |k, v|
|
12
|
+
next unless permitted.keys.include?(k)
|
13
|
+
if permitted[k].is_a?(Array) && !permitted[k].include?(params[k])
|
14
|
+
raise BitBucket::Error::UnknownValue.new(k,v, permitted[k].join(', '))
|
15
|
+
|
16
|
+
elsif permitted[k].is_a?(Regexp) && !(permitted[k] =~ params[k])
|
17
|
+
raise BitBucket::Error::UnknownValue.new(k,v, permitted[k])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end # Format
|
23
|
+
end # Validations
|
24
|
+
end # BitBucket
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
module Validations
|
5
|
+
module Presence
|
6
|
+
|
7
|
+
# Ensures that essential arguments are present before request is made
|
8
|
+
#
|
9
|
+
def _validate_presence_of(*params)
|
10
|
+
params.each do |param|
|
11
|
+
raise ArgumentError, "parameter cannot be nil" if param.nil?
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
# Check if user or repository parameters are passed
|
17
|
+
#
|
18
|
+
def _validate_user_repo_params(user_name, repo_name)
|
19
|
+
raise ArgumentError, "[user] parameter cannot be nil" if user_name.nil?
|
20
|
+
raise ArgumentError, "[repo] parameter cannot be nil" if repo_name.nil?
|
21
|
+
end
|
22
|
+
|
23
|
+
end # Presence
|
24
|
+
end # Validations
|
25
|
+
end # BitBucket
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
module Validations
|
5
|
+
module Required
|
6
|
+
|
7
|
+
# Validate all keys present in a provided hash against required set,
|
8
|
+
# on mismatch raise BitBucket::Error::RequiredParams
|
9
|
+
# Note that keys need to be in the same format i.e. symbols or strings,
|
10
|
+
# otherwise the comparison will fail.
|
11
|
+
#
|
12
|
+
def assert_required_keys(required, provided)
|
13
|
+
result = required.all? do |key|
|
14
|
+
provided.has_deep_key? key
|
15
|
+
end
|
16
|
+
if !result
|
17
|
+
raise BitBucket::Error::RequiredParams.new(provided, required)
|
18
|
+
end
|
19
|
+
result
|
20
|
+
end
|
21
|
+
|
22
|
+
end # Required
|
23
|
+
end # Validations
|
24
|
+
end # BitBucket
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# TODO: Set token required calls
|
4
|
+
|
5
|
+
module BitBucket
|
6
|
+
module Validations
|
7
|
+
module Token
|
8
|
+
|
9
|
+
TOKEN_REQUIRED = [
|
10
|
+
'get /user',
|
11
|
+
'get /user/emails',
|
12
|
+
'get /user/followers',
|
13
|
+
'get /user/following',
|
14
|
+
'get /user/keys',
|
15
|
+
'get /user/repos',
|
16
|
+
'patch /user',
|
17
|
+
'post /user/emails',
|
18
|
+
'post /user/keys',
|
19
|
+
'post /user/repos'
|
20
|
+
]
|
21
|
+
|
22
|
+
TOKEN_REQUIRED_REGEXP = [
|
23
|
+
/repos\/.*\/.*\/comments/,
|
24
|
+
]
|
25
|
+
|
26
|
+
# Ensures that required authentication token is present before
|
27
|
+
# request is sent.
|
28
|
+
#
|
29
|
+
def validates_token_for(method, path)
|
30
|
+
return true unless TOKEN_REQUIRED.grep("#{method} #{path}").empty?
|
31
|
+
|
32
|
+
token_required = false
|
33
|
+
TOKEN_REQUIRED_REGEXP.each do |regex|
|
34
|
+
if "#{method} #{path}" =~ regex
|
35
|
+
token_required = true
|
36
|
+
end
|
37
|
+
end
|
38
|
+
return token_required
|
39
|
+
end
|
40
|
+
|
41
|
+
end # Token
|
42
|
+
end # Validations
|
43
|
+
end # BitBucket
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BitBucket
|
4
|
+
module Validations
|
5
|
+
extend AutoloadHelper
|
6
|
+
|
7
|
+
autoload_all 'bitbucket_rest_api/validations',
|
8
|
+
:Presence => 'presence',
|
9
|
+
:Token => 'token',
|
10
|
+
:Format => 'format',
|
11
|
+
:Required => 'required'
|
12
|
+
|
13
|
+
include Presence
|
14
|
+
include Format
|
15
|
+
include Token
|
16
|
+
include Required
|
17
|
+
|
18
|
+
VALID_API_KEYS = [
|
19
|
+
'page',
|
20
|
+
'per_page',
|
21
|
+
'jsonp_callback'
|
22
|
+
]
|
23
|
+
|
24
|
+
end # Validation
|
25
|
+
end # BitBucket
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'bitbucket_rest_api/version'
|
4
|
+
require 'bitbucket_rest_api/configuration'
|
5
|
+
require 'bitbucket_rest_api/constants'
|
6
|
+
require 'bitbucket_rest_api/utils/url'
|
7
|
+
require 'bitbucket_rest_api/connection'
|
8
|
+
require 'bitbucket_rest_api/deprecation'
|
9
|
+
require 'bitbucket_rest_api/core_ext/ordered_hash'
|
10
|
+
|
11
|
+
module BitBucket
|
12
|
+
extend Configuration
|
13
|
+
|
14
|
+
class << self
|
15
|
+
|
16
|
+
# Handle for the client instance
|
17
|
+
attr_accessor :api_client
|
18
|
+
|
19
|
+
# Alias for BitBucket::Client.new
|
20
|
+
#
|
21
|
+
# @return [BitBucket::Client]
|
22
|
+
def new(options = { }, &block)
|
23
|
+
@api_client = BitBucket::Client.new(options, &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Delegate to BitBucket::Client
|
27
|
+
#
|
28
|
+
def method_missing(method, *args, &block)
|
29
|
+
return super unless new.respond_to?(method)
|
30
|
+
new.send(method, *args, &block)
|
31
|
+
end
|
32
|
+
|
33
|
+
def respond_to?(method, include_private = false)
|
34
|
+
new.respond_to?(method, include_private) || super(method, include_private)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
module AutoloadHelper
|
40
|
+
|
41
|
+
def autoload_all(prefix, options)
|
42
|
+
options.each do |const_name, path|
|
43
|
+
autoload const_name, File.join(prefix, path)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def register_constant(options)
|
48
|
+
options.each do |const_name, value|
|
49
|
+
const_set const_name.upcase.to_s, value
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def lookup_constant(const_name)
|
54
|
+
const_get const_name.upcase.to_s
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
extend AutoloadHelper
|
60
|
+
|
61
|
+
autoload_all 'bitbucket_rest_api',
|
62
|
+
:API => 'api',
|
63
|
+
:ApiFactory => 'api_factory',
|
64
|
+
:Authorization => 'authorization',
|
65
|
+
:Authorizations => 'authorizations',
|
66
|
+
:Validations => 'validations',
|
67
|
+
:ParameterFilter => 'parameter_filter',
|
68
|
+
:Normalizer => 'normalizer',
|
69
|
+
:Client => 'client',
|
70
|
+
:CoreExt => 'core_ext',
|
71
|
+
:Request => 'request',
|
72
|
+
:Response => 'response',
|
73
|
+
:Result => 'result',
|
74
|
+
|
75
|
+
:Repos => 'repos',
|
76
|
+
#:Error => 'error',
|
77
|
+
:Issues => 'issues'
|
78
|
+
#:Teams => 'teams',
|
79
|
+
#:PullRequests => 'pull_requests',
|
80
|
+
#:Users => 'users',
|
81
|
+
#:Events => 'events',
|
82
|
+
#:Search => 'search',
|
83
|
+
#:PageLinks => 'page_links',
|
84
|
+
#:PageIterator => 'page_iterator',
|
85
|
+
#:PagedRequest => 'paged_request'
|
86
|
+
|
87
|
+
end # BitBucket
|
metadata
ADDED
@@ -0,0 +1,266 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bitbucket_rest_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Mike Cochran
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-07-31 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: hashie
|
16
|
+
requirement: &70165761556820 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.2.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70165761556820
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: faraday
|
27
|
+
requirement: &70165761555840 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.8.1
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70165761555840
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: multi_json
|
38
|
+
requirement: &70165761554920 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.3'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70165761554920
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: oauth
|
49
|
+
requirement: &70165761554180 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70165761554180
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: nokogiri
|
60
|
+
requirement: &70165761552500 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 1.5.2
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70165761552500
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: &70165761551240 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70165761551240
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: cucumber
|
82
|
+
requirement: &70165761550100 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70165761550100
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: webmock
|
93
|
+
requirement: &70165761548520 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 1.8.0
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *70165761548520
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: vcr
|
104
|
+
requirement: &70165761546980 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 2.2.0
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *70165761546980
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: simplecov
|
115
|
+
requirement: &70165761545860 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ~>
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 0.6.1
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *70165761545860
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: guard
|
126
|
+
requirement: &70165761545080 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *70165761545080
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: guard-rspec
|
137
|
+
requirement: &70165761544020 !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
type: :development
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: *70165761544020
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: guard-cucumber
|
148
|
+
requirement: &70165761543080 !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
type: :development
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: *70165761543080
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: rake
|
159
|
+
requirement: &70165761542340 !ruby/object:Gem::Requirement
|
160
|
+
none: false
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
type: :development
|
166
|
+
prerelease: false
|
167
|
+
version_requirements: *70165761542340
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: bundler
|
170
|
+
requirement: &70165761541400 !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
172
|
+
requirements:
|
173
|
+
- - ! '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
type: :development
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: *70165761541400
|
179
|
+
description: ! ' Ruby wrapper for the BitBucket API '
|
180
|
+
email: mcochran@linux.com
|
181
|
+
executables: []
|
182
|
+
extensions: []
|
183
|
+
extra_rdoc_files: []
|
184
|
+
files:
|
185
|
+
- lib/bitbucket_rest_api/api/actions.rb
|
186
|
+
- lib/bitbucket_rest_api/api.rb
|
187
|
+
- lib/bitbucket_rest_api/api_factory.rb
|
188
|
+
- lib/bitbucket_rest_api/authorization.rb
|
189
|
+
- lib/bitbucket_rest_api/client.rb
|
190
|
+
- lib/bitbucket_rest_api/compatibility.rb
|
191
|
+
- lib/bitbucket_rest_api/configuration.rb
|
192
|
+
- lib/bitbucket_rest_api/connection.rb
|
193
|
+
- lib/bitbucket_rest_api/constants.rb
|
194
|
+
- lib/bitbucket_rest_api/core_ext/array.rb
|
195
|
+
- lib/bitbucket_rest_api/core_ext/hash.rb
|
196
|
+
- lib/bitbucket_rest_api/core_ext/ordered_hash.rb
|
197
|
+
- lib/bitbucket_rest_api/deprecation.rb
|
198
|
+
- lib/bitbucket_rest_api/error/bad_request.rb
|
199
|
+
- lib/bitbucket_rest_api/error/client_error.rb
|
200
|
+
- lib/bitbucket_rest_api/error/forbidden.rb
|
201
|
+
- lib/bitbucket_rest_api/error/internal_server_error.rb
|
202
|
+
- lib/bitbucket_rest_api/error/invalid_options.rb
|
203
|
+
- lib/bitbucket_rest_api/error/not_found.rb
|
204
|
+
- lib/bitbucket_rest_api/error/required_params.rb
|
205
|
+
- lib/bitbucket_rest_api/error/service_error.rb
|
206
|
+
- lib/bitbucket_rest_api/error/service_unavailable.rb
|
207
|
+
- lib/bitbucket_rest_api/error/unauthorized.rb
|
208
|
+
- lib/bitbucket_rest_api/error/unknown_value.rb
|
209
|
+
- lib/bitbucket_rest_api/error/unprocessable_entity.rb
|
210
|
+
- lib/bitbucket_rest_api/error/validations.rb
|
211
|
+
- lib/bitbucket_rest_api/error.rb
|
212
|
+
- lib/bitbucket_rest_api/issues/comments.rb
|
213
|
+
- lib/bitbucket_rest_api/issues/components.rb
|
214
|
+
- lib/bitbucket_rest_api/issues/milestones.rb
|
215
|
+
- lib/bitbucket_rest_api/issues.rb
|
216
|
+
- lib/bitbucket_rest_api/normalizer.rb
|
217
|
+
- lib/bitbucket_rest_api/parameter_filter.rb
|
218
|
+
- lib/bitbucket_rest_api/repos/changesets.rb
|
219
|
+
- lib/bitbucket_rest_api/repos/following.rb
|
220
|
+
- lib/bitbucket_rest_api/repos/keys.rb
|
221
|
+
- lib/bitbucket_rest_api/repos.rb
|
222
|
+
- lib/bitbucket_rest_api/request/basic_auth.rb
|
223
|
+
- lib/bitbucket_rest_api/request/jsonize.rb
|
224
|
+
- lib/bitbucket_rest_api/request/oauth.rb
|
225
|
+
- lib/bitbucket_rest_api/request.rb
|
226
|
+
- lib/bitbucket_rest_api/response/helpers.rb
|
227
|
+
- lib/bitbucket_rest_api/response/jsonize.rb
|
228
|
+
- lib/bitbucket_rest_api/response/mashify.rb
|
229
|
+
- lib/bitbucket_rest_api/response/raise_error.rb
|
230
|
+
- lib/bitbucket_rest_api/response/xmlize.rb
|
231
|
+
- lib/bitbucket_rest_api/response.rb
|
232
|
+
- lib/bitbucket_rest_api/result.rb
|
233
|
+
- lib/bitbucket_rest_api/utils/url.rb
|
234
|
+
- lib/bitbucket_rest_api/validations/format.rb
|
235
|
+
- lib/bitbucket_rest_api/validations/presence.rb
|
236
|
+
- lib/bitbucket_rest_api/validations/required.rb
|
237
|
+
- lib/bitbucket_rest_api/validations/token.rb
|
238
|
+
- lib/bitbucket_rest_api/validations.rb
|
239
|
+
- lib/bitbucket_rest_api/version.rb
|
240
|
+
- lib/bitbucket_rest_api.rb
|
241
|
+
- README.md
|
242
|
+
homepage: https://github.com/exceptionary/bitbucket
|
243
|
+
licenses: []
|
244
|
+
post_install_message:
|
245
|
+
rdoc_options: []
|
246
|
+
require_paths:
|
247
|
+
- lib
|
248
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
249
|
+
none: false
|
250
|
+
requirements:
|
251
|
+
- - ! '>='
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
version: '0'
|
254
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
|
+
none: false
|
256
|
+
requirements:
|
257
|
+
- - ! '>='
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: '0'
|
260
|
+
requirements: []
|
261
|
+
rubyforge_project:
|
262
|
+
rubygems_version: 1.8.10
|
263
|
+
signing_key:
|
264
|
+
specification_version: 3
|
265
|
+
summary: Ruby wrapper for the BitBucket API
|
266
|
+
test_files: []
|