bitbucket_rest_api 0.1.2 → 0.1.4

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 CHANGED
@@ -1,6 +1,8 @@
1
1
  # BitBucketAPI
2
2
 
3
- [Wiki](https://bitbucket.com/vongrippen/bitbucket/wiki) | [RDocs](http://rubydoc.info/github/vongrippen/bitbucket/master/frames)
3
+ [![Gem Version](https://badge.fury.io/rb/bitbucket_rest_api.png)](http://badge.fury.io/rb/bitbucket_rest_api)
4
+
5
+ [Wiki](https://github.com/vongrippen/bitbucket/wiki) | [RDocs](http://rubydoc.info/github/vongrippen/bitbucket/master/frames)
4
6
 
5
7
  A Ruby wrapper for the BitBucket REST API.
6
8
 
@@ -32,7 +34,7 @@ At this stage you can also supply various configuration parameters, such as `:us
32
34
  bitbucket = BitBucket.new oauth_token: 'request_token', oauth_secret: 'request_secret'
33
35
  ```
34
36
 
35
- Alternatively, you can configure the BitBucket settings by passing a block, for instance, with custom enteprise endpoint like
37
+ Alternatively, you can configure the BitBucket settings by passing a block:
36
38
 
37
39
  ```ruby
38
40
  bitbucket = BitBucket.new do |config|
@@ -74,7 +74,10 @@ module BitBucket
74
74
 
75
75
  :Repos => 'repos',
76
76
  #:Error => 'error',
77
- :Issues => 'issues'
77
+ :Issues => 'issues',
78
+ :User => 'user',
79
+ :Users => 'users'
80
+
78
81
  #:Teams => 'teams',
79
82
  #:PullRequests => 'pull_requests',
80
83
  #:Users => 'users',
@@ -44,9 +44,12 @@ module BitBucket
44
44
  # Many of the resources on the users API provide a shortcut for getting
45
45
  # information about the currently authenticated user.
46
46
  def users(options = {})
47
- raise "Unimplemented"
48
- #@users ||= ApiFactory.new 'Users', options
47
+ @users ||= ApiFactory.new 'Users', options
48
+ end
49
+
50
+ def user_api(options = {})
51
+ @user_api ||= ApiFactory.new 'User', options
49
52
  end
50
53
 
51
54
  end # Client
52
- end # BitBucket
55
+ end # BitBucket
@@ -93,6 +93,23 @@ module BitBucket
93
93
 
94
94
  alias :find :get
95
95
 
96
+ # Delete a single issue
97
+ #
98
+ # = Examples
99
+ # bitbucket = BitBucket.new
100
+ # bitbucket.issues.delete 'user-name', 'repo-name', 'issue-id'
101
+ #
102
+ def delete(user_name, repo_name, issue_id, params={ })
103
+ _update_user_repo_params(user_name, repo_name)
104
+ _validate_user_repo_params(user, repo) unless user? && repo?
105
+ _validate_presence_of issue_id
106
+
107
+ normalize! params
108
+ # _merge_mime_type(:issue, params)
109
+
110
+ delete_request("/repositories/#{user}/#{repo}/issues/#{issue_id}", params)
111
+ end
112
+
96
113
  # Create an issue
97
114
  #
98
115
  # = Inputs
@@ -6,9 +6,11 @@ module BitBucket
6
6
 
7
7
  # Load all the modules after initializing Repos to avoid superclass mismatch
8
8
  autoload_all 'bitbucket_rest_api/repos',
9
- :Changesets => 'changesets',
10
- :Keys => 'keys',
11
- :Following => 'following'
9
+ :Changesets => 'changesets',
10
+ :Keys => 'keys',
11
+ :Services => 'services',
12
+ :Following => 'following',
13
+ :Sources => 'sources'
12
14
 
13
15
  DEFAULT_REPO_OPTIONS = {
14
16
  "website" => "",
@@ -52,6 +54,16 @@ module BitBucket
52
54
  @following ||= ApiFactory.new 'Repos::Following'
53
55
  end
54
56
 
57
+ # Access to Repos::Commits API
58
+ def sources
59
+ @sources ||= ApiFactory.new 'Repos::Sources'
60
+ end
61
+
62
+ # Access to Repos::Services API
63
+ def services
64
+ @services ||= ApiFactory.new 'Repos::Services'
65
+ end
66
+
55
67
  # List branches
56
68
  #
57
69
  # = Examples
@@ -0,0 +1,103 @@
1
+ # encoding: utf-8
2
+
3
+ module BitBucket
4
+ class Repos::Services < API
5
+
6
+ REQUIRED_KEY_PARAM_NAMES = %w[ type ].freeze
7
+
8
+ # List services
9
+ #
10
+ # = Examples
11
+ # bitbucket = BitBucket.new
12
+ # bitbucket.repos.services.list 'user-name', 'repo-name'
13
+ # bitbucket.repos.services.list 'user-name', 'repo-name' { |service| ... }
14
+ #
15
+ def list(user_name, repo_name, params={})
16
+ _update_user_repo_params(user_name, repo_name)
17
+ _validate_user_repo_params(user, repo) unless user? && repo?
18
+ normalize! params
19
+
20
+ response = get_request("/repositories/#{user}/#{repo.downcase}/services", params)
21
+ return response unless block_given?
22
+ response.each { |el| yield el }
23
+ end
24
+ alias :all :list
25
+
26
+ # Gets a single service
27
+ #
28
+ # = Examples
29
+ # @bitbucket = BitBucket.new
30
+ # @bitbucket.repos.services.get 'user-name', 'repo-name', 109172378)
31
+ #
32
+ def get(user_name, repo_name, service_id, params={})
33
+ _update_user_repo_params(user_name, repo_name)
34
+ _validate_user_repo_params(user, repo) unless user? && repo?
35
+ _validate_presence_of(service_id)
36
+ normalize! params
37
+
38
+ get_request("/repositories/#{user}/#{repo.downcase}/services/#{service_id}", params)
39
+ end
40
+ alias :find :get
41
+
42
+ # Create a service
43
+ #
44
+ # = Inputs
45
+ # * <tt>:type</tt> - One of the supported services. The type is a case-insensitive value.
46
+ #
47
+ # = Examples
48
+ # bitbucket = BitBucket.new
49
+ # bitbucket.repos.services.create 'user-name', 'repo-name',
50
+ # "type" => "Basecamp",
51
+ # "Password" => "...",
52
+ # "Username" => "...",
53
+ # "Discussion URL" => "..."
54
+ #
55
+ def create(user_name, repo_name, params={})
56
+ _update_user_repo_params(user_name, repo_name)
57
+ _validate_user_repo_params(user, repo) unless user? && repo?
58
+ normalize! params
59
+ assert_required_keys(REQUIRED_KEY_PARAM_NAMES, params)
60
+
61
+ post_request("/repositories/#{user}/#{repo.downcase}/services", params)
62
+ end
63
+
64
+ # Edit a service
65
+ #
66
+ # = Inputs
67
+ # * <tt>:type</tt> - One of the supported services. The type is a case-insensitive value.
68
+ #
69
+ # = Examples
70
+ # bitbucket = BitBucket.new
71
+ # bitbucket.repos.services.edit 'user-name', 'repo-name', 109172378,
72
+ # "type" => "Basecamp",
73
+ # "Password" => "...",
74
+ # "Username" => "...",
75
+ # "Discussion URL" => "..."
76
+ #
77
+ def edit(user_name, repo_name, service_id, params={})
78
+ _update_user_repo_params(user_name, repo_name)
79
+ _validate_user_repo_params(user, repo) unless user? && repo?
80
+ _validate_presence_of(service_id)
81
+
82
+ normalize! params
83
+
84
+ put_request("/repositories/#{user}/#{repo.downcase}/services/#{service_id}", params)
85
+ end
86
+
87
+ # Delete service
88
+ #
89
+ # = Examples
90
+ # @bitbucket = BitBucket.new
91
+ # @bitbucket.repos.services.delete 'user-name', 'repo-name', 109172378
92
+ #
93
+ def delete(user_name, repo_name, service_id, params={})
94
+ _update_user_repo_params(user_name, repo_name)
95
+ _validate_user_repo_params(user, repo) unless user? && repo?
96
+ _validate_presence_of(service_id)
97
+ normalize! params
98
+
99
+ delete_request("/repositories/#{user}/#{repo.downcase}/services/#{service_id}", params)
100
+ end
101
+
102
+ end # Repos::Keys
103
+ end # BitBucket
@@ -0,0 +1,31 @@
1
+ # encoding: utf-8
2
+
3
+ module BitBucket
4
+ class Repos::Sources < API
5
+
6
+ REQUIRED_COMMENT_PARAMS = %w[
7
+ body
8
+ changeset_id
9
+ line
10
+ path
11
+ position
12
+ ].freeze
13
+
14
+ # Gets a source of repo
15
+ #
16
+ # = Examples
17
+ # @bitbucket = BitBucket.new
18
+ # @bitbucket.repos.sources.get 'user-name', 'repo-name', '6dcb09b5b57875f334f61aebed6', 'app/contorllers/')
19
+ #
20
+ def get(user_name, repo_name, sha, path, params={})
21
+ _update_user_repo_params(user_name, repo_name)
22
+ _validate_user_repo_params(user, repo) unless user? && repo?
23
+ _validate_presence_of sha
24
+ normalize! params
25
+
26
+ get_request("/repositories/#{user}/#{repo.downcase}/src/#{sha}/#{path}", params)
27
+ end
28
+ alias :find :get
29
+
30
+ end # Repos::Sources
31
+ end # BitBucket
@@ -0,0 +1,101 @@
1
+ # encoding: utf-8
2
+
3
+ module BitBucket
4
+ class User < API
5
+
6
+
7
+ DEFAULT_USER_OPTIONS = {
8
+ "first_name" => "",
9
+ "last_name" => "",
10
+ "avatar" => ""
11
+ # TODO: can this filed be modified?
12
+ # "resource_uri" => ""
13
+ }.freeze
14
+
15
+ # Creates new User API
16
+ def initialize(options = { })
17
+ super(options)
18
+ end
19
+
20
+ # Gets the basic information associated with an account and
21
+ # a list of all of the repositories owned by the user.
22
+ # See https://confluence.atlassian.com/display/BITBUCKET/user+Endpoint#userEndpoint-GETauserprofile
23
+ #
24
+ # = Examples
25
+ # bitbucket = BitBucket.new
26
+ # bitbucket.user_api.profile
27
+ #
28
+ def profile
29
+ get_request("/user")
30
+ end
31
+
32
+
33
+ # Update a user
34
+
35
+ # = Parameters
36
+ # * <tt>:first_name</tt> Optional string
37
+ # * <tt>:last_name</tt> Optional string
38
+ # * <tt>:avatar</tt> Optional string
39
+ # * <tt>:resource_uri</tt> Optional string
40
+ #
41
+ # = Examples
42
+ #
43
+ # bitbucket = BitBucket.new
44
+ # bitbucket.user_api.update :first_name => 'first-name', :last_name => 'last-name'
45
+ #
46
+
47
+ def update( params={ })
48
+ normalize! params
49
+ filter! DEFAULT_USER_OPTIONS, params
50
+
51
+ put_request("/user", DEFAULT_USER_OPTIONS.merge(params))
52
+
53
+ end
54
+
55
+
56
+ # GET a list of user privileges
57
+ def privileges
58
+ get_request("/user/privileges")
59
+ end
60
+
61
+
62
+
63
+ # GET a list of repositories an account follows
64
+ # Gets the details of the repositories that the individual or team account follows.
65
+ # This call returns the full data about the repositories including
66
+ # if the repository is a fork of another repository.
67
+ # An account always "follows" its own repositories.
68
+ def follows
69
+ get_request("/user/follows")
70
+ end
71
+
72
+
73
+ # GET a list of repositories visible to an account
74
+ # Gets the details of the repositories that the user owns
75
+ # or has at least read access to.
76
+ # Use this if you're looking for a full list of all of the repositories associated with a user.
77
+ def repositories
78
+ get_request("/user/repositories")
79
+ end
80
+
81
+ alias :repos :repositories
82
+
83
+
84
+
85
+ # GET a list of repositories the account is following
86
+ # Gets a list of the repositories the account follows.
87
+ # This is the same list that appears on the Following tab on your account dashboard.
88
+ def overview
89
+ get_request("/user/repositories/overview")
90
+ end
91
+
92
+
93
+
94
+ # GET the list of repositories on the dashboard
95
+ # Gets the repositories list from the account's dashboard.
96
+ def dashboard
97
+ get_request("/user/repositories/dashboard")
98
+ end
99
+
100
+ end # User
101
+ end # BitBucket
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ module BitBucket
4
+ class Users < API
5
+ extend AutoloadHelper
6
+
7
+ # Load all the modules after initializing Repos to avoid superclass mismatch
8
+ autoload_all 'bitbucket_rest_api/users',
9
+ :Account => 'account'
10
+
11
+
12
+ # Creates new Users API
13
+ def initialize(options = { })
14
+ super(options)
15
+ end
16
+
17
+ # Access to Users::Account API
18
+ def account
19
+ @account ||= ApiFactory.new 'Users::Account'
20
+ end
21
+
22
+
23
+ end # Users
24
+ end # BitBucket
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+
3
+ module BitBucket
4
+ class Users::Account < API
5
+
6
+ # API about users/account , please refer to
7
+ # https://confluence.atlassian.com/display/BITBUCKET/account+Resource
8
+ #
9
+
10
+
11
+ # GET the account profile
12
+ #
13
+ def profile(accountname)
14
+ response = get_request("/users/#{accountname}")
15
+ end
16
+
17
+ # GET the account plan
18
+ def plan(accountname)
19
+ response = get_request("/users/#{accountname}/plan")
20
+ end
21
+
22
+ # GET the followers
23
+ def followers(accountname)
24
+ response = get_request("/users/#{accountname}/followers")
25
+ end
26
+
27
+ # GET the events
28
+ def events(accountname)
29
+ response = get_request("/users/#{accountname}/events")
30
+ end
31
+
32
+ end # Users::Account
33
+ end # BitBucket
@@ -4,7 +4,7 @@ module BitBucket
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 1
7
- PATCH = 2
7
+ PATCH = 4
8
8
 
9
9
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitbucket_rest_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-23 00:00:00.000000000Z
12
+ date: 2013-08-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hashie
16
- requirement: &70328638942480 !ruby/object:Gem::Requirement
16
+ requirement: &70216235124080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.2.0
21
+ version: 2.0.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70328638942480
24
+ version_requirements: *70216235124080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: faraday
27
- requirement: &70328638941900 !ruby/object:Gem::Requirement
27
+ requirement: &70216235121480 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.8.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70328638941900
35
+ version_requirements: *70216235121480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_json
38
- requirement: &70328638941380 !ruby/object:Gem::Requirement
38
+ requirement: &70216235110860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,21 +43,21 @@ dependencies:
43
43
  version: '1.3'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70328638941380
46
+ version_requirements: *70216235110860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: faraday_middleware
49
- requirement: &70328638940860 !ruby/object:Gem::Requirement
49
+ requirement: &70216235110340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.1
54
+ version: 0.9.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70328638940860
57
+ version_requirements: *70216235110340
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: nokogiri
60
- requirement: &70328638940400 !ruby/object:Gem::Requirement
60
+ requirement: &70216235109820 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.5.2
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70328638940400
68
+ version_requirements: *70216235109820
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simple_oauth
71
- requirement: &70328638940020 !ruby/object:Gem::Requirement
71
+ requirement: &70216235109320 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70328638940020
79
+ version_requirements: *70216235109320
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &70328638939480 !ruby/object:Gem::Requirement
82
+ requirement: &70216235108660 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70328638939480
90
+ version_requirements: *70216235108660
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: cucumber
93
- requirement: &70328638938900 !ruby/object:Gem::Requirement
93
+ requirement: &70216235108040 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70328638938900
101
+ version_requirements: *70216235108040
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: webmock
104
- requirement: &70328638938340 !ruby/object:Gem::Requirement
104
+ requirement: &70216235107460 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 1.8.0
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70328638938340
112
+ version_requirements: *70216235107460
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: vcr
115
- requirement: &70328638937820 !ruby/object:Gem::Requirement
115
+ requirement: &70216235106880 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 2.2.0
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70328638937820
123
+ version_requirements: *70216235106880
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: simplecov
126
- requirement: &70328638937260 !ruby/object:Gem::Requirement
126
+ requirement: &70216235106360 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 0.6.1
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70328638937260
134
+ version_requirements: *70216235106360
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: guard
137
- requirement: &70328638936820 !ruby/object:Gem::Requirement
137
+ requirement: &70216235105920 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70328638936820
145
+ version_requirements: *70216235105920
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: guard-rspec
148
- requirement: &70328638936360 !ruby/object:Gem::Requirement
148
+ requirement: &70216235105360 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *70328638936360
156
+ version_requirements: *70216235105360
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: guard-cucumber
159
- requirement: &70328638935780 !ruby/object:Gem::Requirement
159
+ requirement: &70216235104840 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *70328638935780
167
+ version_requirements: *70216235104840
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: rake
170
- requirement: &70328638935360 !ruby/object:Gem::Requirement
170
+ requirement: &70216235104420 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: '0'
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *70328638935360
178
+ version_requirements: *70216235104420
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: bundler
181
- requirement: &70328638934840 !ruby/object:Gem::Requirement
181
+ requirement: &70216235103880 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ! '>='
@@ -186,7 +186,7 @@ dependencies:
186
186
  version: '0'
187
187
  type: :development
188
188
  prerelease: false
189
- version_requirements: *70328638934840
189
+ version_requirements: *70216235103880
190
190
  description: ! ' Ruby wrapper for the BitBucket API supporting OAuth and Basic Authentication '
191
191
  email: mcochran@linux.com
192
192
  executables: []
@@ -229,6 +229,8 @@ files:
229
229
  - lib/bitbucket_rest_api/repos/changesets.rb
230
230
  - lib/bitbucket_rest_api/repos/following.rb
231
231
  - lib/bitbucket_rest_api/repos/keys.rb
232
+ - lib/bitbucket_rest_api/repos/services.rb
233
+ - lib/bitbucket_rest_api/repos/sources.rb
232
234
  - lib/bitbucket_rest_api/repos.rb
233
235
  - lib/bitbucket_rest_api/request/basic_auth.rb
234
236
  - lib/bitbucket_rest_api/request/jsonize.rb
@@ -241,6 +243,9 @@ files:
241
243
  - lib/bitbucket_rest_api/response/xmlize.rb
242
244
  - lib/bitbucket_rest_api/response.rb
243
245
  - lib/bitbucket_rest_api/result.rb
246
+ - lib/bitbucket_rest_api/user.rb
247
+ - lib/bitbucket_rest_api/users/account.rb
248
+ - lib/bitbucket_rest_api/users.rb
244
249
  - lib/bitbucket_rest_api/utils/url.rb
245
250
  - lib/bitbucket_rest_api/validations/format.rb
246
251
  - lib/bitbucket_rest_api/validations/presence.rb