gitlab 4.6.0 → 4.7.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gitlab/client/access_requests.rb +92 -90
  3. data/lib/gitlab/client/award_emojis.rb +126 -124
  4. data/lib/gitlab/client/boards.rb +81 -79
  5. data/lib/gitlab/client/branches.rb +89 -87
  6. data/lib/gitlab/client/build_variables.rb +117 -115
  7. data/lib/gitlab/client/builds.rb +98 -96
  8. data/lib/gitlab/client/commits.rb +167 -152
  9. data/lib/gitlab/client/deployments.rb +29 -27
  10. data/lib/gitlab/client/environments.rb +80 -78
  11. data/lib/gitlab/client/events.rb +54 -52
  12. data/lib/gitlab/client/group_milestones.rb +85 -83
  13. data/lib/gitlab/client/groups.rb +178 -176
  14. data/lib/gitlab/client/issues.rb +212 -188
  15. data/lib/gitlab/client/jobs.rb +150 -148
  16. data/lib/gitlab/client/keys.rb +14 -12
  17. data/lib/gitlab/client/labels.rb +79 -77
  18. data/lib/gitlab/client/merge_request_approvals.rb +101 -99
  19. data/lib/gitlab/client/merge_requests.rb +291 -277
  20. data/lib/gitlab/client/milestones.rb +85 -83
  21. data/lib/gitlab/client/namespaces.rb +18 -16
  22. data/lib/gitlab/client/notes.rb +260 -258
  23. data/lib/gitlab/client/pipeline_schedules.rb +123 -121
  24. data/lib/gitlab/client/pipeline_triggers.rb +93 -91
  25. data/lib/gitlab/client/pipelines.rb +73 -60
  26. data/lib/gitlab/client/projects.rb +538 -524
  27. data/lib/gitlab/client/repositories.rb +67 -65
  28. data/lib/gitlab/client/repository_files.rb +103 -101
  29. data/lib/gitlab/client/runners.rb +114 -112
  30. data/lib/gitlab/client/services.rb +45 -43
  31. data/lib/gitlab/client/sidekiq.rb +32 -30
  32. data/lib/gitlab/client/snippets.rb +86 -84
  33. data/lib/gitlab/client/system_hooks.rb +57 -55
  34. data/lib/gitlab/client/tags.rb +88 -86
  35. data/lib/gitlab/client/todos.rb +40 -38
  36. data/lib/gitlab/client/users.rb +243 -241
  37. data/lib/gitlab/client/versions.rb +13 -11
  38. data/lib/gitlab/error.rb +1 -1
  39. data/lib/gitlab/help.rb +1 -1
  40. data/lib/gitlab/page_links.rb +1 -1
  41. data/lib/gitlab/version.rb +1 -1
  42. metadata +3 -3
@@ -1,110 +1,112 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Defines methods related to MR Approvals.
4
- # @see https://docs.gitlab.com/ee/api/merge_request_approvals.html
5
- module MergeRequestApprovals
6
- # Gets MR Approval Configuration for a project
7
- #
8
- # @example
9
- # Gitlab.project_merge_request_approvals(1)
10
- #
11
- # @param [Integer] project The ID of a project.
12
- # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
13
- def project_merge_request_approvals(project)
14
- get("/projects/#{url_encode project}/approvals")
15
- end
3
+ class Gitlab::Client
4
+ # Defines methods related to MR Approvals.
5
+ # @see https://docs.gitlab.com/ee/api/merge_request_approvals.html
6
+ module MergeRequestApprovals
7
+ # Gets MR Approval Configuration for a project
8
+ #
9
+ # @example
10
+ # Gitlab.project_merge_request_approvals(1)
11
+ #
12
+ # @param [Integer] project The ID of a project.
13
+ # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
14
+ def project_merge_request_approvals(project)
15
+ get("/projects/#{url_encode project}/approvals")
16
+ end
16
17
 
17
- # Change MR Approval Configuration for a project
18
- #
19
- # @example
20
- # Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3})
21
- # Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3, reset_approvals_on_push: true})
22
- # Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3, disable_overriding_approvers_per_merge_request: false})
23
- #
24
- # @param [Integer] project(required) The ID of a project.
25
- # @option options [Integer] :approvals_before_merge(optional) How many approvals are required before an MR can be merged
26
- # @option options [Boolean] :reset_approvals_on_push(optional) Reset approvals on a new push
27
- # @option options [Boolean] :disable_overriding_approvers_per_merge_request(optional) Allow/Disallow overriding approvers per MR
28
- # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
29
- def edit_project_merge_request_approvals(project, options = {})
30
- post("/projects/#{url_encode project}/approvals", body: options)
31
- end
18
+ # Change MR Approval Configuration for a project
19
+ #
20
+ # @example
21
+ # Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3})
22
+ # Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3, reset_approvals_on_push: true})
23
+ # Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3, disable_overriding_approvers_per_merge_request: false})
24
+ #
25
+ # @param [Integer] project(required) The ID of a project.
26
+ # @option options [Integer] :approvals_before_merge(optional) How many approvals are required before an MR can be merged
27
+ # @option options [Boolean] :reset_approvals_on_push(optional) Reset approvals on a new push
28
+ # @option options [Boolean] :disable_overriding_approvers_per_merge_request(optional) Allow/Disallow overriding approvers per MR
29
+ # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
30
+ def edit_project_merge_request_approvals(project, options = {})
31
+ post("/projects/#{url_encode project}/approvals", body: options)
32
+ end
32
33
 
