gitlab 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/lib/gitlab/client.rb +4 -0
- data/lib/gitlab/client/award_emojis.rb +135 -0
- data/lib/gitlab/client/boards.rb +88 -0
- data/lib/gitlab/client/branches.rb +12 -7
- data/lib/gitlab/client/commits.rb +6 -6
- data/lib/gitlab/client/environments.rb +87 -0
- data/lib/gitlab/client/labels.rb +33 -4
- data/lib/gitlab/client/merge_requests.rb +0 -59
- data/lib/gitlab/client/notes.rb +106 -0
- data/lib/gitlab/client/projects.rb +48 -44
- data/lib/gitlab/client/repository_files.rb +32 -26
- data/lib/gitlab/client/system_hooks.rb +5 -2
- data/lib/gitlab/client/todos.rb +44 -0
- data/lib/gitlab/version.rb +1 -1
- data/spec/fixtures/board_list.json +1 -0
- data/spec/fixtures/board_lists.json +1 -0
- data/spec/fixtures/boards.json +1 -0
- data/spec/fixtures/environment.json +6 -0
- data/spec/fixtures/environments.json +14 -0
- data/spec/fixtures/issue_award_emoji.json +16 -0
- data/spec/fixtures/issue_award_emojis.json +34 -0
- data/spec/fixtures/label.json +1 -1
- data/spec/fixtures/label_unsubscribe.json +1 -0
- data/spec/fixtures/merge_request_award_emoji.json +16 -0
- data/spec/fixtures/merge_request_award_emojis.json +34 -0
- data/spec/fixtures/note_award_emoji.json +16 -0
- data/spec/fixtures/note_award_emojis.json +18 -0
- data/spec/fixtures/snippet_award_emoji.json +16 -0
- data/spec/fixtures/snippet_award_emojis.json +34 -0
- data/spec/fixtures/todo.json +73 -0
- data/spec/fixtures/todos.json +148 -0
- data/spec/gitlab/client/award_emojis_spec.rb +391 -0
- data/spec/gitlab/client/boards_spec.rb +94 -0
- data/spec/gitlab/client/branches_spec.rb +22 -5
- data/spec/gitlab/client/commits_spec.rb +2 -2
- data/spec/gitlab/client/environments_spec.rb +132 -0
- data/spec/gitlab/client/groups_spec.rb +10 -12
- data/spec/gitlab/client/labels_spec.rb +32 -0
- data/spec/gitlab/client/notes_spec.rb +128 -0
- data/spec/gitlab/client/projects_spec.rb +20 -10
- data/spec/gitlab/client/repository_files_spec.rb +30 -12
- data/spec/gitlab/client/system_hooks_spec.rb +2 -2
- data/spec/gitlab/client/todos_spec.rb +45 -0
- metadata +46 -2
data/lib/gitlab/client/labels.rb
CHANGED
@@ -19,11 +19,14 @@ class Gitlab::Client
|
|
19
19
|
# Gitlab.create_label(42, "Backlog", '#DD10AA')
|
20
20
|
#
|
21
21
|
# @param [Integer, String] project The ID or name of a project.
|
22
|
-
# @
|
23
|
-
# @
|
22
|
+
# @param [String] name The name of a label.
|
23
|
+
# @param [String] color The color of a label.
|
24
|
+
# @param [Hash] options A customizable set of options.
|
25
|
+
# @option options [String] :description The description of the label.
|
26
|
+
# @option options [String] :priority The priority of the label. Must be greater or equal than zero or null to remove the priority.
|
24
27
|
# @return [Gitlab::ObjectifiedHash] Information about created label.
|
25
|
-
def create_label(project, name, color)
|
26
|
-
post("/projects/#{url_encode project}/labels", body:
|
28
|
+
def create_label(project, name, color, options = {})
|
29
|
+
post("/projects/#{url_encode project}/labels", body: options.merge(name: name, color: color))
|
27
30
|
end
|
28
31
|
|
29
32
|
# Updates a label.
|
@@ -37,6 +40,8 @@ class Gitlab::Client
|
|
37
40
|
# @param [Hash] options A customizable set of options.
|
38
41
|
# @option options [String] :new_name The new name of a label.
|
39
42
|
# @option options [String] :color The color of a label.
|
43
|
+
# @option options [String] :description The description of the label.
|
44
|
+
# @option options [String] :priority The priority of the label. Must be greater or equal than zero or null to remove the priority.
|
40
45
|
# @return [Gitlab::ObjectifiedHash] Information about updated label.
|
41
46
|
def edit_label(project, name, options={})
|
42
47
|
put("/projects/#{url_encode project}/labels", body: options.merge(name: name))
|
@@ -53,5 +58,29 @@ class Gitlab::Client
|
|
53
58
|
def delete_label(project, name)
|
54
59
|
delete("/projects/#{url_encode project}/labels", body: { name: name })
|
55
60
|
end
|
61
|
+
|
62
|
+
# Subscribes the user to a label to receive notifications
|
63
|
+
#
|
64
|
+
# @example
|
65
|
+
# Gitlab.subscribe_to_label(2, 'Backlog')
|
66
|
+
#
|
67
|
+
# @param [Integer, String] project The ID or name of a project.
|
68
|
+
# @param [String] name The name of a label.
|
69
|
+
# @return [Gitlab::ObjectifiedHash] Information about the label subscribed to.
|
70
|
+
def subscribe_to_label(project, name)
|
71
|
+
post("/projects/#{url_encode project}/labels/#{url_encode name}/subscribe")
|
72
|
+
end
|
73
|
+
|
74
|
+
# Unsubscribes the user from a label to not receive notifications from it
|
75
|
+
#
|
76
|
+
# @example
|
77
|
+
# Gitlab.unsubscribe_from_label(2, 'Backlog')
|
78
|
+
#
|
79
|
+
# @param [Integer, String] project The ID or name of a project.
|
80
|
+
# @param [String] name The name of a label.
|
81
|
+
# @return [Gitlab::ObjectifiedHash] Information about the label unsubscribed from.
|
82
|
+
def unsubscribe_from_label(project, name)
|
83
|
+
post("/projects/#{url_encode project}/labels/#{url_encode name}/unsubscribe")
|
84
|
+
end
|
56
85
|
end
|
57
86
|
end
|
@@ -82,65 +82,6 @@ class Gitlab::Client
|
|
82
82
|
put("/projects/#{url_encode project}/merge_requests/#{id}/merge", body: options)
|
83
83
|
end
|
84
84
|
|
85
|
-
# Adds a comment to a merge request.
|
86
|
-
#
|
87
|
-
# @example
|
88
|
-
# Gitlab.create_merge_request_comment(5, 1, "Awesome merge!")
|
89
|
-
# Gitlab.create_merge_request_comment('gitlab', 1, "Awesome merge!")
|
90
|
-
#
|
91
|
-
# @param [Integer, String] project The ID or name of a project.
|
92
|
-
# @param [Integer] id The ID of a merge request.
|
93
|
-
# @param [String] note The content of a comment.
|
94
|
-
# @return [Gitlab::ObjectifiedHash] Information about created merge request comment.
|
95
|
-
def create_merge_request_comment(project, id, note)
|
96
|
-
post("/projects/#{url_encode project}/merge_requests/#{id}/notes", body: { body: note })
|
97
|
-
end
|
98
|
-
|
99
|
-
# Adds a comment to a merge request.
|
100
|
-
#
|
101
|
-
# @example
|
102
|
-
# Gitlab.edit_merge_request_comment(5, 1,2, "Awesome merge!")
|
103
|
-
# Gitlab.edit_merge_request_comment('gitlab', 1, 2, "Awesome merge!")
|
104
|
-
#
|
105
|
-
# @param [Integer, String] project The ID or name of a project.
|
106
|
-
# @param [Integer] id The ID of a merge request.
|
107
|
-
# @param [Integer] id The ID of the merge-request comment
|
108
|
-
# @param [String] note The content of a comment.
|
109
|
-
# @return [Gitlab::ObjectifiedHash] Information about created merge request comment.
|
110
|
-
def edit_merge_request_comment(project, id, note_id , note)
|
111
|
-
put("/projects/#{url_encode project}/merge_requests/#{id}/notes/#{note_id}", body: { body: note })
|
112
|
-
end
|
113
|
-
|
114
|
-
# Deletes a comment from a merge request.
|
115
|
-
#
|
116
|
-
# @example
|
117
|
-
# Gitlab.delete_merge_request_comment(5, 1,2)
|
118
|
-
# Gitlab.delete_merge_request_comment('gitlab', 1, 2)
|
119
|
-
#
|
120
|
-
# @param [Integer, String] project The ID or name of a project.
|
121
|
-
# @param [Integer] id The ID of a merge request.
|
122
|
-
# @param [Integer] id The ID of the merge-request comment
|
123
|
-
# @return [Gitlab::ObjectifiedHash] Information about created merge request comment.
|
124
|
-
def delete_merge_request_comment(project, id, note_id)
|
125
|
-
delete("/projects/#{url_encode project}/merge_requests/#{id}/notes/#{note_id}")
|
126
|
-
end
|
127
|
-
|
128
|
-
# Gets the comments on a merge request.
|
129
|
-
#
|
130
|
-
# @example
|
131
|
-
# Gitlab.merge_request_comments(5, 1)
|
132
|
-
# Gitlab.merge_request_comments(5, 1, { per_page: 10, page: 2 })
|
133
|
-
#
|
134
|
-
# @param [Integer, String] project The ID or name of a project.
|
135
|
-
# @param [Integer] id The ID of a merge request.
|
136
|
-
# @param [Hash] options A customizable set of options.
|
137
|
-
# @option options [Integer] :page The page number.
|
138
|
-
# @option options [Integer] :per_page The number of results per page.
|
139
|
-
# @return [Gitlab::ObjectifiedHash] The merge request's comments.
|
140
|
-
def merge_request_comments(project, id, options={})
|
141
|
-
get("/projects/#{url_encode project}/merge_requests/#{id}/notes", query: options)
|
142
|
-
end
|
143
|
-
|
144
85
|
# Gets the changes of a merge request.
|
145
86
|
#
|
146
87
|
# @example
|
data/lib/gitlab/client/notes.rb
CHANGED
@@ -56,6 +56,7 @@ class Gitlab::Client
|
|
56
56
|
def merge_request_notes(project, merge_request, options={})
|
57
57
|
get("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes", query: options)
|
58
58
|
end
|
59
|
+
alias_method :merge_request_comments, :merge_request_notes
|
59
60
|
|
60
61
|
# Gets a single wall note.
|
61
62
|
#
|
@@ -157,5 +158,110 @@ class Gitlab::Client
|
|
157
158
|
def create_merge_request_note(project, merge_request, body)
|
158
159
|
post("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes", body: { body: body })
|
159
160
|
end
|
161
|
+
alias_method :create_merge_request_comment, :create_merge_request_note
|
162
|
+
|
163
|
+
# Deletes a wall note.
|
164
|
+
#
|
165
|
+
# @example
|
166
|
+
# Gitlab.delete_note(5, 15)
|
167
|
+
#
|
168
|
+
# @param [Integer] project The ID of a project.
|
169
|
+
# @param [Integer] id The ID of a note.
|
170
|
+
# @return [Gitlab::ObjectifiedHash]
|
171
|
+
def delete_note(project, id)
|
172
|
+
delete("/projects/#{url_encode project}/notes/#{id}")
|
173
|
+
end
|
174
|
+
|
175
|
+
# Deletes an issue note.
|
176
|
+
#
|
177
|
+
# @example
|
178
|
+
# Gitlab.delete_issue_note(5, 10, 1)
|
179
|
+
#
|
180
|
+
# @param [Integer] project The ID of a project.
|
181
|
+
# @param [Integer] issue The ID of an issue.
|
182
|
+
# @param [Integer] id The ID of a note.
|
183
|
+
# @return [Gitlab::ObjectifiedHash]
|
184
|
+
def delete_issue_note(project, issue, id)
|
185
|
+
delete("/projects/#{url_encode project}/issues/#{issue}/notes/#{id}")
|
186
|
+
end
|
187
|
+
|
188
|
+
# Deletes a snippet note.
|
189
|
+
#
|
190
|
+
# @example
|
191
|
+
# Gitlab.delete_snippet_note(5, 11, 3)
|
192
|
+
#
|
193
|
+
# @param [Integer] project The ID of a project.
|
194
|
+
# @param [Integer] snippet The ID of a snippet.
|
195
|
+
# @param [Integer] id The ID of a note.
|
196
|
+
# @return [Gitlab::ObjectifiedHash]
|
197
|
+
def delete_snippet_note(project, snippet, id)
|
198
|
+
delete("/projects/#{url_encode project}/snippets/#{snippet}/notes/#{id}")
|
199
|
+
end
|
200
|
+
|
201
|
+
# Deletes a merge_request note.
|
202
|
+
#
|
203
|
+
# @example
|
204
|
+
# Gitlab.delete_merge_request_note(5, 11, 3)
|
205
|
+
#
|
206
|
+
# @param [Integer] project The ID of a project.
|
207
|
+
# @param [Integer] merge_request The ID of a merge_request.
|
208
|
+
# @param [Integer] id The ID of a note.
|
209
|
+
# @return [Gitlab::ObjectifiedHash]
|
210
|
+
def delete_merge_request_note(project, merge_request, id)
|
211
|
+
delete("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes/#{id}")
|
212
|
+
end
|
213
|
+
alias_method :delete_merge_request_comment, :delete_merge_request_note
|
214
|
+
|
215
|
+
# Modifies a wall note.
|
216
|
+
#
|
217
|
+
# @example
|
218
|
+
# Gitlab.edit_note(5, 15, 'This is an edited note')
|
219
|
+
#
|
220
|
+
# @param [Integer] project The ID of a project.
|
221
|
+
# @param [Integer] id The ID of a note.
|
222
|
+
# @return [Gitlab::ObjectifiedHash]
|
223
|
+
def edit_note(project, id, body)
|
224
|
+
put("/projects/#{url_encode project}/notes/#{id}", body: body)
|
225
|
+
end
|
226
|
+
|
227
|
+
# Modifies an issue note.
|
228
|
+
#
|
229
|
+
# @example
|
230
|
+
# Gitlab.edit_issue_note(5, 10, 1, 'This is an edited issue note')
|
231
|
+
#
|
232
|
+
# @param [Integer] project The ID of a project.
|
233
|
+
# @param [Integer] issue The ID of an issue.
|
234
|
+
# @param [Integer] id The ID of a note.
|
235
|
+
# @return [Gitlab::ObjectifiedHash]
|
236
|
+
def edit_issue_note(project, issue, id, body)
|
237
|
+
put("/projects/#{url_encode project}/issues/#{issue}/notes/#{id}", body: body)
|
238
|
+
end
|
239
|
+
|
240
|
+
# Modifies a snippet note.
|
241
|
+
#
|
242
|
+
# @example
|
243
|
+
# Gitlab.edit_snippet_note(5, 11, 3, 'This is an edited snippet note')
|
244
|
+
#
|
245
|
+
# @param [Integer] project The ID of a project.
|
246
|
+
# @param [Integer] snippet The ID of a snippet.
|
247
|
+
# @param [Integer] id The ID of a note.
|
248
|
+
# @return [Gitlab::ObjectifiedHash]
|
249
|
+
def edit_snippet_note(project, snippet, id, body)
|
250
|
+
put("/projects/#{url_encode project}/snippets/#{snippet}/notes/#{id}", body: body)
|
251
|
+
end
|
252
|
+
|
253
|
+
# Modifies a merge_request note.
|
254
|
+
#
|
255
|
+
# @example
|
256
|
+
# Gitlab.edit_merge_request_note(5, 11, 3, 'This is an edited merge request note')
|
257
|
+
#
|
258
|
+
# @param [Integer] project The ID of a project.
|
259
|
+
# @param [Integer] merge_request The ID of a merge_request.
|
260
|
+
# @param [Integer] id The ID of a note.
|
261
|
+
# @return [Gitlab::ObjectifiedHash]
|
262
|
+
def edit_merge_request_note(project, merge_request, id, body)
|
263
|
+
put("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes/#{id}", body: body)
|
264
|
+
end
|
265
|
+
alias_method :edit_merge_request_comment, :edit_merge_request_note
|
160
266
|
end
|
161
267
|
end
|
@@ -34,7 +34,7 @@ class Gitlab::Client
|
|
34
34
|
# @option options [String] :sort Return requests sorted in asc or desc order
|
35
35
|
# @return [Array<Gitlab::ObjectifiedHash>]
|
36
36
|
def project_search(query, options={})
|
37
|
-
get("/projects
|
37
|
+
get("/projects", query: options.merge(search:query))
|
38
38
|
end
|
39
39
|
alias_method :search_projects, :project_search
|
40
40
|
|
@@ -44,7 +44,7 @@ class Gitlab::Client
|
|
44
44
|
# Gitlab.project(3)
|
45
45
|
# Gitlab.project('gitlab')
|
46
46
|
#
|
47
|
-
# @param [Integer, String] id The ID or
|
47
|
+
# @param [Integer, String] id The ID or path of a project.
|
48
48
|
# @return [Gitlab::ObjectifiedHash]
|
49
49
|
def project(id)
|
50
50
|
get("/projects/#{url_encode id}")
|
@@ -56,7 +56,7 @@ class Gitlab::Client
|
|
56
56
|
# Gitlab.project_events(42)
|
57
57
|
# Gitlab.project_events('gitlab')
|
58
58
|
#
|
59
|
-
# @param [Integer, String] project The ID or
|
59
|
+
# @param [Integer, String] project The ID or path of a project.
|
60
60
|
# @param [Hash] options A customizable set of options.
|
61
61
|
# @option options [Integer] :page The page number.
|
62
62
|
# @option options [Integer] :per_page The number of results per page.
|
@@ -76,6 +76,7 @@ class Gitlab::Client
|
|
76
76
|
# @param [Hash] options A customizable set of options.
|
77
77
|
# @option options [String] :description The description of a project.
|
78
78
|
# @option options [String] :default_branch The default branch of a project.
|
79
|
+
# @option options [String] :path Repository name for new project. (Default is lowercase name with dashes)
|
79
80
|
# @option options [String] :namespace_id The namespace in which to create a project.
|
80
81
|
# @option options [Boolean] :wiki_enabled The wiki integration for a project (0 = false, 1 = true).
|
81
82
|
# @option options [Boolean] :wall_enabled The wall functionality for a project (0 = false, 1 = true).
|
@@ -95,10 +96,10 @@ class Gitlab::Client
|
|
95
96
|
# @example
|
96
97
|
# Gitlab.delete_project(4)
|
97
98
|
#
|
98
|
-
# @param [Integer, String] id The ID or
|
99
|
+
# @param [Integer, String] id The ID or path of a project.
|
99
100
|
# @return [Gitlab::ObjectifiedHash] Information about deleted project.
|
100
101
|
def delete_project(id)
|
101
|
-
delete("/projects/#{id}")
|
102
|
+
delete("/projects/#{url_encode id}")
|
102
103
|
end
|
103
104
|
|
104
105
|
# Gets a list of project team members.
|
@@ -107,7 +108,7 @@ class Gitlab::Client
|
|
107
108
|
# Gitlab.team_members(42)
|
108
109
|
# Gitlab.team_members('gitlab')
|
109
110
|
#
|
110
|
-
# @param [Integer, String] project The ID or
|
111
|
+
# @param [Integer, String] project The ID or path of a project.
|
111
112
|
# @param [Hash] options A customizable set of options.
|
112
113
|
# @option options [String] :query The search query.
|
113
114
|
# @option options [Integer] :page The page number.
|
@@ -122,7 +123,7 @@ class Gitlab::Client
|
|
122
123
|
# @example
|
123
124
|
# Gitlab.team_member('gitlab', 2)
|
124
125
|
#
|
125
|
-
# @param [Integer, String] project The ID or
|
126
|
+
# @param [Integer, String] project The ID or path of a project.
|
126
127
|
# @param [Integer] id The ID of a project team member.
|
127
128
|
# @return [Gitlab::ObjectifiedHash]
|
128
129
|
def team_member(project, id)
|
@@ -134,7 +135,7 @@ class Gitlab::Client
|
|
134
135
|
# @example
|
135
136
|
# Gitlab.add_team_member('gitlab', 2, 40)
|
136
137
|
#
|
137
|
-
# @param [Integer, String] project The ID or
|
138
|
+
# @param [Integer, String] project The ID or path of a project.
|
138
139
|
# @param [Integer] id The ID of a user.
|
139
140
|
# @param [Integer] access_level The access level to project.
|
140
141
|
# @param [Hash] options A customizable set of options.
|
@@ -148,7 +149,7 @@ class Gitlab::Client
|
|
148
149
|
# @example
|
149
150
|
# Gitlab.edit_team_member('gitlab', 3, 20)
|
150
151
|
#
|
151
|
-
# @param [Integer, String] project The ID or
|
152
|
+
# @param [Integer, String] project The ID or path of a project.
|
152
153
|
# @param [Integer] id The ID of a user.
|
153
154
|
# @param [Integer] access_level The access level to project.
|
154
155
|
# @param [Hash] options A customizable set of options.
|
@@ -162,7 +163,7 @@ class Gitlab::Client
|
|
162
163
|
# @example
|
163
164
|
# Gitlab.remove_team_member('gitlab', 2)
|
164
165
|
#
|
165
|
-
# @param [Integer, String] project The ID or
|
166
|
+
# @param [Integer, String] project The ID or path of a project.
|
166
167
|
# @param [Integer] id The ID of a user.
|
167
168
|
# @param [Hash] options A customizable set of options.
|
168
169
|
# @return [Gitlab::ObjectifiedHash] Information about removed team member.
|
@@ -176,7 +177,7 @@ class Gitlab::Client
|
|
176
177
|
# Gitlab.project_hooks(42)
|
177
178
|
# Gitlab.project_hooks('gitlab')
|
178
179
|
#
|
179
|
-
# @param [Integer, String] project The ID or
|
180
|
+
# @param [Integer, String] project The ID or path of a project.
|
180
181
|
# @param [Hash] options A customizable set of options.
|
181
182
|
# @option options [Integer] :page The page number.
|
182
183
|
# @option options [Integer] :per_page The number of results per page.
|
@@ -191,7 +192,7 @@ class Gitlab::Client
|
|
191
192
|
# Gitlab.project_hook(42, 5)
|
192
193
|
# Gitlab.project_hook('gitlab', 5)
|
193
194
|
#
|
194
|
-
# @param [Integer, String] project The ID or
|
195
|
+
# @param [Integer, String] project The ID or path of a project.
|
195
196
|
# @param [Integer] id The ID of a hook.
|
196
197
|
# @return [Gitlab::ObjectifiedHash]
|
197
198
|
def project_hook(project, id)
|
@@ -203,7 +204,7 @@ class Gitlab::Client
|
|
203
204
|
# @example
|
204
205
|
# Gitlab.add_project_hook(42, 'https://api.example.net/v1/webhooks/ci')
|
205
206
|
#
|
206
|
-
# @param [Integer, String] project The ID or
|
207
|
+
# @param [Integer, String] project The ID or path of a project.
|
207
208
|
# @param [String] url The hook URL.
|
208
209
|
# @param [Hash] options A customizable set of options.
|
209
210
|
# @param option [Boolean] :push_events Trigger hook on push events (0 = false, 1 = true)
|
@@ -221,7 +222,7 @@ class Gitlab::Client
|
|
221
222
|
# @example
|
222
223
|
# Gitlab.edit_project_hook(42, 1, 'https://api.example.net/v1/webhooks/ci')
|
223
224
|
#
|
224
|
-
# @param [Integer, String] project The ID or
|
225
|
+
# @param [Integer, String] project The ID or path of a project.
|
225
226
|
# @param [Integer] id The ID of the hook.
|
226
227
|
# @param [String] url The hook URL.
|
227
228
|
# @param [Hash] options A customizable set of options.
|
@@ -240,7 +241,7 @@ class Gitlab::Client
|
|
240
241
|
# @example
|
241
242
|
# Gitlab.delete_project_hook('gitlab', 4)
|
242
243
|
#
|
243
|
-
# @param [Integer, String] project The ID or
|
244
|
+
# @param [Integer, String] project The ID or path of a project.
|
244
245
|
# @param [String] id The ID of the hook.
|
245
246
|
# @return [Gitlab::ObjectifiedHash] Information about deleted hook.
|
246
247
|
def delete_project_hook(project, id)
|
@@ -256,7 +257,7 @@ class Gitlab::Client
|
|
256
257
|
# @param [Integer] id The ID of a project.
|
257
258
|
# @return [Gitlab::ObjectifiedHash]
|
258
259
|
def push_rule(id)
|
259
|
-
get("/projects/#{id}/push_rule")
|
260
|
+
get("/projects/#{url_encode id}/push_rule")
|
260
261
|
end
|
261
262
|
|
262
263
|
# Adds a project push rule.
|
@@ -271,7 +272,7 @@ class Gitlab::Client
|
|
271
272
|
# @param option [String] :commit_message_regex Commit message regex
|
272
273
|
# @return [Gitlab::ObjectifiedHash] Information about added push rule.
|
273
274
|
def add_push_rule(id, options={})
|
274
|
-
post("/projects/#{id}/push_rule", body: options)
|
275
|
+
post("/projects/#{url_encode id}/push_rule", body: options)
|
275
276
|
end
|
276
277
|
|
277
278
|
# Updates a project push rule.
|
@@ -286,7 +287,7 @@ class Gitlab::Client
|
|
286
287
|
# @param option [String] :commit_message_regex Commit message regex
|
287
288
|
# @return [Gitlab::ObjectifiedHash] Information about updated push rule.
|
288
289
|
def edit_push_rule(id, options={})
|
289
|
-
put("/projects/#{id}/push_rule", body: options)
|
290
|
+
put("/projects/#{url_encode id}/push_rule", body: options)
|
290
291
|
end
|
291
292
|
|
292
293
|
# Deletes a push rule from a project.
|
@@ -298,7 +299,7 @@ class Gitlab::Client
|
|
298
299
|
# @param [Integer] id The ID of a project.
|
299
300
|
# @return [Gitlab::ObjectifiedHash] Information about deleted push rule.
|
300
301
|
def delete_push_rule(id, options={})
|
301
|
-
delete("/projects/#{id}/push_rule")
|
302
|
+
delete("/projects/#{url_encode id}/push_rule")
|
302
303
|
end
|
303
304
|
|
304
305
|
# Mark this project as forked from the other
|
@@ -306,7 +307,7 @@ class Gitlab::Client
|
|
306
307
|
# @example
|
307
308
|
# Gitlab.make_forked(42, 24)
|
308
309
|
#
|
309
|
-
# @param [Integer, String] project The ID or
|
310
|
+
# @param [Integer, String] project The ID or path of a project.
|
310
311
|
# @param [Integer] id The ID of the project it is forked from.
|
311
312
|
# @return [Gitlab::ObjectifiedHash] Information about the forked project.
|
312
313
|
def make_forked_from(project, id)
|
@@ -318,7 +319,7 @@ class Gitlab::Client
|
|
318
319
|
# @example
|
319
320
|
# Gitlab.remove_forked(42)
|
320
321
|
#
|
321
|
-
# @param [Integer, String] project The ID or
|
322
|
+
# @param [Integer, String] project The ID or path of a project.
|
322
323
|
# @param [Integer] project The ID of the project it is forked from
|
323
324
|
# @return [Gitlab::ObjectifiedHash] Information about the forked project.
|
324
325
|
def remove_forked(project)
|
@@ -330,7 +331,7 @@ class Gitlab::Client
|
|
330
331
|
# @example
|
331
332
|
# Gitlab.deploy_keys(42)
|
332
333
|
#
|
333
|
-
# @param [Integer, String] project The ID or
|
334
|
+
# @param [Integer, String] project The ID or path of a project.
|
334
335
|
# @param [Hash] options A customizable set of options.
|
335
336
|
# @option options [Integer] :page The page number.
|
336
337
|
# @option options [Integer] :per_page The number of results per page.
|
@@ -344,7 +345,7 @@ class Gitlab::Client
|
|
344
345
|
# @example
|
345
346
|
# Gitlab.deploy_key(42, 1)
|
346
347
|
#
|
347
|
-
# @param [Integer, String] project The ID or
|
348
|
+
# @param [Integer, String] project The ID or path of a project.
|
348
349
|
# @param [Integer] id The ID of a deploy key.
|
349
350
|
# @return [Gitlab::ObjectifiedHash]
|
350
351
|
def deploy_key(project, id)
|
@@ -356,7 +357,7 @@ class Gitlab::Client
|
|
356
357
|
# @example
|
357
358
|
# Gitlab.create_deploy_key(42, 'My Key', 'Key contents')
|
358
359
|
#
|
359
|
-
# @param [Integer, String] project The ID or
|
360
|
+
# @param [Integer, String] project The ID or path of a project.
|
360
361
|
# @param [String] title The title of a deploy key.
|
361
362
|
# @param [String] key The content of a deploy key.
|
362
363
|
# @return [Gitlab::ObjectifiedHash] Information about created deploy key.
|
@@ -369,7 +370,7 @@ class Gitlab::Client
|
|
369
370
|
# @example
|
370
371
|
# Gitlab.enable_deploy_key(42, 66)
|
371
372
|
#
|
372
|
-
# @param [Integer, String] project The ID or
|
373
|
+
# @param [Integer, String] project The ID or path of a project.
|
373
374
|
# @param [Integer] key The ID of a deploy key.
|
374
375
|
# @return [Gitlab::ObjectifiedHash] Information about the enabled deploy key.
|
375
376
|
def enable_deploy_key(project, key)
|
@@ -381,7 +382,7 @@ class Gitlab::Client
|
|
381
382
|
# @example
|
382
383
|
# Gitlab.disable_deploy_key(42, 66)
|
383
384
|
#
|
384
|
-
# @param [Integer, String] project The ID or
|
385
|
+
# @param [Integer, String] project The ID or path of a project.
|
385
386
|
# @param [Integer] key The ID of a deploy key.
|
386
387
|
# @return [Gitlab::ObjectifiedHash] Information about the disabled deploy key.
|
387
388
|
def disable_deploy_key(project, key)
|
@@ -393,7 +394,7 @@ class Gitlab::Client
|
|
393
394
|
# @example
|
394
395
|
# Gitlab.delete_deploy_key(42, 1)
|
395
396
|
#
|
396
|
-
# @param [Integer, String] project The ID or
|
397
|
+
# @param [Integer, String] project The ID or path of a project.
|
397
398
|
# @param [Integer] id The ID of a deploy key.
|
398
399
|
# @return [Gitlab::ObjectifiedHash] Information about deleted deploy key.
|
399
400
|
def delete_deploy_key(project, id)
|
@@ -406,28 +407,31 @@ class Gitlab::Client
|
|
406
407
|
# Gitlab.create_fork(42)
|
407
408
|
# Gitlab.create_fork(42, { sudo: 'another_username' })
|
408
409
|
#
|
409
|
-
# @param [Integer, String] project The ID or
|
410
|
+
# @param [Integer, String] project The ID or path of a project.
|
410
411
|
# @param [Hash] options A customizable set of options.
|
411
412
|
# @option options [String] :sudo The username the project will be forked for
|
412
413
|
# @return [Gitlab::ObjectifiedHash] Information about the forked project.
|
413
414
|
def create_fork(id, options={})
|
414
|
-
post("/projects/#{id}/fork", body: options)
|
415
|
+
post("/projects/#{url_encode id}/fork", body: options)
|
415
416
|
end
|
416
417
|
|
417
418
|
# Updates an existing project.
|
418
419
|
#
|
419
420
|
# @example
|
420
421
|
# Gitlab.edit_project(42)
|
421
|
-
# Gitlab.edit_project(42, { name: '
|
422
|
+
# Gitlab.edit_project(42, { name: 'Project Name' })
|
423
|
+
# Gitlab.edit_project('project-name', { name: 'New Project Name', path: 'new-project-patth' })
|
422
424
|
#
|
423
|
-
# @param [Integer, String] project The ID or
|
424
|
-
# @param [Hash] options A customizable set of options
|
425
|
+
# @param [Integer, String] project The ID or path of a project.
|
426
|
+
# @param [Hash] options A customizable set of options
|
425
427
|
# @option options [String] :name The name of a project
|
426
|
-
# @option options [String] :path The name
|
427
|
-
# @option options [String] :description The
|
428
|
+
# @option options [String] :path The project's repository name, also used in Gitlab's URLs
|
429
|
+
# @option options [String] :description The description to show in Gitlab
|
430
|
+
# (Any provided options will be passed to Gitlab. See {https://docs.gitlab.com/ce/api/projects.html#edit-project Gitlab docs} for all valid options)
|
431
|
+
#
|
428
432
|
# @return [Gitlab::ObjectifiedHash] Information about the edited project.
|
429
433
|
def edit_project(id, options={})
|
430
|
-
put("/projects/#{id}",
|
434
|
+
put("/projects/#{url_encode id}", body: options)
|
431
435
|
end
|
432
436
|
|
433
437
|
# Share project with group.
|
@@ -435,7 +439,7 @@ class Gitlab::Client
|
|
435
439
|
# @example
|
436
440
|
# Gitlab.share_project_with_group('gitlab', 2, 40)
|
437
441
|
#
|
438
|
-
# @param [Integer, String] project The ID or
|
442
|
+
# @param [Integer, String] project The ID or path of a project.
|
439
443
|
# @param [Integer] id The ID of a group.
|
440
444
|
# @param [Integer] group_access The access level to project.
|
441
445
|
def share_project_with_group(project, id, group_access)
|
@@ -444,28 +448,28 @@ class Gitlab::Client
|
|
444
448
|
|
445
449
|
# Stars a project.
|
446
450
|
# @see https://docs.gitlab.com/ce/api/projects.html#star-a-project
|
447
|
-
#
|
451
|
+
#
|
448
452
|
# @example
|
449
453
|
# Gitlab.star_project(42)
|
450
454
|
# Gitlab.star_project('gitlab-org/gitlab-ce')
|
451
|
-
#
|
452
|
-
# @param [Integer, String] id The ID or
|
455
|
+
#
|
456
|
+
# @param [Integer, String] id The ID or path of a project.
|
453
457
|
# @return [Gitlab::ObjectifiedHash] Information about starred project.
|
454
458
|
def star_project(id)
|
455
|
-
post("/projects/#{id}/star")
|
459
|
+
post("/projects/#{url_encode id}/star")
|
456
460
|
end
|
457
461
|
|
458
462
|
# Unstars a project.
|
459
463
|
# @see https://docs.gitlab.com/ce/api/projects.html#unstar-a-project
|
460
|
-
#
|
464
|
+
#
|
461
465
|
# @example
|
462
466
|
# Gitlab.unstar_project(42)
|
463
467
|
# Gitlab.unstar_project('gitlab-org/gitlab-ce')
|
464
|
-
#
|
465
|
-
# @param [Integer, String] id The ID or
|
468
|
+
#
|
469
|
+
# @param [Integer, String] id The ID or path of a project.
|
466
470
|
# @return [Gitlab::ObjectifiedHash] Information about unstarred project.
|
467
471
|
def unstar_project(id)
|
468
|
-
delete("/projects/#{id}/star")
|
472
|
+
delete("/projects/#{url_encode id}/star")
|
469
473
|
end
|
470
474
|
end
|
471
475
|
end
|