tinybucket2 1.0.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.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +86 -0
  3. data/Gemfile +32 -0
  4. data/LICENSE +21 -0
  5. data/README.md +387 -0
  6. data/Rakefile +47 -0
  7. data/lib/faraday_middleware/follow_oauth_redirects.rb +71 -0
  8. data/lib/tinybucket.rb +76 -0
  9. data/lib/tinybucket/api.rb +26 -0
  10. data/lib/tinybucket/api/base_api.rb +44 -0
  11. data/lib/tinybucket/api/branch_restrictions_api.rb +51 -0
  12. data/lib/tinybucket/api/branches_api.rb +48 -0
  13. data/lib/tinybucket/api/build_status_api.rb +69 -0
  14. data/lib/tinybucket/api/comments_api.rb +81 -0
  15. data/lib/tinybucket/api/commits_api.rb +97 -0
  16. data/lib/tinybucket/api/diff_api.rb +40 -0
  17. data/lib/tinybucket/api/helper.rb +27 -0
  18. data/lib/tinybucket/api/helper/api_helper.rb +39 -0
  19. data/lib/tinybucket/api/helper/branch_restrictions_helper.rb +29 -0
  20. data/lib/tinybucket/api/helper/branches_helper.rb +29 -0
  21. data/lib/tinybucket/api/helper/build_status_helper.rb +46 -0
  22. data/lib/tinybucket/api/helper/comments_helper.rb +51 -0
  23. data/lib/tinybucket/api/helper/commits_helper.rb +42 -0
  24. data/lib/tinybucket/api/helper/diff_helper.rb +31 -0
  25. data/lib/tinybucket/api/helper/issues_helper.rb +29 -0
  26. data/lib/tinybucket/api/helper/projects_helper.rb +28 -0
  27. data/lib/tinybucket/api/helper/pull_requests_helper.rb +58 -0
  28. data/lib/tinybucket/api/helper/repo_helper.rb +31 -0
  29. data/lib/tinybucket/api/helper/repos_helper.rb +23 -0
  30. data/lib/tinybucket/api/helper/team_helper.rb +45 -0
  31. data/lib/tinybucket/api/helper/user_helper.rb +33 -0
  32. data/lib/tinybucket/api/issues_api.rb +48 -0
  33. data/lib/tinybucket/api/projects_api.rb +26 -0
  34. data/lib/tinybucket/api/pull_requests_api.rb +117 -0
  35. data/lib/tinybucket/api/repo_api.rb +56 -0
  36. data/lib/tinybucket/api/repos_api.rb +28 -0
  37. data/lib/tinybucket/api/team_api.rb +91 -0
  38. data/lib/tinybucket/api/user_api.rb +66 -0
  39. data/lib/tinybucket/api_factory.rb +21 -0
  40. data/lib/tinybucket/client.rb +107 -0
  41. data/lib/tinybucket/config.rb +10 -0
  42. data/lib/tinybucket/connection.rb +84 -0
  43. data/lib/tinybucket/constants.rb +7 -0
  44. data/lib/tinybucket/enumerator.rb +47 -0
  45. data/lib/tinybucket/error.rb +12 -0
  46. data/lib/tinybucket/error/base_error.rb +14 -0
  47. data/lib/tinybucket/error/conflict.rb +8 -0
  48. data/lib/tinybucket/error/not_found.rb +8 -0
  49. data/lib/tinybucket/error/service_error.rb +26 -0
  50. data/lib/tinybucket/iterator.rb +79 -0
  51. data/lib/tinybucket/model.rb +25 -0
  52. data/lib/tinybucket/model/base.rb +45 -0
  53. data/lib/tinybucket/model/branch.rb +48 -0
  54. data/lib/tinybucket/model/branch_restriction.rb +46 -0
  55. data/lib/tinybucket/model/build_status.rb +57 -0
  56. data/lib/tinybucket/model/comment.rb +67 -0
  57. data/lib/tinybucket/model/commit.rb +114 -0
  58. data/lib/tinybucket/model/concerns.rb +19 -0
  59. data/lib/tinybucket/model/concerns/acceptable_attributes.rb +34 -0
  60. data/lib/tinybucket/model/concerns/api_callable.rb +21 -0
  61. data/lib/tinybucket/model/concerns/enumerable.rb +20 -0
  62. data/lib/tinybucket/model/concerns/reloadable.rb +41 -0
  63. data/lib/tinybucket/model/concerns/repository_keys.rb +45 -0
  64. data/lib/tinybucket/model/error_response.rb +24 -0
  65. data/lib/tinybucket/model/issue.rb +48 -0
  66. data/lib/tinybucket/model/page.rb +45 -0
  67. data/lib/tinybucket/model/profile.rb +70 -0
  68. data/lib/tinybucket/model/project.rb +44 -0
  69. data/lib/tinybucket/model/pull_request.rb +160 -0
  70. data/lib/tinybucket/model/repository.rb +219 -0
  71. data/lib/tinybucket/model/team.rb +96 -0
  72. data/lib/tinybucket/null_logger.rb +37 -0
  73. data/lib/tinybucket/parser.rb +15 -0
  74. data/lib/tinybucket/parser/collection_parser.rb +17 -0
  75. data/lib/tinybucket/parser/object_parser.rb +17 -0
  76. data/lib/tinybucket/request.rb +59 -0
  77. data/lib/tinybucket/resource.rb +75 -0
  78. data/lib/tinybucket/resource/base.rb +35 -0
  79. data/lib/tinybucket/resource/branch_restrictions.rb +47 -0
  80. data/lib/tinybucket/resource/branches.rb +35 -0
  81. data/lib/tinybucket/resource/commit/base.rb +14 -0
  82. data/lib/tinybucket/resource/commit/build_statuses.rb +50 -0
  83. data/lib/tinybucket/resource/commit/comments.rb +34 -0
  84. data/lib/tinybucket/resource/commits.rb +46 -0
  85. data/lib/tinybucket/resource/forks.rb +24 -0
  86. data/lib/tinybucket/resource/issues.rb +35 -0
  87. data/lib/tinybucket/resource/projects.rb +49 -0
  88. data/lib/tinybucket/resource/pull_request/base.rb +20 -0
  89. data/lib/tinybucket/resource/pull_request/comments.rb +32 -0
  90. data/lib/tinybucket/resource/pull_request/commits.rb +19 -0
  91. data/lib/tinybucket/resource/pull_requests.rb +50 -0
  92. data/lib/tinybucket/resource/repos.rb +40 -0
  93. data/lib/tinybucket/resource/team/base.rb +24 -0
  94. data/lib/tinybucket/resource/team/followers.rb +15 -0
  95. data/lib/tinybucket/resource/team/following.rb +15 -0
  96. data/lib/tinybucket/resource/team/members.rb +15 -0
  97. data/lib/tinybucket/resource/team/repos.rb +15 -0
  98. data/lib/tinybucket/resource/teams.rb +22 -0
  99. data/lib/tinybucket/resource/user/base.rb +26 -0
  100. data/lib/tinybucket/resource/user/followers.rb +15 -0
  101. data/lib/tinybucket/resource/user/following.rb +15 -0
  102. data/lib/tinybucket/resource/user/repos.rb +15 -0
  103. data/lib/tinybucket/resource/watchers.rb +24 -0
  104. data/lib/tinybucket/response.rb +9 -0
  105. data/lib/tinybucket/response/handler.rb +23 -0
  106. data/lib/tinybucket/version.rb +5 -0
  107. data/tinybucket.gemspec +30 -0
  108. metadata +248 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1b3bbc5f80275a1a0fd2da53eab7ab2e19ec3edd89f275e53e0db68dbe2f3970