33
- # Change allowed approvers and approver groups for a project
34
- #
35
- # @example
36
- # Gitlab.edit_project_approvers(1, {approver_ids: [5], approver_groups: [1]})
37
- #
38
- # @param [Integer] project(required) The ID of a project.
39
- # @option options [Array] :approver_ids(optional) An array of User IDs that can approve MRs
40
- # @option options [Array] :approver_group_ids(optional) An array of Group IDs whose members can approve MRs
41
- # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
42
- def edit_project_approvers(project, options = {})
43
- put("/projects/#{url_encode project}/approvals", body: options)
44
- end
34
+ # Change allowed approvers and approver groups for a project
35
+ #
36
+ # @example
37
+ # Gitlab.edit_project_approvers(1, {approver_ids: [5], approver_groups: [1]})
38
+ #
39
+ # @param [Integer] project(required) The ID of a project.
40
+ # @option options [Array] :approver_ids(optional) An array of User IDs that can approve MRs
41
+ # @option options [Array] :approver_group_ids(optional) An array of Group IDs whose members can approve MRs
42
+ # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
43
+ def edit_project_approvers(project, options = {})
44
+ put("/projects/#{url_encode project}/approvals", body: options)
45
+ end
45
46
 
46
- # Get Configuration for approvals on a specific Merge Request.
47
- #
48
- # @example
49
- # Gitlab.merge_request_approvals(1, 5)
50
- #
51
- # @param [Integer] project(required) The ID of a project.
52
- # @param [Integer] merge_request(required) The IID of a merge_request.
53
- # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the merge request
54
- def merge_request_approvals(project, merge_request)
55
- get("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals")
56
- end
47
+ # Get Configuration for approvals on a specific Merge Request.
48
+ #
49
+ # @example
50
+ # Gitlab.merge_request_approvals(1, 5)
51
+ #
52
+ # @param [Integer] project(required) The ID of a project.
53
+ # @param [Integer] merge_request(required) The IID of a merge_request.
54
+ # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the merge request
55
+ def merge_request_approvals(project, merge_request)
56
+ get("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals")
57
+ end
57
58
 
58
- # Change configuration for approvals on a specific merge request.
59
- #
60
- # @example
61
- # Gitlab.edit_merge_request_approvals(1, 5, approvals_required: 2)
62
- #
63
- # @param [Integer] project(required) The ID of a project.
64
- # @param [Integer] merge_request(required) The IID of a merge_request.
65
- # @option options [Integer] :approvals_required(required) Approvals required before MR can be merged
66
- # @return [Gitlab::ObjectifiedHash] Updated MR approval configuration information about the merge request
67
- def edit_merge_request_approvals(project, merge_request, options = {})
68
- post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals", body: options)
69
- end
59
+ # Change configuration for approvals on a specific merge request.
60
+ #
61
+ # @example
62
+ # Gitlab.edit_merge_request_approvals(1, 5, approvals_required: 2)
63
+ #
64
+ # @param [Integer] project(required) The ID of a project.
65
+ # @param [Integer] merge_request(required) The IID of a merge_request.
66
+ # @option options [Integer] :approvals_required(required) Approvals required before MR can be merged
67
+ # @return [Gitlab::ObjectifiedHash] Updated MR approval configuration information about the merge request
68
+ def edit_merge_request_approvals(project, merge_request, options = {})
69
+ post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals", body: options)
70
+ end
70
71
 
71
- # Change allowed approvers and approver groups for a merge request
72
- #
73
- # @example
74
- # Gitlab.edit_merge_request_approvers(1, 5, {approver_ids: [5], approver_groups: [1]})
75
- #
76
- # @param [Integer] project(required) The ID of a project.
77
- # @param [Integer] merge_request(required) The IID of a merge_request.
78
- # @option options [Array] :approver_ids(optional) An array of User IDs that can approve MRs
79
- # @option options [Array] :approver_group_ids(optional) An array of Group IDs whose members can approve MRs
80
- # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
81
- def edit_merge_request_approvers(project, merge_request, options = {})
82
- put("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals", body: options)
83
- end
72
+ # Change allowed approvers and approver groups for a merge request
73
+ #
74
+ # @example
75
+ # Gitlab.edit_merge_request_approvers(1, 5, {approver_ids: [5], approver_groups: [1]})
76
+ #
77
+ # @param [Integer] project(required) The ID of a project.
78
+ # @param [Integer] merge_request(required) The IID of a merge_request.
79
+ # @option options [Array] :approver_ids(optional) An array of User IDs that can approve MRs
80
+ # @option options [Array] :approver_group_ids(optional) An array of Group IDs whose members can approve MRs
81
+ # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
82
+ def edit_merge_request_approvers(project, merge_request, options = {})
83
+ put("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals", body: options)
84
+ end
84
85
 
