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.
- checksums.yaml +7 -0
- data/.rubocop.yml +86 -0
- data/Gemfile +32 -0
- data/LICENSE +21 -0
- data/README.md +387 -0
- data/Rakefile +47 -0
- data/lib/faraday_middleware/follow_oauth_redirects.rb +71 -0
- data/lib/tinybucket.rb +76 -0
- data/lib/tinybucket/api.rb +26 -0
- data/lib/tinybucket/api/base_api.rb +44 -0
- data/lib/tinybucket/api/branch_restrictions_api.rb +51 -0
- data/lib/tinybucket/api/branches_api.rb +48 -0
- data/lib/tinybucket/api/build_status_api.rb +69 -0
- data/lib/tinybucket/api/comments_api.rb +81 -0
- data/lib/tinybucket/api/commits_api.rb +97 -0
- data/lib/tinybucket/api/diff_api.rb +40 -0
- data/lib/tinybucket/api/helper.rb +27 -0
- data/lib/tinybucket/api/helper/api_helper.rb +39 -0
- data/lib/tinybucket/api/helper/branch_restrictions_helper.rb +29 -0
- data/lib/tinybucket/api/helper/branches_helper.rb +29 -0
- data/lib/tinybucket/api/helper/build_status_helper.rb +46 -0
- data/lib/tinybucket/api/helper/comments_helper.rb +51 -0
- data/lib/tinybucket/api/helper/commits_helper.rb +42 -0
- data/lib/tinybucket/api/helper/diff_helper.rb +31 -0
- data/lib/tinybucket/api/helper/issues_helper.rb +29 -0
- data/lib/tinybucket/api/helper/projects_helper.rb +28 -0
- data/lib/tinybucket/api/helper/pull_requests_helper.rb +58 -0
- data/lib/tinybucket/api/helper/repo_helper.rb +31 -0
- data/lib/tinybucket/api/helper/repos_helper.rb +23 -0
- data/lib/tinybucket/api/helper/team_helper.rb +45 -0
- data/lib/tinybucket/api/helper/user_helper.rb +33 -0
- data/lib/tinybucket/api/issues_api.rb +48 -0
- data/lib/tinybucket/api/projects_api.rb +26 -0
- data/lib/tinybucket/api/pull_requests_api.rb +117 -0
- data/lib/tinybucket/api/repo_api.rb +56 -0
- data/lib/tinybucket/api/repos_api.rb +28 -0
- data/lib/tinybucket/api/team_api.rb +91 -0
- data/lib/tinybucket/api/user_api.rb +66 -0
- data/lib/tinybucket/api_factory.rb +21 -0
- data/lib/tinybucket/client.rb +107 -0
- data/lib/tinybucket/config.rb +10 -0
- data/lib/tinybucket/connection.rb +84 -0
- data/lib/tinybucket/constants.rb +7 -0
- data/lib/tinybucket/enumerator.rb +47 -0
- data/lib/tinybucket/error.rb +12 -0
- data/lib/tinybucket/error/base_error.rb +14 -0
- data/lib/tinybucket/error/conflict.rb +8 -0
- data/lib/tinybucket/error/not_found.rb +8 -0
- data/lib/tinybucket/error/service_error.rb +26 -0
- data/lib/tinybucket/iterator.rb +79 -0
- data/lib/tinybucket/model.rb +25 -0
- data/lib/tinybucket/model/base.rb +45 -0
- data/lib/tinybucket/model/branch.rb +48 -0
- data/lib/tinybucket/model/branch_restriction.rb +46 -0
- data/lib/tinybucket/model/build_status.rb +57 -0
- data/lib/tinybucket/model/comment.rb +67 -0
- data/lib/tinybucket/model/commit.rb +114 -0
- data/lib/tinybucket/model/concerns.rb +19 -0
- data/lib/tinybucket/model/concerns/acceptable_attributes.rb +34 -0
- data/lib/tinybucket/model/concerns/api_callable.rb +21 -0
- data/lib/tinybucket/model/concerns/enumerable.rb +20 -0
- data/lib/tinybucket/model/concerns/reloadable.rb +41 -0
- data/lib/tinybucket/model/concerns/repository_keys.rb +45 -0
- data/lib/tinybucket/model/error_response.rb +24 -0
- data/lib/tinybucket/model/issue.rb +48 -0
- data/lib/tinybucket/model/page.rb +45 -0
- data/lib/tinybucket/model/profile.rb +70 -0
- data/lib/tinybucket/model/project.rb +44 -0
- data/lib/tinybucket/model/pull_request.rb +160 -0
- data/lib/tinybucket/model/repository.rb +219 -0
- data/lib/tinybucket/model/team.rb +96 -0
- data/lib/tinybucket/null_logger.rb +37 -0
- data/lib/tinybucket/parser.rb +15 -0
- data/lib/tinybucket/parser/collection_parser.rb +17 -0
- data/lib/tinybucket/parser/object_parser.rb +17 -0
- data/lib/tinybucket/request.rb +59 -0
- data/lib/tinybucket/resource.rb +75 -0
- data/lib/tinybucket/resource/base.rb +35 -0
- data/lib/tinybucket/resource/branch_restrictions.rb +47 -0
- data/lib/tinybucket/resource/branches.rb +35 -0
- data/lib/tinybucket/resource/commit/base.rb +14 -0
- data/lib/tinybucket/resource/commit/build_statuses.rb +50 -0
- data/lib/tinybucket/resource/commit/comments.rb +34 -0
- data/lib/tinybucket/resource/commits.rb +46 -0
- data/lib/tinybucket/resource/forks.rb +24 -0
- data/lib/tinybucket/resource/issues.rb +35 -0
- data/lib/tinybucket/resource/projects.rb +49 -0
- data/lib/tinybucket/resource/pull_request/base.rb +20 -0
- data/lib/tinybucket/resource/pull_request/comments.rb +32 -0
- data/lib/tinybucket/resource/pull_request/commits.rb +19 -0
- data/lib/tinybucket/resource/pull_requests.rb +50 -0
- data/lib/tinybucket/resource/repos.rb +40 -0
- data/lib/tinybucket/resource/team/base.rb +24 -0
- data/lib/tinybucket/resource/team/followers.rb +15 -0
- data/lib/tinybucket/resource/team/following.rb +15 -0
- data/lib/tinybucket/resource/team/members.rb +15 -0
- data/lib/tinybucket/resource/team/repos.rb +15 -0
- data/lib/tinybucket/resource/teams.rb +22 -0
- data/lib/tinybucket/resource/user/base.rb +26 -0
- data/lib/tinybucket/resource/user/followers.rb +15 -0
- data/lib/tinybucket/resource/user/following.rb +15 -0
- data/lib/tinybucket/resource/user/repos.rb +15 -0
- data/lib/tinybucket/resource/watchers.rb +24 -0
- data/lib/tinybucket/response.rb +9 -0
- data/lib/tinybucket/response/handler.rb +23 -0
- data/lib/tinybucket/version.rb +5 -0
- data/tinybucket.gemspec +30 -0
- metadata +248 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
module Helper
|
|
6
|
+
module IssuesHelper
|
|
7
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def path_to_list
|
|
12
|
+
build_path(base_path)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path_to_find(issue)
|
|
16
|
+
build_path(base_path,
|
|
17
|
+
[issue, 'issue'])
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def base_path
|
|
21
|
+
build_path('/repositories',
|
|
22
|
+
[repo_owner, 'repo_owner'],
|
|
23
|
+
[repo_slug, 'repo_slug'],
|
|
24
|
+
'refs', 'issues')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
module Helper
|
|
6
|
+
module ProjectsHelper
|
|
7
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def path_to_list(owner)
|
|
12
|
+
build_path(base_path(owner), '/')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path_to_find(owner, project_key)
|
|
16
|
+
build_path(base_path(owner),
|
|
17
|
+
[project_key, 'project_key'])
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def base_path(owner)
|
|
21
|
+
build_path('/teams',
|
|
22
|
+
[owner, 'owner'],
|
|
23
|
+
'projects')
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
module Helper
|
|
6
|
+
module PullRequestsHelper
|
|
7
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def path_to_list
|
|
12
|
+
base_path
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path_to_find(pr_id)
|
|
16
|
+
build_path(base_path,
|
|
17
|
+
[pr_id, 'pullrequest_id'])
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def path_to_commits(pr_id)
|
|
21
|
+
build_path(base_path,
|
|
22
|
+
[pr_id, 'pullrequest_id'],
|
|
23
|
+
'commits')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def path_to_approve(pr_id)
|
|
27
|
+
build_path(base_path,
|
|
28
|
+
[pr_id, 'pullrequest_id'],
|
|
29
|
+
'approve')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def path_to_diff(pr_id)
|
|
33
|
+
build_path(path_to_find(pr_id),
|
|
34
|
+
'diff')
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def path_to_decline(pr_id)
|
|
38
|
+
build_path(base_path,
|
|
39
|
+
[pr_id, 'pullrequest_id'],
|
|
40
|
+
'decline')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def path_to_merge(pr_id)
|
|
44
|
+
build_path(base_path,
|
|
45
|
+
[pr_id, 'pullrequest_id'],
|
|
46
|
+
'merge')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def base_path
|
|
50
|
+
build_path('/repositories',
|
|
51
|
+
[repo_owner, 'repo_owner'],
|
|
52
|
+
[repo_slug, 'repo_slug'],
|
|
53
|
+
'pullrequests')
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
module Helper
|
|
6
|
+
module RepoHelper
|
|
7
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def path_to_find
|
|
12
|
+
base_path
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path_to_watchers
|
|
16
|
+
build_path(base_path, '/watchers')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def path_to_forks
|
|
20
|
+
build_path(base_path, '/forks')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def base_path
|
|
24
|
+
build_path('/repositories',
|
|
25
|
+
[repo_owner, 'repo_owner'],
|
|
26
|
+
[repo_slug, 'repo_slug'])
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
module Helper
|
|
6
|
+
module ReposHelper
|
|
7
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def path_to_list(options)
|
|
12
|
+
owner = options[:owner]
|
|
13
|
+
return base_path if owner.blank?
|
|
14
|
+
build_path(base_path, [owner, 'owner'])
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def base_path
|
|
18
|
+
'/repositories'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
module Helper
|
|
6
|
+
module TeamHelper
|
|
7
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def path_to_list
|
|
12
|
+
base_path
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path_to_find(name)
|
|
16
|
+
team_path(name)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def path_to_members(name)
|
|
20
|
+
build_path(team_path(name), 'members')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def path_to_followers(name)
|
|
24
|
+
build_path(team_path(name), 'followers')
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def path_to_following(name)
|
|
28
|
+
build_path(team_path(name), 'following')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def path_to_repos(name)
|
|
32
|
+
build_path(team_path(name), 'repositories')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def base_path
|
|
36
|
+
build_path('/teams')
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def team_path(name)
|
|
40
|
+
build_path(base_path, [name, 'teamname'])
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
module Helper
|
|
6
|
+
module UserHelper
|
|
7
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def path_to_find
|
|
12
|
+
base_path
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path_to_followers
|
|
16
|
+
build_path(base_path, 'followers')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def path_to_following
|
|
20
|
+
build_path(base_path, 'following')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def path_to_repos
|
|
24
|
+
build_path('/repositories', [username, 'username'])
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def base_path
|
|
28
|
+
build_path('/users', [username, 'username'])
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
# Issues Api client
|
|
6
|
+
#
|
|
7
|
+
# @!attribute [rw] repo_owner
|
|
8
|
+
# @return [String] repository owner name.
|
|
9
|
+
# @!attribute [rw] repo_slug
|
|
10
|
+
# @return [String] {https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D repo_slug}.
|
|
11
|
+
class IssuesApi < BaseApi
|
|
12
|
+
include Tinybucket::Api::Helper::IssuesHelper
|
|
13
|
+
|
|
14
|
+
attr_accessor :repo_owner, :repo_slug
|
|
15
|
+
|
|
16
|
+
# Send 'GET a Issues list for a repository' request
|
|
17
|
+
#
|
|
18
|
+
# @see https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/refs/Issues#get
|
|
19
|
+
# GET a Issues list for a repository
|
|
20
|
+
#
|
|
21
|
+
# @param options [Hash]
|
|
22
|
+
# @return [Tinybucket::Model::Page]
|
|
23
|
+
def list(options = {})
|
|
24
|
+
get_path(
|
|
25
|
+
path_to_list,
|
|
26
|
+
options,
|
|
27
|
+
get_parser(:collection, Tinybucket::Model::Issue)
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Send 'GET an individual Issue' request
|
|
32
|
+
#
|
|
33
|
+
# @see https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/refs/Issues/%7Bname%7D#get
|
|
34
|
+
# GET an individual Issue
|
|
35
|
+
#
|
|
36
|
+
# @param name [String] The Issue name
|
|
37
|
+
# @param options [Hash]
|
|
38
|
+
# @return [Tinybucket::Model::Issue]
|
|
39
|
+
def find(name, options = {})
|
|
40
|
+
get_path(
|
|
41
|
+
path_to_find(name),
|
|
42
|
+
options,
|
|
43
|
+
get_parser(:object, Tinybucket::Model::Issue)
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
class ProjectsApi < BaseApi
|
|
6
|
+
include Tinybucket::Api::Helper::ProjectsHelper
|
|
7
|
+
attr_accessor :owner
|
|
8
|
+
|
|
9
|
+
def list(options = {})
|
|
10
|
+
get_path(
|
|
11
|
+
path_to_list(owner),
|
|
12
|
+
options,
|
|
13
|
+
get_parser(:collection, Tinybucket::Model::Project)
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def find(project_key, options = {})
|
|
18
|
+
get_path(
|
|
19
|
+
path_to_find(owner, project_key),
|
|
20
|
+
options,
|
|
21
|
+
get_parser(:object, Tinybucket::Model::Project)
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tinybucket
|
|
4
|
+
module Api
|
|
5
|
+
# PullRequests Api client
|
|
6
|
+
#
|
|
7
|
+
# @see https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/pullrequests
|
|
8
|
+
# pullrequests Resource
|
|
9
|
+
#
|
|
10
|
+
# @!attribute [rw] repo_owner
|
|
11
|
+
# @return [String] repository owner name.
|
|
12
|
+
# @!attribute [rw] repo_slug
|
|
13
|
+
# @return [String] {https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D repository slug}.
|
|
14
|
+
class PullRequestsApi < BaseApi
|
|
15
|
+
include Tinybucket::Api::Helper::PullRequestsHelper
|
|
16
|
+
|
|
17
|
+
attr_accessor :repo_owner, :repo_slug
|
|
18
|
+
|
|
19
|
+
# Send 'GET a list of open pull requests' request
|
|
20
|
+
#
|
|
21
|
+
# @param options [Hash]
|
|
22
|
+
# @return [Tinybucket::Model::Page]
|
|
23
|
+
def list(options = {})
|
|
24
|
+
get_path(
|
|
25
|
+
path_to_list,
|
|
26
|
+
options,
|
|
27
|
+
get_parser(:collection, Tinybucket::Model::PullRequest)
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Send 'GET a specific pull request' request
|
|
32
|
+
#
|
|
33
|
+
# @param pr_id [String] The pull request identifier
|
|
34
|
+
# @param options [Hash]
|
|
35
|
+
# @return [Tinybucket::Model::PullRequest]
|
|
36
|
+
def find(pr_id, options = {})
|
|
37
|
+
get_path(
|
|
38
|
+
path_to_find(pr_id),
|
|
39
|
+
options,
|
|
40
|
+
get_parser(:object, Tinybucket::Model::PullRequest)
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Send 'GET the commits for a pull request' request
|
|
45
|
+
#
|
|
46
|
+
# @param pr_id [String] The pull request identifier
|
|
47
|
+
# @param options [Hash]
|
|
48
|
+
# @return [Tinybucket::Model::PullRequest]
|
|
49
|
+
def commits(pr_id, options = {})
|
|
50
|
+
get_path(
|
|
51
|
+
path_to_commits(pr_id),
|
|
52
|
+
options,
|
|
53
|
+
get_parser(:collection, Tinybucket::Model::Commit)
|
|
54
|
+
)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Send 'POST a pull request approval' request
|
|
58
|
+
#
|
|
59
|
+
# @note This method return true if this pull request already approved.
|
|
60
|
+
#
|
|
61
|
+
# @param pr_id [String] The pull request identifier
|
|
62
|
+
# @param options [Hash]
|
|
63
|
+
# @return [true, false]
|
|
64
|
+
def approve(pr_id, options = {})
|
|
65
|
+
result = post_path(path_to_approve(pr_id), options)
|
|
66
|
+
(result['approved'] == true)
|
|
67
|
+
rescue Tinybucket::Error::Conflict => e
|
|
68
|
+
logger.debug 'Already approved: ' + e.inspect
|
|
69
|
+
true
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Send 'DELETE a pull request approval' request
|
|
73
|
+
#
|
|
74
|
+
# @note This method return true if this pull request is not approved yet.
|
|
75
|
+
#
|
|
76
|
+
# @param pr_id [String] The pull request identifier
|
|
77
|
+
# @param options [Hash]
|
|
78
|
+
# @return [true]
|
|
79
|
+
def unapprove(pr_id, options = {})
|
|
80
|
+
delete_path(path_to_approve(pr_id), options)
|
|
81
|
+
true
|
|
82
|
+
rescue Tinybucket::Error::NotFound => e
|
|
83
|
+
logger.debug 'Already unapproved: ' + e.inspect
|
|
84
|
+
true
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Send 'Decline or reject a pull request' request
|
|
88
|
+
#
|
|
89
|
+
# @param pr_id [String] The pull request identifier
|
|
90
|
+
# @param options [Hash]
|
|
91
|
+
# @return [true, false]
|
|
92
|
+
def decline(pr_id, options = {})
|
|
93
|
+
result = post_path(path_to_decline(pr_id), options)
|
|
94
|
+
(result['state'] == 'DECLINED')
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Send 'Accept and merge a pull request' request
|
|
98
|
+
#
|
|
99
|
+
# @param pr_id [String] The pull request identifier
|
|
100
|
+
# @param options [Hash]
|
|
101
|
+
# @return [true, false]
|
|
102
|
+
def merge(pr_id, options = {})
|
|
103
|
+
result = post_path(path_to_merge(pr_id), options)
|
|
104
|
+
(result['state'] == 'MERGED')
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Send 'GET the diff for a pull request' request
|
|
108
|
+
#
|
|
109
|
+
# @param pr_id [String] The pull request identifier
|
|
110
|
+
# @param options [Hash]
|
|
111
|
+
# @return [String] diff as raw text.
|
|
112
|
+
def diff(pr_id, options = {})
|
|
113
|
+
get_path(path_to_diff(pr_id), options)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|