4
+ data.tar.gz: b5c2991791c12fb99e8c40d6fdde1dae46b5b39f01b88a10bad0611e4ce04d12
5
+ SHA512:
6
+ metadata.gz: edcf4de6b9f1117cea5f5ec5d72f0257a326f6f4791c7e7a14e4fbe4373cdad5f036d3e49f8a277082d6dde20fb19c8ee6f0f5cdab5128bba29011052524a009
7
+ data.tar.gz: 375c470e363403cfb271489be4b4c67d17e51df98060c2b2ff8b01fbd118704da89a2e611d0c009c5f8e45d29796c7d61bfe66c0e29761cab2f4e06099939bd6
data/.rubocop.yml ADDED
@@ -0,0 +1,86 @@
1
+ AllCops:
2
+ Include:
3
+ - 'lib/**/*.rb'
4
+ Exclude:
5
+ - '*.rb'
6
+ - 'spec/**/*'
7
+ - 'features/**/*'
8
+ - 'test/**/*'
9
+ - 'Gemfile'
10
+ - 'Guardfile'
11
+ - 'Rakefile'
12
+ - '*.gemspec'
13
+
14
+ Metrics/ClassLength:
15
+ Max: 150
16
+
17
+ MethodLength:
18
+ Max: 30
19
+
20
+ Documentation:
21
+ Enabled: false
22
+
23
+ AndOr:
24
+ Enabled: false
25
+
26
+ ParenthesesAroundCondition:
27
+ Enabled: false
28
+
29
+ Style/MethodCallWithoutArgsParentheses:
30
+ Enabled: false
31
+
32
+ # why use this option ?
33
+ #RedundantBegin:
34
+ # Enabled: false
35
+
36
+ NumericLiterals:
37
+ Enabled: false
38
+
39
+ CyclomaticComplexity:
40
+ Max: 15
41
+
42
+ Next:
43
+ Enabled: false
44
+
45
+ Layout/AlignHash:
46
+ Enabled: false
47
+
48
+ Style/RaiseArgs:
49
+ Enabled: false
50
+
51
+ Style/RedundantFreeze:
52
+ Enabled: false
53
+
54
+ Metrics/AbcSize:
55
+ Max: 18
56
+
57
+ Metrics/LineLength:
58
+ Max: 100
59
+ IgnoredPatterns: [
60
+ '^\s*#',
61
+ 'ruby wrapper for the Bitbucket REST API*'
62
+ ]
63
+
64
+ Style/SymbolArray:
65
+ Enabled: false
66
+
67
+ Style/FormatStringToken:
68
+ Enabled: false
69
+
70
+ Style/RescueStandardError:
71
+ Enabled: false
72
+
73
+ Style/PercentLiteralDelimiters:
74
+ Enabled: false
75
+
76
+ Layout/SpaceAroundOperators:
77
+ Enabled: false
78
+
79
+ Layout/ExtraSpacing:
80
+ Enabled: false
81
+
82
+ Style/SafeNavigation:
83
+ Enabled: false
84
+
85
+ Lint/DuplicateMethods:
86
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,32 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in bitbucket.gemspec
4
+ gemspec
5
+
6
+ gem 'simple-auth', '~> 0.3.1'
7
+ gem 'yard', '~> 0.9.12'
8
+ gem 'yardstick', '~> 0.9.9'
9
+
10
+ group :development, :test do
11
+ gem 'pry'
12
+ gem 'pry-stack_explorer'
13
+ gem 'pry-byebug'
14
+ gem 'pry-rescue'
15
+
16
+ gem 'guard-rspec'
17
+ gem 'guard-spork'
18
+
19
+ gem 'guard-rubocop'
20
+ gem 'gem-release'
21
+
22
+ gem 'rake', '~> 10.4'
23
+ gem 'rspec', '~> 3.4'
24
+ gem 'rspec-mocks', '~> 3.4'
25
+ gem 'webmock', '~> 1.24'
26
+ gem 'rubocop', '~> 0.52.1'
27
+ end
28
+
29
+ group :test do
30
+ gem 'simplecov', '~> 0.13.0', require: false
31
+ gem 'codeclimate-test-reporter', '~> 1.0.8', require: nil
32
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 hirakiuc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,387 @@
1
+ tinybucket gem
2
+ ==========
3
+
4
+ A Ruby client library for Bitbucket REST API v2 with OAuth Authentication.
5
+
6
+ **WARNING** This gem is under development.
7
+
8
+ This gem is inspired by [vongrippen/bitbucket](https://github.com/vongrippen/bitbucket). Thanks.
9
+
10
+ [![Gem Version](https://badge.fury.io/rb/tinybucket.svg)](https://badge.fury.io/rb/tinybucket)
11
+ [![Build Status](https://travis-ci.org/hirakiuc/tinybucket.svg?branch=master)](https://travis-ci.org/hirakiuc/tinybucket)
12
+ [![Code Climate](https://codeclimate.com/github/hirakiuc/tinybucket/badges/gpa.svg)](https://codeclimate.com/github/hirakiuc/tinybucket)
13
+ [![Test Coverage](https://codeclimate.com/github/hirakiuc/tinybucket/badges/coverage.svg)](https://codeclimate.com/github/hirakiuc/tinybucket/coverage)
14
+ [![Inline docs](http://inch-ci.org/github/hirakiuc/tinybucket.svg?branch=master)](http://inch-ci.org/github/hirakiuc/tinybucket)
15
+
16
+ [yard doc](http://www.rubydoc.info/github/hirakiuc/tinybucket/master) (master branch)
17
+
18
+ ## Installation
19
+
20
+ Add this line to your application's Gemfile:
21
+
22
+ gem 'tinybucket'
23
+
24
+ And then execute:
25
+
26
+ $ bundle
27
+
28
+ Or install it yourself as:
29
+
30
+ $ gem install tinybucket
31
+
32
+ ## Usage
33
+
34
+ **WARNING** These specs will be changed at any time.
35
+
36
+ NOTE: `x` mark means `Already implemented.`.
37
+
38
+ ### Configure
39
+
40
+ ```ruby
41
+ logger = Logger.new($stdout)
42
+ logger.level = Logger::WARN
43
+
44
+ Tinybucket.configure do |config|
45
+ # Configure logger if you want.
46
+ #
47
+ # optional, default: nil (no logging)
48
+ config.logger = logger
49
+
50
+ # Configure cache_store options if you need.
51
+ #
52
+ # see https://github.com/plataformatec/faraday-http-cache
53
+ #
54
+ # optional, default: nil (disable request cache)
55
+ config.cache_store_options = { store: Rails.cache, logger: logger }
56
+
57
+ # Configure access_token if you can prepare OAuth2 access_token.
58
+ config.access_token = 'your_access_token'
59
+
60
+ # Configure oauth_token/oauth_secret if you want to use OAuth1.0 authentication.
61
+ # (This config will be ignored if you configure OAuth2 access_token.)
62
+ config.oauth_token = 'key'
63
+ config.oauth_secret = 'secret'
64
+ end
65
+ ```
66
+
67
+ ### Pagination
68
+
69
+ After v1.0.0, tinybucket gem support [lazy enumerator](http://ruby-doc.org/core-2.2.0/Enumerator/Lazy.html) !
70
+
71
+ This feature make your code more rubyish, like this.
72
+
73
+ ```ruby
74
+ # get enumerator to enumerate repositories.
75
+ repos = bucket.repos('myname')
76
+
77
+ # Select repositories which has 2 pull requests to be reviewed.
78
+ repos = repos('my_name').select do |repo|
79
+ repo.pull_requests.size > 2
80
+ end.map(&:full_name)
81
+ ```
82
+
83
+ This enumerable feature depends on [Paging through object collections](https://developer.atlassian.com/bitbucket/api/2/reference/meta/pagination) at Bitbucket Cloud REST API.
84
+
85
+ #### NOTE: About `size` attribute
86
+
87
+ [object collections wrapper](https://developer.atlassian.com/bitbucket/api/2/reference/meta/pagination) has `size` attribute at Bitbucket Cloud REST API.
88
+
89
+ The `size` attribute describe as `optional` attribute.
90
+
91
+ In tinybucket gem, collection size depend on `side` attribute of [object collections wrapper](https://developer.atlassian.com/bitbucket/api/2/reference/meta/pagination) in Bitbucket Cloud REST API.
92
+
93
+ So enumerator's `size` attribute may return `nil`.
94
+
95
+ ### init
96
+
97
+ ```ruby
98
+ bucket = Tinybucket.new
99
+ ```
100
+
101
+ ### Endpoints
102
+
103
+ #### teams Endpoint
104
+
105
+ ```ruby
106
+ # [x] GET the team profile
107
+ team = bucket.team('team name')
108
+
109
+ # [x] GET the team members
110
+ members = team.members
111
+
112
+ # [x] GET the team followers
113
+ followers = team.followers
114
+
115
+ # [x] GET a list of accounts the team is following
116
+ following = team.following
117
+
118
+ # [x] GET the team's repositories
119
+ repos = team.repos
120
+ ```
121
+
122
+ #### users Endpoint
123
+
124
+ ```ruby
125
+ # [x] GET the user profile
126
+ user = bucket.user('user name')
127
+
128
+ # [x] GET the list of followers
129
+ followers = user.followers
130
+
131
+ # [x] GET a list of accounts the user is following
132
+ followings = user.followings
133
+
134
+ # [x] GET the user's repositories
135
+ repos = user.repos
136
+ ```
137
+
138
+ #### repositories Endpoint
139
+
140
+ ```ruby
141
+ # [x] GET a list of all public repositories
142
+ repos = bucket.repos
143
+
144
+ # [x] GET a list of repositories owned by the account 'someone'
145
+ repos = bucket.repos('someone')
146
+ ```
147
+
148
+ ##### repository Resource
149
+
150
+ ###### Collection Methods
151
+
152
+ ```ruby
153
+ repos = bucket.repos('myname')
154
+
155
+ # [ ] POST a new repository
156
+ repos.create(params)
157
+ ```
158
+
159
+ ###### Object Methods
160
+
161
+ ```ruby
162
+ # [x] GET a repository
163
+ repo = bucket.repo('someone', 'great_repo')
164
+
165
+ # [x] Load a repository
166
+ # (Load the repository attributes from Bitbucket WebAPI)
167
+ repo.load
168
+
169
+ # [ ] DELETE a repository
170
+ repo.destroy
171
+
172
+ # [x] GET a list of watchers
173
+ watchers = repo.watchers
174
+
175
+ # [x] GET a list of forks
176
+ repos = repo.forks
177
+ ```
178
+
179
+ ##### pullrequests Resource
180
+
181
+ ###### Collection Methods
182
+
183
+ ```ruby
184
+ repo = bucket.repo('someone', 'great_repo')
185
+
186
+ # [x ] GET a list of pull requests
187
+ pull_requests = repo.pull_requests(options)
188
+
189
+ # [ ] POST (create) a new pull request
190
+ pull_requests.create(params)
191
+
192
+ # [ ] GET the log of all of a repository's pull request activity
193
+ activities = pull_requests.activities(options)
194
+ ```
195
+
196
+ ###### Object Methods
197
+
198
+ ```ruby
199
+ repo = bucket.repo('someone', 'great_repo')
200
+
201
+ # [x] GET a specific pull request
202
+ pull_request = repo.pull_request(pr_id)
203
+
204
+ # [ ] PUT a pull request update
205
+ pull_request.update(params)
206
+
207
+ # [x] GET the commits for a pull request
208
+ commits = pull_request.commits
209
+
210
+ # [x] POST a pull request approval
211
+ pull_request.approve
212
+
213
+ # [x] DELETE a pull request approval
214
+ pull_request.unapprove
215
+
216
+ # [x] GET the diff for a pull request
217
+ diff = pull_request.diff
218
+
219
+ # [ ] GET the activity for a pull request
220
+ activities = pull_request.activities(options)
221
+
222
+ # [x] Accept and merge a pull request
223
+ pull_request.merge(options)
224
+
225
+ # [x] Decline or reject a pull request
226
+ pull_request.decline(options)
227
+
228
+ # [x] GET a list of pull request comments
229
+ comments = pull_request.comments
230
+
231
+ # [x] GET an individual pull request comment
232
+ comment = pull_request.comment(comment_id)
233
+ ```
234
+
235
+ ##### commits or commit Resource
236
+
237
+ ###### Collection Methods
238
+
239
+ ```ruby
240
+ repo = bucket.repo('someone', 'great_repo')
241
+
242
+ # [x] GET a commits list for a repository or compare commits across branches
243
+ # branchortag, include, exclude options
244
+ commits = repo.commits(options)
245
+ ```
246
+
247
+ ###### Object Methods
248
+
249
+ ```ruby
250
+ repo = bucket.repo('someone', 'great_repo')
251
+
252
+ # [x] GET an individual commit
253
+ commit = repo.commit('revision')
254
+
255
+ # [x] GET a list of commit comments
256
+ comments = commit.comments
257
+
258
+ # [x] GET an individual commit comment
259
+ comment = commit.comment(comment_id)
260
+
261
+ # [x] POST a commit approval
262
+ commit.approve
263
+
264
+ # [x] DELETE a commit approval
265
+ commit.unapprove
266
+ ```
267
+
268
+ ##### branches Resource
269
+
270
+ ###### Collection Methods
271
+
272
+ ```ruby
273
+ repo = bucket.repo('someone', 'great_repo')
274
+
275
+ # [x ] GET a list of branches
276
+ branches = repo.branches(options)
277
+ ```
278
+
279
+ ###### Object Methods
280
+ ```ruby
281
+ repo = bucket.repo('someone', 'great_repo')
282
+
283
+ # [x] GET a specific branch
284
+ branch = repo.branch(branch_name)
285
+ ```
286
+
287
+ ##### branch-restrictions Resource
288
+
289
+ ###### Collection Methods
290
+
291
+ ```ruby
292
+ repo = bucket.repo('someone', 'great_repo')
293
+
294
+ # [x] GET the branch-restrictions
295
+ restrictions = repo.branch_restrictions
296
+
297
+ # [ ] POST the branch-restrictions
298
+ new_restriction = restrictions.create(params)
299
+ ```
300
+
301
+ ###### Object Methods
302
+
303
+ ```ruby
304
+ repo = bucket.repo('someone', 'great_repo').find
305
+
306
+ # [x] GET a specific restriction
307
+ restriction = repo.branch_restriction(restriction_id)
308
+
309
+ # [ ] PUT a branch restriction update
310
+ restriction.update(params)
311
+
312
+ # [ ] DELETE the branch restriction
313
+ restriction.destroy
314
+ ```
315
+
316
+ ##### diff Resource
317
+
318
+ ```ruby
319
+ repo = bucket.repo('someone', 'great_repo')
320
+ COMMIT_ID = '7e968c5'
321
+
322
+ # [x] GET a diff
323
+ diff = repo.diff(COMMIT_ID)
324
+
325
+ # [x] GET a patch
326
+ patch = repo.patch(COMMIT_ID)
327
+ ```
328
+
329
+ ##### statuses/build Resource
330
+
331
+ ###### Collection Methods
332
+
333
+ ```ruby
334
+ repo = bucket.repo('someone', 'great_repo')
335
+
336
+ COMMIT_ID = '7e968c5'
337
+ commit = repo.commit(COMMIT_ID)
338
+
339
+ BUILD_STATUS_KEY = 'tinybucket'
340
+
341
+ # [x] POST a build status for a commit
342
+ commit.build_statuses.create(
343
+ key: BUILD_STATUS_KEY,
344
+ state: 'INPROGRESS',
345
+ name: 'Name of build',
346
+ url: 'link to the build result',
347
+ description: 'about build'
348
+ )
349
+ ```
350
+
351
+ ###### Object Methods
352
+
353
+ ```
354
+ repo = bucket.repo('someone', 'great_repo')
355
+
356
+ COMMIT_ID = '7e968c5'
357
+ commit = repo.commit(COMMIT_ID)
358
+
359
+ BUILD_STATUS_KEY = 'tinybucket'
360
+
361
+ # [x] GET the build status for a commit
362
+ status = commit.build_status(BUILD_STATUS_KEY)
363
+
364
+ # [x] PUT a build status for a commit
365
+ status.update(
366
+ state: 'SUCCESSFUL',
367
+ name: 'Name of build',
368
+ url: 'link to the build result',
369
+ description: 'about build'
370
+ )
371
+ ```
372
+
373
+ ## Contribution
374
+
375
+ 1. Fork it ( https://github.com/[my-github-username]/bitbucket/fork )
376
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
377
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
378
+ 4. Push to the branch (`git push origin my-new-feature`)
379
+ 5. Create a new Pull Request
380
+
381
+ ## License
382
+
383
+ See LICENSE file.
384
+
385
+ ## Author
386
+
387
+ [hirakiuc](https://github.com/hirakiuc)