85
- # Approve a merge request
86
- #
87
- # @example
88
- # Gitlab.approve_merge_request(1, 5)
89
- # Gitlab.approve_merge_request(1, 5, sha: 'fe678da')
90
- #
91
- # @param [Integer] project(required) The ID of a project.
92
- # @param [Integer] merge_request(required) The IID of a merge request.
93
- # @option options [String] :sha(optional) The HEAD of the MR
94
- # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
95
- def approve_merge_request(project, merge_request, options = {})
96
- post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approve", body: options)
97
- end
86
+ # Approve a merge request
87
+ #
88
+ # @example
89
+ # Gitlab.approve_merge_request(1, 5)
90
+ # Gitlab.approve_merge_request(1, 5, sha: 'fe678da')
91
+ #
92
+ # @param [Integer] project(required) The ID of a project.
93
+ # @param [Integer] merge_request(required) The IID of a merge request.
94
+ # @option options [String] :sha(optional) The HEAD of the MR
95
+ # @return [Gitlab::ObjectifiedHash] MR approval configuration information about the project
96
+ def approve_merge_request(project, merge_request, options = {})
97
+ post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approve", body: options)
98
+ end
98
99
 
99
- # Unapprove a merge request
100
- #
101
- # @example
102
- # Gitlab.unapprove_merge_request(1, 5)
103
- #
104
- # @param [Integer] project(required) The ID of a project.
105
- # @param [Integer] merge_request(required) The IID of a merge request.
106
- # @return [void] This API call returns an empty response body.
107
- def unapprove_merge_request(project, merge_request)
108
- post("/projects/#{url_encode project}/merge_requests/#{merge_request}/unapprove")
100
+ # Unapprove a merge request
101
+ #
102
+ # @example
103
+ # Gitlab.unapprove_merge_request(1, 5)
104
+ #
105
+ # @param [Integer] project(required) The ID of a project.
106
+ # @param [Integer] merge_request(required) The IID of a merge request.
107
+ # @return [void] This API call returns an empty response body.
108
+ def unapprove_merge_request(project, merge_request)
109
+ post("/projects/#{url_encode project}/merge_requests/#{merge_request}/unapprove")
110
+ end
109
111
  end
110
112
  end
@@ -1,300 +1,314 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Defines methods related to merge requests.
4
- # @see https://docs.gitlab.com/ce/api/merge_requests.html
5
- module MergeRequests
6
- # Gets a list of all of the merge requests the authenticated user has access to.
7
- #
8
- # @example
9
- # Gitlab.user_merge_requests
10
- # Gitlab.user_merge_requests(state: :opened, scope: :all)
11
- #
12
- # @param [Hash] options A customizable set of options.
13
- # @return [Array<Gitlab::ObjectifiedHash>]
14
- def user_merge_requests(options = {})
15
- get('/merge_requests', query: options)
16
- end
3
+ class Gitlab::Client
4
+ # Defines methods related to merge requests.
5
+ # @see https://docs.gitlab.com/ce/api/merge_requests.html
6
+ module MergeRequests
7
+ # Gets a list of all of the merge requests the authenticated user has access to.
8
+ #
9
+ # @example
10
+ # Gitlab.user_merge_requests
11
+ # Gitlab.user_merge_requests(state: :opened, scope: :all)
12
+ #
13
+ # @param [Hash] options A customizable set of options.
14
+ # @return [Array<Gitlab::ObjectifiedHash>]
15
+ def user_merge_requests(options = {})
16
+ get('/merge_requests', query: options)
17
+ end
17
18
 
18
- # Gets a list of project merge requests.
19
- #
20
- # @example
21
- # Gitlab.merge_requests(5)
22
- # Gitlab.merge_requests(5, { per_page: 40 })
23
- #
24
- # @param [Integer, String] project The ID or name of a project.
25
- # @param [Hash] options A customizable set of options.
26
- # @option options [Integer] :page The page number.
27
- # @option options [Integer] :per_page The number of results per page.
28
- # @return [Array<Gitlab::ObjectifiedHash>]
29
- def merge_requests(project, options = {})
30
- get("/projects/#{url_encode project}/merge_requests", query: options)
31
- end
19
+ # Gets a list of project merge requests.
20
+ #
21
+ # @example
22
+ # Gitlab.merge_requests(5)
23
+ # Gitlab.merge_requests(5, { per_page: 40 })
24
+ #
25
+ # @param [Integer, String] project The ID or name of a project.
26
+ # @param [Hash] options A customizable set of options.
27
+ # @option options [Integer] :page The page number.
28
+ # @option options [Integer] :per_page The number of results per page.
29
+ # @return [Array<Gitlab::ObjectifiedHash>]
30
+ def merge_requests(project, options = {})
31
+ get("/projects/#{url_encode project}/merge_requests", query: options)
32
+ end
32
33
 
33
- # Gets a single merge request.
34
- #
35
- # @example
36
- # Gitlab.merge_request(5, 36)
37
- #
38
- # @param [Integer, String] project The ID or name of a project.
39
- # @param [Integer] id The ID of a merge request.
40
- # @return <Gitlab::ObjectifiedHash]
41
- def merge_request(project, id)
42
- get("/projects/#{url_encode project}/merge_requests/#{id}")
43
- end
34
+ # Gets a single merge request.
35
+ #
36
+ # @example
37
+ # Gitlab.merge_request(5, 36)
38
+ #
39
+ # @param [Integer, String] project The ID or name of a project.
40
+ # @param [Integer] id The ID of a merge request.
41
+ # @return <Gitlab::ObjectifiedHash]
42
+ def merge_request(project, id)
43
+ get("/projects/#{url_encode project}/merge_requests/#{id}")
44
+ end
44
45
 
