tinybucket 0.1.7 → 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 +4 -4
- data/.gitignore +3 -0
- data/.rubocop.yml +2 -1
- data/Gemfile +4 -4
- data/README.md +48 -20
- data/Rakefile +7 -0
- data/lib/tinybucket.rb +7 -4
- data/lib/tinybucket/api/base_api.rb +2 -19
- data/lib/tinybucket/api/branch_restrictions_api.rb +35 -11
- data/lib/tinybucket/api/comments_api.rb +38 -4
- data/lib/tinybucket/api/commits_api.rb +60 -10
- data/lib/tinybucket/api/diff_api.rb +22 -0
- data/lib/tinybucket/api/helper/api_helper.rb +0 -11
- data/lib/tinybucket/api/helper/commits_helper.rb +7 -0
- data/lib/tinybucket/api/pull_requests_api.rb +79 -22
- data/lib/tinybucket/api/repo_api.rb +37 -17
- data/lib/tinybucket/api/repos_api.rb +13 -6
- data/lib/tinybucket/api/team_api.rb +54 -29
- data/lib/tinybucket/api/user_api.rb +43 -23
- data/lib/tinybucket/api_factory.rb +2 -4
- data/lib/tinybucket/client.rb +39 -20
- data/lib/tinybucket/config.rb +1 -1
- data/lib/tinybucket/connection.rb +3 -3
- data/lib/tinybucket/enumerator.rb +44 -0
- data/lib/tinybucket/error.rb +2 -0
- data/lib/tinybucket/error/conflict.rb +6 -0
- data/lib/tinybucket/error/not_found.rb +6 -0
- data/lib/tinybucket/error/service_error.rb +8 -4
- data/lib/tinybucket/iterator.rb +77 -0
- data/lib/tinybucket/model/base.rb +6 -6
- data/lib/tinybucket/model/branch_restriction.rb +27 -0
- data/lib/tinybucket/model/comment.rb +32 -6
- data/lib/tinybucket/model/commit.rb +63 -9
- data/lib/tinybucket/model/concerns.rb +1 -0
- data/lib/tinybucket/model/concerns/enumerable.rb +18 -0
- data/lib/tinybucket/model/error_response.rb +16 -1
- data/lib/tinybucket/model/page.rb +25 -49
- data/lib/tinybucket/model/profile.rb +56 -8
- data/lib/tinybucket/model/pull_request.rb +114 -18
- data/lib/tinybucket/model/repository.rb +177 -36
- data/lib/tinybucket/model/team.rb +70 -10
- data/lib/tinybucket/request.rb +2 -0
- data/lib/tinybucket/response.rb +1 -1
- data/lib/tinybucket/response/handler.rb +21 -0
- data/lib/tinybucket/version.rb +1 -1
- data/spec/fixtures/repositories/test_owner/test_repo/commit/1/approve/post.json +16 -0
- data/spec/lib/tinybucket/api/branch_restrictions_api_spec.rb +1 -2
- data/spec/lib/tinybucket/api/comments_api_spec.rb +1 -2
- data/spec/lib/tinybucket/api/commits_api_spec.rb +92 -3
- data/spec/lib/tinybucket/api/pull_requests_api_spec.rb +34 -4
- data/spec/lib/tinybucket/api/repo_api_spec.rb +1 -2
- data/spec/lib/tinybucket/api/repos_api_spec.rb +1 -2
- data/spec/lib/tinybucket/api/team_api_spec.rb +1 -6
- data/spec/lib/tinybucket/api/user_api_spec.rb +15 -2
- data/spec/lib/tinybucket/api_factory_spec.rb +2 -7
- data/spec/lib/tinybucket/client_spec.rb +10 -25
- data/spec/lib/tinybucket/error/service_error_spec.rb +23 -0
- data/spec/lib/tinybucket/model/commit_spec.rb +27 -4
- data/spec/lib/tinybucket/model/page_spec.rb +0 -30
- data/spec/lib/tinybucket/model/profile_spec.rb +3 -3
- data/spec/lib/tinybucket/model/pull_request_spec.rb +11 -5
- data/spec/lib/tinybucket/model/repository_spec.rb +5 -5
- data/spec/lib/tinybucket/model/team_spec.rb +4 -4
- data/spec/lib/tinybucket_spec.rb +10 -27
- data/spec/spec_helper.rb +3 -2
- data/spec/support/api_response_macros.rb +2 -2
- metadata +12 -3
- data/lib/tinybucket/response/error_handler.rb +0 -14
@@ -1,38 +1,92 @@
|
|
1
1
|
module Tinybucket
|
2
2
|
module Model
|
3
|
+
# Commit Resource
|
4
|
+
#
|
5
|
+
# @see https://confluence.atlassian.com/bitbucket/commits-or-commit-resource-389775478.html
|
6
|
+
# Commit Resource - Bitbucket Cloud REST API document
|
7
|
+
#
|
8
|
+
# @!attribute [rw] hash
|
9
|
+
# @return [String]
|
10
|
+
# @!attribute [rw] links
|
11
|
+
# @return [Hash]
|
12
|
+
# @!attribute [rw] repository
|
13
|
+
# @return [Hash]
|
14
|
+
# @!attribute [rw] author
|
15
|
+
# @return [Hash]
|
16
|
+
# @!attribute [rw] parents
|
17
|
+
# @return [Array]
|
18
|
+
# @!attribute [rw] date
|
19
|
+
# @return [String]
|
20
|
+
# @!attribute [rw] message
|
21
|
+
# @return [String]
|
22
|
+
# @!attribute [rw] participants
|
23
|
+
# @return [Array]
|
24
|
+
# @!attribute [rw] uuid
|
25
|
+
# @return [NillClass]
|
26
|
+
# @!attribute [rw] type
|
27
|
+
# @return [String]
|
3
28
|
class Commit < Base
|
4
29
|
include Tinybucket::Model::Concerns::RepositoryKeys
|
5
|
-
include Tinybucket::Model::Concerns::Reloadable
|
6
30
|
include Tinybucket::Constants
|
7
31
|
|
8
32
|
acceptable_attributes \
|
9
33
|
:hash, :links, :repository, :author, :parents, :date,
|
10
|
-
:message, :participants, :uuid
|
34
|
+
:message, :participants, :uuid, :type
|
11
35
|
|
36
|
+
# Get comments which associate with this commit.
|
37
|
+
#
|
38
|
+
# @param options [Hash]
|
39
|
+
# @return [Tinybucket::Enumerator] enumerator to enumerate comments
|
40
|
+
# as {Tinybucket::Model::Comment} instance.
|
12
41
|
def comments(options = {})
|
13
|
-
|
42
|
+
enumerator(
|
43
|
+
comments_api,
|
44
|
+
:list,
|
45
|
+
options
|
46
|
+
) { |m| block_given? ? yield(m) : m }
|
14
47
|
end
|
15
48
|
|
49
|
+
# Get the specific commit comment which associate with this commit.
|
50
|
+
#
|
51
|
+
# @param comment_id [String] comment id
|
52
|
+
# @param options [Hash]
|
53
|
+
# @return [Tinybucket::Model::Comment]
|
16
54
|
def comment(comment_id, options = {})
|
17
|
-
comments_api
|
55
|
+
comments_api.find(comment_id, options)
|
56
|
+
end
|
57
|
+
|
58
|
+
# Give approval on this commit.
|
59
|
+
#
|
60
|
+
# @param options [Hash]
|
61
|
+
# @return [true, false]
|
62
|
+
def approve(options = {})
|
63
|
+
commit_api.approve(hash, options)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Revoke approval on this commit.
|
67
|
+
#
|
68
|
+
# @param options [Hash]
|
69
|
+
# @return [true, false]
|
70
|
+
def unapprove(options = {})
|
71
|
+
commit_api.unapprove(hash, options)
|
18
72
|
end
|
19
73
|
|
20
74
|
private
|
21
75
|
|
22
|
-
def comments_api
|
76
|
+
def comments_api
|
23
77
|
raise ArgumentError, MISSING_REPOSITORY_KEY unless repo_keys?
|
24
78
|
|
25
|
-
api = create_api('Comments', repo_keys
|
79
|
+
api = create_api('Comments', repo_keys)
|
26
80
|
api.commented_to = self
|
27
81
|
api
|
28
82
|
end
|
29
83
|
|
30
|
-
def commit_api
|
31
|
-
create_api
|
84
|
+
def commit_api
|
85
|
+
create_api('Commits', repo_keys)
|
32
86
|
end
|
33
87
|
|
34
88
|
def load_model
|
35
|
-
commit_api
|
89
|
+
commit_api.find(hash)
|
36
90
|
end
|
37
91
|
end
|
38
92
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Model
|
3
|
+
module Concerns
|
4
|
+
module Enumerable
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
protected
|
9
|
+
|
10
|
+
def enumerator(api_client, method, *args, &block)
|
11
|
+
iter = Tinybucket::Iterator.new(api_client, method, *args)
|
12
|
+
Tinybucket::Enumerator.new(iter, block)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,6 +1,21 @@
|
|
1
1
|
module Tinybucket
|
2
2
|
module Model
|
3
|
-
|
3
|
+
# ErrorResponse
|
4
|
+
#
|
5
|
+
# @see https://confluence.atlassian.com/bitbucket/version-2-423626329.html#Version2-Standardizederrorresponses
|
6
|
+
# Standardized error responses - Bitbucket Cloud REST API document
|
7
|
+
#
|
8
|
+
# @!attribute [rw] message
|
9
|
+
# @return [String]
|
10
|
+
# @!attribute [rw] fields
|
11
|
+
# @return [Hash]
|
12
|
+
# @!attribute [rw] detail
|
13
|
+
# @return [String]
|
14
|
+
# @!attribute [rw] id
|
15
|
+
# @return [String]
|
16
|
+
# @!attribute [rw] uuid
|
17
|
+
# @return [NillClass]
|
18
|
+
class ErrorResponse
|
4
19
|
acceptable_attributes :message, :fields, :detail, :id, :uuid
|
5
20
|
end
|
6
21
|
end
|
@@ -1,66 +1,42 @@
|
|
1
1
|
module Tinybucket
|
2
2
|
module Model
|
3
|
+
# Page
|
4
|
+
#
|
5
|
+
# @see https://confluence.atlassian.com/bitbucket/version-2-423626329.html#Version2-Pagingthroughobjectcollections
|
6
|
+
# Paging through object collections - Bitbucket Cloud REST API document
|
7
|
+
#
|
8
|
+
# @!attribute [r] attrs
|
9
|
+
# This attribute is a Hash object which contains
|
10
|
+
# 'size', 'page', 'pagelen', 'next', 'previous' key/value pairs.
|
11
|
+
# @return [Hash]
|
12
|
+
# @!attribute [r] items
|
13
|
+
# This attribute is a array of model instance created with
|
14
|
+
# 'values' attribute in json.
|
3
15
|
class Page
|
4
|
-
# attr_reader :size, :page, :pagelen, :next, :previous
|
5
16
|
attr_reader :attrs
|
6
17
|
attr_reader :items
|
7
|
-
attr_writer :next_proc
|
8
18
|
|
19
|
+
# Initialize with json and Model class.
|
20
|
+
#
|
21
|
+
# @param json [Hash]
|
22
|
+
# @param item_klass [Class]
|
9
23
|
def initialize(json, item_klass)
|
10
|
-
@attrs =
|
11
|
-
|
12
|
-
@attrs[attr.intern] = json[attr]
|
13
|
-
end
|
14
|
-
|
15
|
-
@items = if json['values'].present? && json['values'].is_a?(Array)
|
16
|
-
json['values'].map { |hash| item_klass.new(hash) }
|
17
|
-
else
|
18
|
-
[]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def size
|
23
|
-
@attrs[:size]
|
24
|
-
end
|
25
|
-
|
26
|
-
def each(options = {})
|
27
|
-
loop do
|
28
|
-
start = (@attrs[:page] - 1) * @attrs[:pagelen]
|
29
|
-
|
30
|
-
@items.each_with_index do |m, i|
|
31
|
-
pos = start + i
|
32
|
-
yield(m, pos)
|
33
|
-
|
34
|
-
raise StopIteration if \
|
35
|
-
(!options[:limit].nil? && pos == (options[:limit] - 1))
|
36
|
-
end
|
37
|
-
|
38
|
-
break unless next_page?
|
39
|
-
|
40
|
-
load_next
|
41
|
-
end
|
42
|
-
|
43
|
-
rescue StopIteration
|
44
|
-
return
|
24
|
+
@attrs = parse_attrs(json)
|
25
|
+
@items = parse_values(json, item_klass)
|
45
26
|
end
|
46
27
|
|
47
28
|
private
|
48
29
|
|
49
|
-
def
|
50
|
-
|
30
|
+
def parse_attrs(json)
|
31
|
+
%w(size page pagelen next previous).map do |attr|
|
32
|
+
{ attr.to_sym => json[attr] }
|
33
|
+
end.reduce(&:merge)
|
51
34
|
end
|
52
35
|
|
53
|
-
def
|
54
|
-
|
55
|
-
|
56
|
-
unescaped_query = URI.unescape(URI.parse(@attrs[:next]).query)
|
57
|
-
query = Hash[*unescaped_query.split(/&|=/)]
|
58
|
-
list = @next_proc.call(query)
|
59
|
-
|
60
|
-
raise StopIteration if list.items.empty?
|
36
|
+
def parse_values(json, item_klass)
|
37
|
+
return [] if json['values'].nil? || !json['values'].is_a?(Array)
|
61
38
|
|
62
|
-
|
63
|
-
@items = list.items
|
39
|
+
json['values'].map { |hash| item_klass.new(hash) }
|
64
40
|
end
|
65
41
|
end
|
66
42
|
end
|
@@ -1,36 +1,84 @@
|
|
1
1
|
module Tinybucket
|
2
2
|
module Model
|
3
|
+
# Profile
|
4
|
+
#
|
5
|
+
# @see https://confluence.atlassian.com/bitbucket/users-endpoint-423626336.html#usersEndpoint-GETtheuserprofile
|
6
|
+
# users Endpoint - Bitbucket Cloud REST API document
|
7
|
+
#
|
8
|
+
# @!attribute [rw] username
|
9
|
+
# @return [String]
|
10
|
+
# @!attribute [rw] kind
|
11
|
+
# @return [NillClass]
|
12
|
+
# @!attribute [rw] website
|
13
|
+
# @return [String]
|
14
|
+
# @!attribute [rw] display_name
|
15
|
+
# @return [String]
|
16
|
+
# @!attribute [rw] links
|
17
|
+
# @return [Hash]
|
18
|
+
# @!attribute [rw] created_on
|
19
|
+
# @return [String]
|
20
|
+
# @!attribute [rw] location
|
21
|
+
# @return [String]
|
22
|
+
# @!attribute [rw] type
|
23
|
+
# @return [String]
|
24
|
+
# @!attribute [rw] uuid
|
25
|
+
# @return [String]
|
3
26
|
class Profile < Base
|
4
|
-
include Tinybucket::Model::Concerns::Reloadable
|
5
|
-
|
6
27
|
acceptable_attributes \
|
7
28
|
:username, :kind, :website, :display_name,
|
8
29
|
:links, :created_on, :location, :type, :uuid
|
9
30
|
|
31
|
+
# Get this user's followers
|
32
|
+
#
|
33
|
+
# @param options [Hash]
|
34
|
+
# @return [Tinybucket::Enumerator] enumerator to enumerate followers
|
35
|
+
# as {Tinybucket::Model::Profile} instance.
|
10
36
|
def followers(options = {})
|
11
|
-
|
37
|
+
enumerator(
|
38
|
+
user_api,
|
39
|
+
:followers,
|
40
|
+
options
|
41
|
+
) { |m| block_given? ? yield(m) : m }
|
12
42
|
end
|
13
43
|
|
44
|
+
# Get users which this user is following
|
45
|
+
#
|
46
|
+
# @param options [Hash]
|
47
|
+
# @return [Tinybucket::Enumerator] an enumerator to enumerate followings
|
48
|
+
# as {Tinybucket::Model::Profile} instance.
|
14
49
|
def following(options = {})
|
15
|
-
|
50
|
+
enumerator(
|
51
|
+
user_api,
|
52
|
+
:following,
|
53
|
+
options
|
54
|
+
) { |m| block_given? ? yield(m) : m }
|
16
55
|
end
|
17
56
|
|
57
|
+
# Get this user's repositories
|
58
|
+
#
|
59
|
+
# @param options [Hash]
|
60
|
+
# @return [Tinybucket::Enumerator] an enumerator to enumerate repositories
|
61
|
+
# as {Tinybucket::Model::Repository} instance.
|
18
62
|
def repos(options = {})
|
19
|
-
|
63
|
+
enumerator(
|
64
|
+
user_api,
|
65
|
+
:repos,
|
66
|
+
options
|
67
|
+
) { |m| block_given? ? yield(m) : m }
|
20
68
|
end
|
21
69
|
|
22
70
|
private
|
23
71
|
|
24
|
-
def user_api
|
72
|
+
def user_api
|
25
73
|
return @user if @user
|
26
74
|
|
27
|
-
@user = create_instance
|
75
|
+
@user = create_instance('User')
|
28
76
|
@user.username = username
|
29
77
|
@user
|
30
78
|
end
|
31
79
|
|
32
80
|
def load_model
|
33
|
-
user_api
|
81
|
+
user_api.profile
|
34
82
|
end
|
35
83
|
end
|
36
84
|
end
|
@@ -1,71 +1,167 @@
|
|
1
1
|
module Tinybucket
|
2
2
|
module Model
|
3
|
+
# PullRequest
|
4
|
+
#
|
5
|
+
# @see https://confluence.atlassian.com/bitbucket/pullrequests-resource-423626332.html#pullrequestsResource-Overview
|
6
|
+
# pullrequest resource - Bitbucket Cloud REST API document
|
7
|
+
#
|
8
|
+
# @!attribute [rw] state
|
9
|
+
# @return [String]
|
10
|
+
# @!attribute [rw] description
|
11
|
+
# @return [String]
|
12
|
+
# @!attribute [rw] links
|
13
|
+
# @return [Hash]
|
14
|
+
# @!attribute [rw] title
|
15
|
+
# @return [String]
|
16
|
+
# @!attribute [rw] task_count
|
17
|
+
# @return [Fixnum]
|
18
|
+
# @!attribute [rw] comment_count
|
19
|
+
# @return [Fixnum]
|
20
|
+
# @!attribute [rw] close_source_branch
|
21
|
+
# @return [true, false]
|
22
|
+
# @!attribute [rw] destination
|
23
|
+
# @return [Hash]
|
24
|
+
# @!attribute [rw] reason
|
25
|
+
# @return [String]
|
26
|
+
# @!attribute [rw] id
|
27
|
+
# @return [Fixnum]
|
28
|
+
# @!attribute [rw] source
|
29
|
+
# @return [Hash]
|
30
|
+
# @!attribute [rw] created_on
|
31
|
+
# @return [String]
|
32
|
+
# @!attribute [rw] author
|
33
|
+
# @return [Hash]
|
34
|
+
# @!attribute [rw] updated_on
|
35
|
+
# @return [String]
|
36
|
+
# @!attribute [rw] merge_commit
|
37
|
+
# @return [Hash]
|
38
|
+
# @!attribute [rw] closed_by
|
39
|
+
# @return [Hash]
|
40
|
+
# @!attribute [rw] reviewers
|
41
|
+
# @return [Array]
|
42
|
+
# @!attribute [rw] participants
|
43
|
+
# @return [Array]
|
44
|
+
# @!attribute [rw] uuid
|
45
|
+
# @return [NillClass]
|
46
|
+
# @!attribute [rw] type
|
47
|
+
# @return [String]
|
3
48
|
class PullRequest < Base
|
4
49
|
include Tinybucket::Model::Concerns::RepositoryKeys
|
5
|
-
include Tinybucket::Model::Concerns::Reloadable
|
6
50
|
include Tinybucket::Constants
|
7
51
|
|
8
52
|
acceptable_attributes \
|
9
|
-
:state, :description, :links, :title, :
|
10
|
-
:destination, :reason, :id, :source,
|
11
|
-
:
|
12
|
-
|
53
|
+
:state, :description, :links, :title, :task_count, :comment_count,
|
54
|
+
:close_source_branch, :destination, :reason, :id, :source,
|
55
|
+
:created_on, :author, :updated_on, :merge_commit, :closed_by,
|
56
|
+
:reviewers, :participants, :uuid, :type
|
57
|
+
|
58
|
+
# Create a new pull request.
|
59
|
+
#
|
60
|
+
# @todo to be implemented.
|
61
|
+
# @raise [NotImplementedError] to be implemented.
|
13
62
|
def create(_params)
|
14
63
|
raise NotImplementedError
|
15
64
|
end
|
16
65
|
|
66
|
+
# Update this pull request.
|
67
|
+
#
|
68
|
+
# @todo to be implemented.
|
69
|
+
# @raise [NotImplementedError] to be implemented.
|
17
70
|
def update(_params)
|
18
71
|
raise NotImplementedError
|
19
72
|
end
|
20
73
|
|
74
|
+
# Decline or reject this pull request.
|
75
|
+
#
|
76
|
+
# @param options [Hash]
|
77
|
+
# @return [true,false]
|
21
78
|
def decline(options = {})
|
22
|
-
pull_request_api
|
79
|
+
pull_request_api.decline(id, options)
|
23
80
|
end
|
24
81
|
|
82
|
+
# Give approval on this pull request.
|
83
|
+
#
|
84
|
+
# @param options [Hash]
|
85
|
+
# @return [true, false]
|
25
86
|
def approve(options = {})
|
26
|
-
pull_request_api
|
87
|
+
pull_request_api.approve(id, options)
|
27
88
|
end
|
28
89
|
|
90
|
+
# Revoke approval on this pull request.
|
91
|
+
#
|
92
|
+
# @param options [Hash]
|
93
|
+
# @return [true, false]
|
29
94
|
def unapprove(options = {})
|
30
|
-
pull_request_api
|
95
|
+
pull_request_api.unapprove(id, options)
|
31
96
|
end
|
32
97
|
|
98
|
+
# Get commits associated with this pull request.
|
99
|
+
#
|
100
|
+
# @param options [Hash]
|
101
|
+
# @return [Tinybucket::Enumerator] enumerator to enumerate commits
|
102
|
+
# as {Tinybucket::Model::Commit} instance.
|
33
103
|
def commits(options = {})
|
34
|
-
|
104
|
+
enumerator(
|
105
|
+
pull_request_api,
|
106
|
+
:commits,
|
107
|
+
id,
|
108
|
+
options
|
109
|
+
) { |m| block_given? ? yield(m) : m }
|
35
110
|
end
|
36
111
|
|
112
|
+
# Get comments on this pull request.
|
113
|
+
#
|
114
|
+
# @param options [Hash]
|
115
|
+
# @return [Tinybucket::Enumerator] enumerator to enumerate comments
|
116
|
+
# as {Tinybucket::Model::Comment} instance.
|
37
117
|
def comments(options = {})
|
38
|
-
|
118
|
+
enumerator(
|
119
|
+
comment_api,
|
120
|
+
:list,
|
121
|
+
options
|
122
|
+
) { |m| block_given? ? yield(m) : m }
|
39
123
|
end
|
40
124
|
|
125
|
+
# Get the specific comment on this pull request.
|
126
|
+
#
|
127
|
+
# @param options [Hash]
|
128
|
+
# @return [Tinybucket::Model::Comment]
|
41
129
|
def comment(comment_id, options = {})
|
42
|
-
comment_api
|
130
|
+
comment_api.find(comment_id, options)
|
43
131
|
end
|
44
132
|
|
133
|
+
# Get the diff for this pull request.
|
134
|
+
#
|
135
|
+
# @param options [Hash]
|
136
|
+
# @return [String] diff as raw text.
|
45
137
|
def diff(options = {})
|
46
|
-
pull_request_api
|
138
|
+
pull_request_api.diff(id, options)
|
47
139
|
end
|
48
140
|
|
141
|
+
# Accept and merge this pull request.
|
142
|
+
#
|
143
|
+
# @param options [Hash]
|
144
|
+
# @return [true, false]
|
49
145
|
def merge(options = {})
|
50
|
-
pull_request_api
|
146
|
+
pull_request_api.merge(id, options)
|
51
147
|
end
|
52
148
|
|
53
149
|
private
|
54
150
|
|
55
|
-
def comment_api
|
56
|
-
api = create_api('Comments', repo_keys
|
151
|
+
def comment_api
|
152
|
+
api = create_api('Comments', repo_keys)
|
57
153
|
api.commented_to = self
|
58
154
|
api
|
59
155
|
end
|
60
156
|
|
61
|
-
def pull_request_api
|
157
|
+
def pull_request_api
|
62
158
|
raise ArgumentError, MISSING_REPOSITORY_KEY unless repo_keys?
|
63
159
|
|
64
|
-
create_api('PullRequests', repo_keys
|
160
|
+
create_api('PullRequests', repo_keys)
|
65
161
|
end
|
66
162
|
|
67
163
|
def load_model
|
68
|
-
pull_request_api
|
164
|
+
pull_request_api.find(id)
|
69
165
|
end
|
70
166
|
end
|
71
167
|
end
|