45
- # Creates a merge request.
46
- #
47
- # @example
48
- # Gitlab.create_merge_request(5, 'New merge request',
49
- # { source_branch: 'source_branch', target_branch: 'target_branch' })
50
- # Gitlab.create_merge_request(5, 'New merge request',
51
- # { source_branch: 'source_branch', target_branch: 'target_branch', assignee_id: 42 })
52
- #
53
- # @param [Integer, String] project The ID or name of a project.
54
- # @param [String] title The title of a merge request.
55
- # @param [Hash] options A customizable set of options.
56
- # @option options [String] :source_branch (required) The source branch name.
57
- # @option options [String] :target_branch (required) The target branch name.
58
- # @option options [Integer] :assignee_id (optional) The ID of a user to assign merge request.
59
- # @option options [Integer] :target_project_id (optional) The target project ID.
60
- # @option options [String] :labels (optional) Labels as a comma-separated list.
61
- # @return [Gitlab::ObjectifiedHash] Information about created merge request.
62
- def create_merge_request(project, title, options = {})
63
- body = { title: title }.merge(options)
64
- post("/projects/#{url_encode project}/merge_requests", body: body)
65
- end
46
+ # Gets a list of merge request pipelines.
47
+ #
48
+ # @example
49
+ # Gitlab.merge_request_pipelines(5, 36)
50
+ #
51
+ # @param [Integer, String] project The ID or name of a project.
52
+ # @param [Integer] id The ID of a merge request.
53
+ # @return [Array<Gitlab::ObjectifiedHash>]
54
+ def merge_request_pipelines(project, id)
55
+ get("/projects/#{url_encode project}/merge_requests/#{id}/pipelines")
56
+ end
66
57
 
67
- # Updates a merge request.
68
- #
69
- # @example
70
- # Gitlab.update_merge_request(5, 42, { title: 'New title' })
71
- #
72
- # @param [Integer, String] project The ID or name of a project.
73
- # @param [Integer] id The ID of a merge request.
74
- # @param [Hash] options A customizable set of options.
75
- # @option options [String] :title The title of a merge request.
76
- # @option options [String] :source_branch The source branch name.
77
- # @option options [String] :target_branch The target branch name.
78
- # @option options [Integer] :assignee_id The ID of a user to assign merge request.
79
- # @option options [String] :state_event New state (close|reopen|merge).
80
- # @return [Gitlab::ObjectifiedHash] Information about updated merge request.
81
- def update_merge_request(project, id, options = {})
82
- put("/projects/#{url_encode project}/merge_requests/#{id}", body: options)
83
- end
58
+ # Creates a merge request.
59
+ #
60
+ # @example
61
+ # Gitlab.create_merge_request(5, 'New merge request',
62
+ # { source_branch: 'source_branch', target_branch: 'target_branch' })
63
+ # Gitlab.create_merge_request(5, 'New merge request',
64
+ # { source_branch: 'source_branch', target_branch: 'target_branch', assignee_id: 42 })
65
+ #
66
+ # @param [Integer, String] project The ID or name of a project.
67
+ # @param [String] title The title of a merge request.
68
+ # @param [Hash] options A customizable set of options.
69
+ # @option options [String] :source_branch (required) The source branch name.
70
+ # @option options [String] :target_branch (required) The target branch name.
71
+ # @option options [Integer] :assignee_id (optional) The ID of a user to assign merge request.
72
+ # @option options [Integer] :target_project_id (optional) The target project ID.
73
+ # @option options [String] :labels (optional) Labels as a comma-separated list.
74
+ # @return [Gitlab::ObjectifiedHash] Information about created merge request.
75
+ def create_merge_request(project, title, options = {})
76
+ body = { title: title }.merge(options)
77
+ post("/projects/#{url_encode project}/merge_requests", body: body)
78
+ end
84
79
 
85
- # Accepts a merge request.
86
- #
87
- # @example
88
- # Gitlab.accept_merge_request(5, 42, { merge_commit_message: 'Nice!' })
89
- #
90
- # @param [Integer, String] project The ID or name of a project.
91
- # @param [Integer] id The ID of a merge request.
92
- # @param [Hash] options A customizable set of options.
93
- # @option options [String] :merge_commit_message Custom merge commit message
94
- # @return [Gitlab::ObjectifiedHash] Information about updated merge request.
95
- def accept_merge_request(project, id, options = {})
96
- put("/projects/#{url_encode project}/merge_requests/#{id}/merge", body: options)
97
- end
80
+ # Updates a merge request.
81
+ #
82
+ # @example
83
+ # Gitlab.update_merge_request(5, 42, { title: 'New title' })
84
+ #
85
+ # @param [Integer, String] project The ID or name of a project.
86
+ # @param [Integer] id The ID of a merge request.
87
+ # @param [Hash] options A customizable set of options.
88
+ # @option options [String] :title The title of a merge request.
89
+ # @option options [String] :source_branch The source branch name.
90
+ # @option options [String] :target_branch The target branch name.
91
+ # @option options [Integer] :assignee_id The ID of a user to assign merge request.
92
+ # @option options [String] :state_event New state (close|reopen|merge).
93
+ # @return [Gitlab::ObjectifiedHash] Information about updated merge request.
94
+ def update_merge_request(project, id, options = {})
95
+ put("/projects/#{url_encode project}/merge_requests/#{id}", body: options)
96
+ end
98
97
 
99
- # Gets the changes of a merge request.
100
- #
101
- # @example
102
- # Gitlab.merge_request_changes(5, 1)
103
- #
104
- # @param [Integer, String] project The ID or name of a project.
105
- # @param [Integer] id The ID of a merge request.
106
- # @return [Gitlab::ObjectifiedHash] The merge request's changes.
107
- def merge_request_changes(project, id)
108
- get("/projects/#{url_encode project}/merge_requests/#{id}/changes")
109
- end
98
+ # Accepts a merge request.
99
+ #
100
+ # @example
101
+ # Gitlab.accept_merge_request(5, 42, { merge_commit_message: 'Nice!' })
102
+ #
103
+ # @param [Integer, String] project The ID or name of a project.
104
+ # @param [Integer] id The ID of a merge request.
105
+ # @param [Hash] options A customizable set of options.
106
+ # @option options [String] :merge_commit_message Custom merge commit message
107
+ # @return [Gitlab::ObjectifiedHash] Information about updated merge request.
108
+ def accept_merge_request(project, id, options = {})
109
+ put("/projects/#{url_encode project}/merge_requests/#{id}/merge", body: options)
110
+ end
110
111
 
111
- # Gets the commits of a merge request.
112
- #
113
- # @example
114
- # Gitlab.merge_request_commits(5, 1)
115
- #
116
- # @param [Integer, String] project The ID or name of a project.
117
- # @param [Integer] id The ID of a merge request.
118
- # @return [Array<Gitlab::ObjectifiedHash>] The merge request's commits.
119
- def merge_request_commits(project, id)
120
- get("/projects/#{url_encode project}/merge_requests/#{id}/commits")
121
- end
112
+ # Gets the changes of a merge request.
113
+ #
114
+ # @example
115
+ # Gitlab.merge_request_changes(5, 1)
116
+ #
117
+ # @param [Integer, String] project The ID or name of a project.
118
+ # @param [Integer] id The ID of a merge request.
119
+ # @return [Gitlab::ObjectifiedHash] The merge request's changes.
120
+ def merge_request_changes(project, id)
121
+ get("/projects/#{url_encode project}/merge_requests/#{id}/changes")
122
+ end
122
123
 
123
- # List issues that will close on merge
124
- #
125
- # @example
126
- # Gitlab.merge_request_closes_issues(5, 1)
127
- #
128
- # @param [Integer] project The ID of a project
129
- # @param [Integer] iid The internal ID of a merge request
130
- def merge_request_closes_issues(project_id, merge_request_iid)
131
- get("/projects/#{project_id}/merge_requests/#{merge_request_iid}/closes_issues")
132
- end
124
+ # Gets the commits of a merge request.
125
+ #
126
+ # @example
127
+ # Gitlab.merge_request_commits(5, 1)
128
+ #
129
+ # @param [Integer, String] project The ID or name of a project.
130
+ # @param [Integer] id The ID of a merge request.
131
+ # @return [Array<Gitlab::ObjectifiedHash>] The merge request's commits.
132
+ def merge_request_commits(project, id)
133
+ get("/projects/#{url_encode project}/merge_requests/#{id}/commits")
134
+ end
133
135
 
134
- # Subscribes to a merge request.
135
- #
136
- # @example
137
- # Gitlab.subscribe_to_merge_request(5, 1)
138
- # Gitlab.subscribe_to_merge_request('gitlab', 1)
139
- #
140
- # @param [Integer, String] project The ID or name of a project.
141
- # @param [Integer] id The ID of a merge request.
142
- # @return [Gitlab::ObjectifiedHash] Information about subscribed merge request.
143
- def subscribe_to_merge_request(project, id)
144
- post("/projects/#{url_encode project}/merge_requests/#{id}/subscribe")
145
- end
136
+ # List issues that will close on merge
137
+ #
138
+ # @example
139
+ # Gitlab.merge_request_closes_issues(5, 1)
140
+ #
141
+ # @param [Integer] project The ID of a project
142
+ # @param [Integer] iid The internal ID of a merge request
143
+ def merge_request_closes_issues(project_id, merge_request_iid)
144
+ get("/projects/#{project_id}/merge_requests/#{merge_request_iid}/closes_issues")
145
+ end
146
146
 
147
- # Unsubscribes from a merge request.
148
- #
149
- # @example
150
- # Gitlab.unsubscribe_from_merge_request(5, 1)
151
- # Gitlab.unsubscribe_from_merge_request('gitlab', 1)
152
- #
153
- # @param [Integer, String] project The ID or name of a project.
154
- # @param [Integer] id The ID of a merge request.
155
- # @return [Gitlab::ObjectifiedHash] Information about unsubscribed merge request.
156
- def unsubscribe_from_merge_request(project, id)
157
- post("/projects/#{url_encode project}/merge_requests/#{id}/unsubscribe")
158
- end
147
+ # Subscribes to a merge request.
148
+ #
149
+ # @example
150
+ # Gitlab.subscribe_to_merge_request(5, 1)
151
+ # Gitlab.subscribe_to_merge_request('gitlab', 1)
152
+ #
153
+ # @param [Integer, String] project The ID or name of a project.
154
+ # @param [Integer] id The ID of a merge request.
155
+ # @return [Gitlab::ObjectifiedHash] Information about subscribed merge request.
156
+ def subscribe_to_merge_request(project, id)
157
+ post("/projects/#{url_encode project}/merge_requests/#{id}/subscribe")
158
+ end
159
159
 
160
- # List project merge request discussions
161
- #
162
- # @example
163
- # Gitlab.merge_request_discussions(5, 1)
164
- # Gitlab.merge_request_discussions('gitlab', 1)
165
- # @param [Integer, String] project The ID or name of a project.
166
- # @param [Integer] id The ID of a merge request.
167
- # @return [Gitlab::ObjectifiedHash] List of the merge request discussions.
168
- def merge_request_discussions(project, merge_request_id)
169
- get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions")
170
- end
160
+ # Unsubscribes from a merge request.
161
+ #
162
+ # @example
163
+ # Gitlab.unsubscribe_from_merge_request(5, 1)
164
+ # Gitlab.unsubscribe_from_merge_request('gitlab', 1)
165
+ #
166
+ # @param [Integer, String] project The ID or name of a project.
167
+ # @param [Integer] id The ID of a merge request.
168
+ # @return [Gitlab::ObjectifiedHash] Information about unsubscribed merge request.
169
+ def unsubscribe_from_merge_request(project, id)
170
+ post("/projects/#{url_encode project}/merge_requests/#{id}/unsubscribe")
171
+ end
171
172
 
172
- # Get single merge request discussion
173
- #
174
- # @example
175
- # Gitlab.merge_request_discussion(5, 1, 1)
176
- # Gitlab.merge_request_discussion('gitlab', 1, 1)
177
- # @param [Integer, String] project The ID or name of a project.
178
- # @param [Integer] id The ID of a merge request.
179
- # @param [Integer] discussion_id The ID of a discussion.
180
- # @return [Gitlab::ObjectifiedHash] The merge request discussion.
181
- def merge_request_discussion(project, merge_request_id, discussion_id)
182
- get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}")
183
- end
173
+ # List project merge request discussions
174
+ #
175
+ # @example
176
+ # Gitlab.merge_request_discussions(5, 1)
177
+ # Gitlab.merge_request_discussions('gitlab', 1)
178
+ # @param [Integer, String] project The ID or name of a project.
179
+ # @param [Integer] id The ID of a merge request.
180
+ # @return [Gitlab::ObjectifiedHash] List of the merge request discussions.
181
+ def merge_request_discussions(project, merge_request_id)
182
+ get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions")
183
+ end
184
184
 
185
- # Create new merge request discussion
186
- #
187
- # @example
188
- # Gitlab.create_merge_request_discussion(5, 1, body: 'discuss')
189
- # Gitlab.create_merge_request_discussion('gitlab', 1, body: 'discuss')
190
- # @param [Integer, String] project The ID or name of a project.
191
- # @param [Integer] id The ID of a merge request.
192
- # @param [Hash] options A customizable set of options.
193
- # * :body (String) The content of a discussion
194
- # * :created_at (String) Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z
195
- # * :position (Hash) Position when creating a diff note
196
- # * :base_sha (String) Base commit SHA in the source branch
197
- # * :start_sha (String) SHA referencing commit in target branch
198
- # * :head_sha (String) SHA referencing HEAD of this merge request
199
- # * :position_type (String) Type of the position reference', allowed values: 'text' or 'image'
200
- # * :new_path (String) File path after change
201
- # * :new_line (Integer) Line number after change (for 'text' diff notes)
202
- # * :old_path (String) File path before change
203
- # * :old_line (Integer) Line number before change (for 'text' diff notes)
204
- # * :width (Integer) Width of the image (for 'image' diff notes)
205
- # * :height (Integer) Height of the image (for 'image' diff notes)
206
- # * :x (Integer) X coordinate (for 'image' diff notes)
207
- # * :y (Integer) Y coordinate (for 'image' diff notes)
208
- # @return [Gitlab::ObjectifiedHash] The created merge request discussion.
209
- def create_merge_request_discussion(project, merge_request_id, options = {})
210
- post("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions", body: options)
211
- end
185
+ # Get single merge request discussion
186
+ #
187
+ # @example
188
+ # Gitlab.merge_request_discussion(5, 1, 1)
189
+ # Gitlab.merge_request_discussion('gitlab', 1, 1)
190
+ # @param [Integer, String] project The ID or name of a project.
191
+ # @param [Integer] id The ID of a merge request.
192
+ # @param [Integer] discussion_id The ID of a discussion.
193
+ # @return [Gitlab::ObjectifiedHash] The merge request discussion.
194
+ def merge_request_discussion(project, merge_request_id, discussion_id)
195
+ get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}")
196
+ end
212
197
 
213
- # Resolve a merge request discussion
214
- #
215
- # @example
216
- # Gitlab.resolve_merge_request_discussion(5, 1, 1, true)
217
- # Gitlab.resolve_merge_request_discussion('gitlab', 1, 1, false)
218
- # @param [Integer, String] project The ID or name of a project.
219
- # @param [Integer] id The ID of a merge request.
220
- # @param [Integer] discussion_id The ID of a discussion.
221
- # @param [Hash] options A customizable set of options.
222
- # @option options [Boolean] :resolved Resolve/unresolve the discussion.
223
- # @return [Gitlab::ObjectifiedHash] The merge request discussion.
224
- def resolve_merge_request_discussion(project, merge_request_id, discussion_id, options)
225
- put("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}", body: options)
226
- end
198
+ # Create new merge request discussion
199
+ #
200
+ # @example
201
+ # Gitlab.create_merge_request_discussion(5, 1, body: 'discuss')
202
+ # Gitlab.create_merge_request_discussion('gitlab', 1, body: 'discuss')
203
+ # @param [Integer, String] project The ID or name of a project.
204
+ # @param [Integer] id The ID of a merge request.
205
+ # @param [Hash] options A customizable set of options.
206
+ # * :body (String) The content of a discussion
207
+ # * :created_at (String) Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z
208
+ # * :position (Hash) Position when creating a diff note
209
+ # * :base_sha (String) Base commit SHA in the source branch
210
+ # * :start_sha (String) SHA referencing commit in target branch
211
+ # * :head_sha (String) SHA referencing HEAD of this merge request
212
+ # * :position_type (String) Type of the position reference', allowed values: 'text' or 'image'
213
+ # * :new_path (String) File path after change
214
+ # * :new_line (Integer) Line number after change (for 'text' diff notes)
215
+ # * :old_path (String) File path before change
216
+ # * :old_line (Integer) Line number before change (for 'text' diff notes)
217
+ # * :width (Integer) Width of the image (for 'image' diff notes)
218
+ # * :height (Integer) Height of the image (for 'image' diff notes)
219
+ # * :x (Integer) X coordinate (for 'image' diff notes)
220
+ # * :y (Integer) Y coordinate (for 'image' diff notes)
221
+ # @return [Gitlab::ObjectifiedHash] The created merge request discussion.
222
+ def create_merge_request_discussion(project, merge_request_id, options = {})
223
+ post("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions", body: options)
224
+ end
227
225
 
228
- # Add note to existing merge request discussion
229
- #
230
- # @example
231
- # Gitlab.create_merge_request_discussion_note(5, 1, 1, note_id: 1, body: 'note')
232
- # Gitlab.create_merge_request_discussion_note('gitlab', 1, 1, note_id: 1, body: 'note')
233
- # @param [Integer, String] project The ID or name of a project.
234
- # @param [Integer] id The ID of a merge request.
235
- # @param [Integer] discussion_id The ID of a discussion.
236
- # @param [Hash] options A customizable set of options.
237
- # @option options [Integer] :note_id The ID of a discussion note.
238
- # @option options [String] :body The content of a discussion.
239
- # @option options [String] :created_at Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z.
240
- # @return [Gitlab::ObjectifiedHash] The merge request discussion note.
241
- def create_merge_request_discussion_note(project, merge_request_id, discussion_id, options)
242
- post("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes", body: options)
243
- end
226
+ # Resolve a merge request discussion
227
+ #
228
+ # @example
229
+ # Gitlab.resolve_merge_request_discussion(5, 1, 1, true)
230
+ # Gitlab.resolve_merge_request_discussion('gitlab', 1, 1, false)
231
+ # @param [Integer, String] project The ID or name of a project.
232
+ # @param [Integer] id The ID of a merge request.
233
+ # @param [Integer] discussion_id The ID of a discussion.
234
+ # @param [Hash] options A customizable set of options.
235
+ # @option options [Boolean] :resolved Resolve/unresolve the discussion.
236
+ # @return [Gitlab::ObjectifiedHash] The merge request discussion.
237
+ def resolve_merge_request_discussion(project, merge_request_id, discussion_id, options)
238
+ put("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}", body: options)
239
+ end
244
240
 
245
- # Modify an existing merge request discussion note
246
- #
247
- # @example
248
- # Gitlab.update_merge_request_discussion_note(5, 1, 1, 1, body: 'note')
249
- # Gitlab.update_merge_request_discussion_note('gitlab', 1, 1, 1, body: 'note')
250
- # @param [Integer, String] project The ID or name of a project.
251
- # @param [Integer] id The ID of a merge request.
252
- # @param [Integer] discussion_id The ID of a discussion.
253
- # @param [Integer] note_id The ID of a discussion note.
254
- # @param [Hash] options A customizable set of options.
255
- # @option options [String] :body The content of a discussion.
256
- # @option options [Boolean] :resolved Resolve/unresolve the note.
257
- # @return [Gitlab::ObjectifiedHash] The merge request discussion note.
258
- def update_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id, options)
259
- put("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes/#{note_id}", body: options)
260
- end
241
+ # Add note to existing merge request discussion
242
+ #
243
+ # @example
244
+ # Gitlab.create_merge_request_discussion_note(5, 1, 1, note_id: 1, body: 'note')
245
+ # Gitlab.create_merge_request_discussion_note('gitlab', 1, 1, note_id: 1, body: 'note')
246
+ # @param [Integer, String] project The ID or name of a project.
247
+ # @param [Integer] id The ID of a merge request.
248
+ # @param [Integer] discussion_id The ID of a discussion.
249
+ # @param [Hash] options A customizable set of options.
250
+ # @option options [Integer] :note_id The ID of a discussion note.
251
+ # @option options [String] :body The content of a discussion.
252
+ # @option options [String] :created_at Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z.
253
+ # @return [Gitlab::ObjectifiedHash] The merge request discussion note.
254
+ def create_merge_request_discussion_note(project, merge_request_id, discussion_id, options)
255
+ post("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes", body: options)
256
+ end
261
257
 
262
- # Delete a merge request discussion note
263
- #
264
- # @example
265
- # Gitlab.delete_merge_request_discussion_note(5, 1, 1, 1)
266
- # Gitlab.delete_merge_request_discussion_note('gitlab', 1, 1, 1)
267
- # @param [Integer, String] project The ID or name of a project.
268
- # @param [Integer] id The ID of a merge request.
269
- # @param [Integer] discussion_id The ID of a discussion.
270
- # @param [Integer] note_id The ID of a discussion note.
271
- # @return [Gitlab::ObjectifiedHash] An empty response.
272
- def delete_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id)
273
- delete("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes/#{note_id}")
274
- end
258
+ # Modify an existing merge request discussion note
259
+ #
260
+ # @example
261
+ # Gitlab.update_merge_request_discussion_note(5, 1, 1, 1, body: 'note')
262
+ # Gitlab.update_merge_request_discussion_note('gitlab', 1, 1, 1, body: 'note')
263
+ # @param [Integer, String] project The ID or name of a project.
264
+ # @param [Integer] id The ID of a merge request.
265
+ # @param [Integer] discussion_id The ID of a discussion.
266
+ # @param [Integer] note_id The ID of a discussion note.
267
+ # @param [Hash] options A customizable set of options.
268
+ # @option options [String] :body The content of a discussion.
269
+ # @option options [Boolean] :resolved Resolve/unresolve the note.
270
+ # @return [Gitlab::ObjectifiedHash] The merge request discussion note.
271
+ def update_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id, options)
272
+ put("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes/#{note_id}", body: options)
273
+ end
275
274
 
276
- # Gets a list of merge request diff versions
277
- #
278
- # @example
279
- # Gitlab.merge_request_versions(5, 1)
280
- # Gitlab.merge_request_versions('gitlab', 1)
281
- # @param [Integer, String] project The ID or name of a project.
282
- # @param [Integer] id The ID of a merge request.
283
- # @return [Gitlab::ObjectifiedHash] A list of the merge request versions.
284
- def merge_request_diff_versions(project, merge_request_id)
285
- get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/versions")
286
- end
275
+ # Delete a merge request discussion note
276
+ #
277
+ # @example
278
+ # Gitlab.delete_merge_request_discussion_note(5, 1, 1, 1)
279
+ # Gitlab.delete_merge_request_discussion_note('gitlab', 1, 1, 1)
280
+ # @param [Integer, String] project The ID or name of a project.
281
+ # @param [Integer] id The ID of a merge request.
282
+ # @param [Integer] discussion_id The ID of a discussion.
283
+ # @param [Integer] note_id The ID of a discussion note.
284
+ # @return [Gitlab::ObjectifiedHash] An empty response.
285
+ def delete_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id)
286
+ delete("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes/#{note_id}")
287
+ end
288
+
289
+ # Gets a list of merge request diff versions
290
+ #
291
+ # @example
292
+ # Gitlab.merge_request_versions(5, 1)
293
+ # Gitlab.merge_request_versions('gitlab', 1)
294
+ # @param [Integer, String] project The ID or name of a project.
295
+ # @param [Integer] id The ID of a merge request.
296
+ # @return [Gitlab::ObjectifiedHash] A list of the merge request versions.
297
+ def merge_request_diff_versions(project, merge_request_id)
298
+ get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/versions")
299
+ end
287
300
 
288
- # Gets the diff a single merge request diff version\
289
- #
290
- # @example
291
- # Gitlab.merge_request_diff_version(5, 1, 1)
292
- # Gitlab.merge_request_diff_version('gitlab', 1, 1)
293
- # @param [Integer, String] project The ID or name of a project.
294
- # @param [Integer] id The ID of a merge request.
295
- # @param [Integer] id The ID of a merge request diff version.
296
- # @return [Gitlab::ObjectifiedHash] Record of the specific diff
297
- def merge_request_diff_version(project, merge_request_id, version_id)
298
- get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/versions/#{version_id}")
301
+ # Gets the diff a single merge request diff version\
302
+ #
303
+ # @example
304
+ # Gitlab.merge_request_diff_version(5, 1, 1)
305
+ # Gitlab.merge_request_diff_version('gitlab', 1, 1)
306
+ # @param [Integer, String] project The ID or name of a project.
307
+ # @param [Integer] id The ID of a merge request.
308
+ # @param [Integer] id The ID of a merge request diff version.
309
+ # @return [Gitlab::ObjectifiedHash] Record of the specific diff
310
+ def merge_request_diff_version(project, merge_request_id, version_id)
311
+ get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/versions/#{version_id}")
312
+ end
299
313
  end
300
314
  end