fs-gitlab 4.18.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +270 -0
- data/LICENSE.txt +24 -0
- data/README.md +260 -0
- data/exe/gitlab +11 -0
- data/lib/gitlab/api.rb +24 -0
- data/lib/gitlab/cli.rb +89 -0
- data/lib/gitlab/cli_helpers.rb +243 -0
- data/lib/gitlab/client/access_requests.rb +103 -0
- data/lib/gitlab/client/application_settings.rb +172 -0
- data/lib/gitlab/client/avatar.rb +21 -0
- data/lib/gitlab/client/award_emojis.rb +137 -0
- data/lib/gitlab/client/boards.rb +146 -0
- data/lib/gitlab/client/branches.rb +135 -0
- data/lib/gitlab/client/broadcast_messages.rb +75 -0
- data/lib/gitlab/client/build_variables.rb +135 -0
- data/lib/gitlab/client/builds.rb +108 -0
- data/lib/gitlab/client/commits.rb +216 -0
- data/lib/gitlab/client/container_registry.rb +85 -0
- data/lib/gitlab/client/deployments.rb +34 -0
- data/lib/gitlab/client/environments.rb +89 -0
- data/lib/gitlab/client/epic_issues.rb +23 -0
- data/lib/gitlab/client/epics.rb +73 -0
- data/lib/gitlab/client/events.rb +60 -0
- data/lib/gitlab/client/features.rb +48 -0
- data/lib/gitlab/client/group_badges.rb +88 -0
- data/lib/gitlab/client/group_boards.rb +141 -0
- data/lib/gitlab/client/group_labels.rb +88 -0
- data/lib/gitlab/client/group_milestones.rb +94 -0
- data/lib/gitlab/client/groups.rb +358 -0
- data/lib/gitlab/client/issue_links.rb +48 -0
- data/lib/gitlab/client/issues.rb +231 -0
- data/lib/gitlab/client/jobs.rb +250 -0
- data/lib/gitlab/client/keys.rb +29 -0
- data/lib/gitlab/client/labels.rb +88 -0
- data/lib/gitlab/client/lint.rb +19 -0
- data/lib/gitlab/client/markdown.rb +23 -0
- data/lib/gitlab/client/merge_request_approvals.rb +265 -0
- data/lib/gitlab/client/merge_requests.rb +386 -0
- data/lib/gitlab/client/milestones.rb +106 -0
- data/lib/gitlab/client/namespaces.rb +22 -0
- data/lib/gitlab/client/notes.rb +313 -0
- data/lib/gitlab/client/packages.rb +95 -0
- data/lib/gitlab/client/pipeline_schedules.rb +147 -0
- data/lib/gitlab/client/pipeline_triggers.rb +103 -0
- data/lib/gitlab/client/pipelines.rb +105 -0
- data/lib/gitlab/client/project_badges.rb +85 -0
- data/lib/gitlab/client/project_clusters.rb +83 -0
- data/lib/gitlab/client/project_release_links.rb +76 -0
- data/lib/gitlab/client/project_releases.rb +79 -0
- data/lib/gitlab/client/projects.rb +708 -0
- data/lib/gitlab/client/protected_tags.rb +59 -0
- data/lib/gitlab/client/remote_mirrors.rb +51 -0
- data/lib/gitlab/client/repositories.rb +113 -0
- data/lib/gitlab/client/repository_files.rb +131 -0
- data/lib/gitlab/client/repository_submodules.rb +27 -0
- data/lib/gitlab/client/resource_label_events.rb +82 -0
- data/lib/gitlab/client/resource_state_events.rb +57 -0
- data/lib/gitlab/client/runners.rb +211 -0
- data/lib/gitlab/client/search.rb +66 -0
- data/lib/gitlab/client/services.rb +53 -0
- data/lib/gitlab/client/sidekiq.rb +39 -0
- data/lib/gitlab/client/snippets.rb +95 -0
- data/lib/gitlab/client/system_hooks.rb +64 -0
- data/lib/gitlab/client/tags.rb +97 -0
- data/lib/gitlab/client/templates.rb +100 -0
- data/lib/gitlab/client/todos.rb +46 -0
- data/lib/gitlab/client/user_snippets.rb +114 -0
- data/lib/gitlab/client/users.rb +397 -0
- data/lib/gitlab/client/versions.rb +18 -0
- data/lib/gitlab/client/wikis.rb +79 -0
- data/lib/gitlab/client.rb +95 -0
- data/lib/gitlab/configuration.rb +57 -0
- data/lib/gitlab/error.rb +170 -0
- data/lib/gitlab/file_response.rb +48 -0
- data/lib/gitlab/help.rb +94 -0
- data/lib/gitlab/objectified_hash.rb +51 -0
- data/lib/gitlab/page_links.rb +35 -0
- data/lib/gitlab/paginated_response.rb +110 -0
- data/lib/gitlab/request.rb +109 -0
- data/lib/gitlab/shell.rb +83 -0
- data/lib/gitlab/shell_history.rb +57 -0
- data/lib/gitlab/version.rb +5 -0
- data/lib/gitlab.rb +56 -0
- metadata +204 -0
@@ -0,0 +1,313 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to notes.
|
5
|
+
# @see https://docs.gitlab.com/ce/api/notes.html
|
6
|
+
module Notes
|
7
|
+
# Gets a list of projects notes.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.notes(5)
|
11
|
+
#
|
12
|
+
# @param [Integer] project The ID of a project.
|
13
|
+
# @option options [Integer] :page The page number.
|
14
|
+
# @option options [Integer] :per_page The number of results per page.
|
15
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
16
|
+
def notes(project, options = {})
|
17
|
+
get("/projects/#{url_encode project}/notes", query: options)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Gets a list of notes for a issue.
|
21
|
+
#
|
22
|
+
# @example
|
23
|
+
# Gitlab.issue_notes(5, 10)
|
24
|
+
#
|
25
|
+
# @param [Integer] project The ID of a project.
|
26
|
+
# @param [Integer] issue The ID of an issue.
|
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 issue_notes(project, issue, options = {})
|
31
|
+
get("/projects/#{url_encode project}/issues/#{issue}/notes", query: options)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Gets a list of notes for a snippet.
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# Gitlab.snippet_notes(5, 1)
|
38
|
+
#
|
39
|
+
# @param [Integer] project The ID of a project.
|
40
|
+
# @param [Integer] snippet The ID of a snippet.
|
41
|
+
# @option options [Integer] :page The page number.
|
42
|
+
# @option options [Integer] :per_page The number of results per page.
|
43
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
44
|
+
def snippet_notes(project, snippet, options = {})
|
45
|
+
get("/projects/#{url_encode project}/snippets/#{snippet}/notes", query: options)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Gets a list of notes for a merge request.
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# Gitlab.merge_request_notes(5, 1)
|
52
|
+
#
|
53
|
+
# @param [Integer] project The ID of a project.
|
54
|
+
# @param [Integer] merge_request The ID of a merge request.
|
55
|
+
# @option options [Integer] :page The page number.
|
56
|
+
# @option options [Integer] :per_page The number of results per page.
|
57
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
58
|
+
def merge_request_notes(project, merge_request, options = {})
|
59
|
+
get("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes", query: options)
|
60
|
+
end
|
61
|
+
alias merge_request_comments merge_request_notes
|
62
|
+
|
63
|
+
# Gets a list of notes for an epic.
|
64
|
+
#
|
65
|
+
# @example
|
66
|
+
# Gitlab.epic_notes(5, 10)
|
67
|
+
#
|
68
|
+
# @param [Integer] project The ID of a group.
|
69
|
+
# @param [Integer] epic The ID of an epic.
|
70
|
+
# @option options [Integer] :page The page number.
|
71
|
+
# @option options [Integer] :per_page The number of results per page.
|
72
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
73
|
+
def epic_notes(group, epic, options = {})
|
74
|
+
get("/groups/#{url_encode group}/epics/#{epic}/notes", query: options)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Gets a single wall note.
|
78
|
+
#
|
79
|
+
# @example
|
80
|
+
# Gitlab.note(5, 15)
|
81
|
+
#
|
82
|
+
# @param [Integer] project The ID of a project.
|
83
|
+
# @param [Integer] id The ID of a note.
|
84
|
+
# @return [Gitlab::ObjectifiedHash]
|
85
|
+
def note(project, id)
|
86
|
+
get("/projects/#{url_encode project}/notes/#{id}")
|
87
|
+
end
|
88
|
+
|
89
|
+
# Gets a single issue note.
|
90
|
+
#
|
91
|
+
# @example
|
92
|
+
# Gitlab.issue_note(5, 10, 1)
|
93
|
+
#
|
94
|
+
# @param [Integer] project The ID of a project.
|
95
|
+
# @param [Integer] issue The ID of an issue.
|
96
|
+
# @param [Integer] id The ID of a note.
|
97
|
+
# @return [Gitlab::ObjectifiedHash]
|
98
|
+
def issue_note(project, issue, id)
|
99
|
+
get("/projects/#{url_encode project}/issues/#{issue}/notes/#{id}")
|
100
|
+
end
|
101
|
+
|
102
|
+
# Gets a single snippet note.
|
103
|
+
#
|
104
|
+
# @example
|
105
|
+
# Gitlab.snippet_note(5, 11, 3)
|
106
|
+
#
|
107
|
+
# @param [Integer] project The ID of a project.
|
108
|
+
# @param [Integer] snippet The ID of a snippet.
|
109
|
+
# @param [Integer] id The ID of a note.
|
110
|
+
# @return [Gitlab::ObjectifiedHash]
|
111
|
+
def snippet_note(project, snippet, id)
|
112
|
+
get("/projects/#{url_encode project}/snippets/#{snippet}/notes/#{id}")
|
113
|
+
end
|
114
|
+
|
115
|
+
# Gets a single merge_request note.
|
116
|
+
#
|
117
|
+
# @example
|
118
|
+
# Gitlab.merge_request_note(5, 11, 3)
|
119
|
+
#
|
120
|
+
# @param [Integer] project The ID of a project.
|
121
|
+
# @param [Integer] merge_request The ID of a merge_request.
|
122
|
+
# @param [Integer] id The ID of a note.
|
123
|
+
# @return [Gitlab::ObjectifiedHash]
|
124
|
+
def merge_request_note(project, merge_request, id)
|
125
|
+
get("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes/#{id}")
|
126
|
+
end
|
127
|
+
|
128
|
+
# Creates a new wall note.
|
129
|
+
#
|
130
|
+
# @example
|
131
|
+
# Gitlab.create_note(5, 'This is a wall note!')
|
132
|
+
#
|
133
|
+
# @param [Integer, String] project The ID or name of a project.
|
134
|
+
# @param [String] body The body of a note.
|
135
|
+
# @return [Gitlab::ObjectifiedHash] Information about created note.
|
136
|
+
def create_note(project, body)
|
137
|
+
post("/projects/#{url_encode project}/notes", body: { body: body })
|
138
|
+
end
|
139
|
+
|
140
|
+
# Creates a new issue note.
|
141
|
+
#
|
142
|
+
# @example
|
143
|
+
# Gitlab.create_issue_note(6, 1, 'Adding a note to my issue.')
|
144
|
+
#
|
145
|
+
# @param [Integer, String] project The ID or name of a project.
|
146
|
+
# @param [Integer] issue The ID of an issue.
|
147
|
+
# @param [String] body The body of a note.
|
148
|
+
# @return [Gitlab::ObjectifiedHash] Information about created note.
|
149
|
+
def create_issue_note(project, issue, body)
|
150
|
+
post("/projects/#{url_encode project}/issues/#{issue}/notes", body: { body: body })
|
151
|
+
end
|
152
|
+
|
153
|
+
# Creates a new snippet note.
|
154
|
+
#
|
155
|
+
# @example
|
156
|
+
# Gitlab.create_snippet_note(3, 2, 'Look at this awesome snippet!')
|
157
|
+
#
|
158
|
+
# @param [Integer, String] project The ID or name of a project.
|
159
|
+
# @param [Integer] snippet The ID of a snippet.
|
160
|
+
# @param [String] body The body of a note.
|
161
|
+
# @return [Gitlab::ObjectifiedHash] Information about created note.
|
162
|
+
def create_snippet_note(project, snippet, body)
|
163
|
+
post("/projects/#{url_encode project}/snippets/#{snippet}/notes", body: { body: body })
|
164
|
+
end
|
165
|
+
|
166
|
+
# Creates a new note for a single merge request.
|
167
|
+
#
|
168
|
+
# @example
|
169
|
+
# Gitlab.create_merge_request_note(5, 3, 'This MR is ready for review.')
|
170
|
+
#
|
171
|
+
# @param [Integer] project The ID of a project.
|
172
|
+
# @param [Integer] merge_request The ID of a merge request.
|
173
|
+
# @param [String] body The content of a note.
|
174
|
+
def create_merge_request_note(project, merge_request, body)
|
175
|
+
post("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes", body: { body: body })
|
176
|
+
end
|
177
|
+
alias create_merge_request_comment create_merge_request_note
|
178
|
+
|
179
|
+
# Creates a new epic note.
|
180
|
+
#
|
181
|
+
# @example
|
182
|
+
# Gitlab.create_epic_note(6, 1, 'Adding a note to my epic.')
|
183
|
+
#
|
184
|
+
# @param [Integer, String] group The ID or name of a group.
|
185
|
+
# @param [Integer] epic The ID of an epic.
|
186
|
+
# @param [String] body The body of a note.
|
187
|
+
# @return [Gitlab::ObjectifiedHash] Information about created note.
|
188
|
+
def create_epic_note(group, epic, body)
|
189
|
+
post("/groups/#{url_encode group}/epics/#{epic}/notes", body: { body: body })
|
190
|
+
end
|
191
|
+
|
192
|
+
# Deletes a wall note.
|
193
|
+
#
|
194
|
+
# @example
|
195
|
+
# Gitlab.delete_note(5, 15)
|
196
|
+
#
|
197
|
+
# @param [Integer] project The ID of a project.
|
198
|
+
# @param [Integer] id The ID of a note.
|
199
|
+
# @return [Gitlab::ObjectifiedHash]
|
200
|
+
def delete_note(project, id)
|
201
|
+
delete("/projects/#{url_encode project}/notes/#{id}")
|
202
|
+
end
|
203
|
+
|
204
|
+
# Deletes an issue note.
|
205
|
+
#
|
206
|
+
# @example
|
207
|
+
# Gitlab.delete_issue_note(5, 10, 1)
|
208
|
+
#
|
209
|
+
# @param [Integer] project The ID of a project.
|
210
|
+
# @param [Integer] issue The ID of an issue.
|
211
|
+
# @param [Integer] id The ID of a note.
|
212
|
+
# @return [Gitlab::ObjectifiedHash]
|
213
|
+
def delete_issue_note(project, issue, id)
|
214
|
+
delete("/projects/#{url_encode project}/issues/#{issue}/notes/#{id}")
|
215
|
+
end
|
216
|
+
|
217
|
+
# Deletes a snippet note.
|
218
|
+
#
|
219
|
+
# @example
|
220
|
+
# Gitlab.delete_snippet_note(5, 11, 3)
|
221
|
+
#
|
222
|
+
# @param [Integer] project The ID of a project.
|
223
|
+
# @param [Integer] snippet The ID of a snippet.
|
224
|
+
# @param [Integer] id The ID of a note.
|
225
|
+
# @return [Gitlab::ObjectifiedHash]
|
226
|
+
def delete_snippet_note(project, snippet, id)
|
227
|
+
delete("/projects/#{url_encode project}/snippets/#{snippet}/notes/#{id}")
|
228
|
+
end
|
229
|
+
|
230
|
+
# Deletes a merge_request note.
|
231
|
+
#
|
232
|
+
# @example
|
233
|
+
# Gitlab.delete_merge_request_note(5, 11, 3)
|
234
|
+
#
|
235
|
+
# @param [Integer] project The ID of a project.
|
236
|
+
# @param [Integer] merge_request The ID of a merge_request.
|
237
|
+
# @param [Integer] id The ID of a note.
|
238
|
+
# @return [Gitlab::ObjectifiedHash]
|
239
|
+
def delete_merge_request_note(project, merge_request, id)
|
240
|
+
delete("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes/#{id}")
|
241
|
+
end
|
242
|
+
alias delete_merge_request_comment delete_merge_request_note
|
243
|
+
|
244
|
+
# Modifies a wall note.
|
245
|
+
#
|
246
|
+
# @example
|
247
|
+
# Gitlab.edit_note(5, 15, 'This is an edited note')
|
248
|
+
#
|
249
|
+
# @param [Integer] project The ID of a project.
|
250
|
+
# @param [Integer] id The ID of a note.
|
251
|
+
# @param [String] body The content of a note.
|
252
|
+
# @return [Gitlab::ObjectifiedHash]
|
253
|
+
def edit_note(project, id, body)
|
254
|
+
put("/projects/#{url_encode project}/notes/#{id}", body: note_content(body))
|
255
|
+
end
|
256
|
+
|
257
|
+
# Modifies an issue note.
|
258
|
+
#
|
259
|
+
# @example
|
260
|
+
# Gitlab.edit_issue_note(5, 10, 1, 'This is an edited issue note')
|
261
|
+
#
|
262
|
+
# @param [Integer] project The ID of a project.
|
263
|
+
# @param [Integer] issue The ID of an issue.
|
264
|
+
# @param [Integer] id The ID of a note.
|
265
|
+
# @param [String] body The content of a note.
|
266
|
+
# @return [Gitlab::ObjectifiedHash]
|
267
|
+
def edit_issue_note(project, issue, id, body)
|
268
|
+
put("/projects/#{url_encode project}/issues/#{issue}/notes/#{id}", body: note_content(body))
|
269
|
+
end
|
270
|
+
|
271
|
+
# Modifies a snippet note.
|
272
|
+
#
|
273
|
+
# @example
|
274
|
+
# Gitlab.edit_snippet_note(5, 11, 3, 'This is an edited snippet note')
|
275
|
+
#
|
276
|
+
# @param [Integer] project The ID of a project.
|
277
|
+
# @param [Integer] snippet The ID of a snippet.
|
278
|
+
# @param [Integer] id The ID of a note.
|
279
|
+
# @param [String] body The content of a note.
|
280
|
+
# @return [Gitlab::ObjectifiedHash]
|
281
|
+
def edit_snippet_note(project, snippet, id, body)
|
282
|
+
put("/projects/#{url_encode project}/snippets/#{snippet}/notes/#{id}", body: note_content(body))
|
283
|
+
end
|
284
|
+
|
285
|
+
# Modifies a merge_request note.
|
286
|
+
#
|
287
|
+
# @example
|
288
|
+
# Gitlab.edit_merge_request_note(5, 11, 3, 'This is an edited merge request note')
|
289
|
+
#
|
290
|
+
# @param [Integer] project The ID of a project.
|
291
|
+
# @param [Integer] merge_request The ID of a merge_request.
|
292
|
+
# @param [Integer] id The ID of a note.
|
293
|
+
# @param [String] body The content of a note.
|
294
|
+
# @return [Gitlab::ObjectifiedHash]
|
295
|
+
def edit_merge_request_note(project, merge_request, id, body)
|
296
|
+
put("/projects/#{url_encode project}/merge_requests/#{merge_request}/notes/#{id}", body: note_content(body))
|
297
|
+
end
|
298
|
+
alias edit_merge_request_comment edit_merge_request_note
|
299
|
+
|
300
|
+
private
|
301
|
+
|
302
|
+
# TODO: Remove this method after a couple deprecation cycles. Replace calls with the code
|
303
|
+
# in the 'else'.
|
304
|
+
def note_content(body)
|
305
|
+
if body.is_a?(Hash)
|
306
|
+
warn 'Passing the note body as a Hash is deprecated. You should just pass the String.'
|
307
|
+
body
|
308
|
+
else
|
309
|
+
{ body: body }
|
310
|
+
end
|
311
|
+
end
|
312
|
+
end
|
313
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to GitLab Packages.
|
5
|
+
# @see https://docs.gitlab.com/ee/api/packages.html
|
6
|
+
module Packages
|
7
|
+
# Gets a list of project packages.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.project_packages(5)
|
11
|
+
# Gitlab.project_packages(5, { package_type: 'npm', sort: 'desc' })
|
12
|
+
#
|
13
|
+
# @param [Integer, String] :project the ID or name of a project.
|
14
|
+
# @param [Hash] options A customizable set of options.
|
15
|
+
# @options options [String] :order_by The field to use as order. One of created_at (default), name, version, or type.
|
16
|
+
# @options options [String] :sort The direction of the order, either asc (default) for ascending order or desc for descending order.
|
17
|
+
# @options options [String] :package_type Filter the returned packages by type. One of conan, maven, npm, pypi, composer, nuget, helm, terraform_module, or golang.
|
18
|
+
# @options options [String] :package_name Filter the project packages with a fuzzy search by name.
|
19
|
+
# @options options [String] :include_versionless When set to true, versionless packages are included in the response.
|
20
|
+
# @options options [String] :status Filter the returned packages by status. One of default (default), hidden, processing, error, or pending_destruction.
|
21
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
22
|
+
def project_packages(project, options = {})
|
23
|
+
get("/projects/#{url_encode project}/packages", query: options)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Gets a list of project packages.
|
27
|
+
#
|
28
|
+
# @example
|
29
|
+
# Gitlab.group_packages(5)
|
30
|
+
# Gitlab.group_packages(5, { package_type: 'npm', sort: 'desc' })
|
31
|
+
#
|
32
|
+
# @param [Integer, String] project the ID or name of a project.
|
33
|
+
# @param [Hash] options A customizable set of options.
|
34
|
+
# @options options [String] :exclude_subgroups If the parameter is included as true, packages from projects from subgroups are not listed. Default is false.
|
35
|
+
# @options options [String] :order_by The field to use as order. One of created_at (default), name, version, or type.
|
36
|
+
# @options options [String] :sort The direction of the order, either asc (default) for ascending order or desc for descending order.
|
37
|
+
# @options options [String] :package_type Filter the returned packages by type. One of conan, maven, npm, pypi, composer, nuget, helm, terraform_module, or golang.
|
38
|
+
# @options options [String] :package_name Filter the project packages with a fuzzy search by name.
|
39
|
+
# @options options [String] :include_versionless When set to true, versionless packages are included in the response.
|
40
|
+
# @options options [String] :status Filter the returned packages by status. One of default (default), hidden, processing, error, or pending_destruction.
|
41
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
42
|
+
def group_packages(group, options = {})
|
43
|
+
get("/groups/#{url_encode group}/packages", query: options)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Get a single project package.
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# Gitlab.project_package(5, 3)
|
50
|
+
#
|
51
|
+
# @param [Integer, String] project The ID or name of a project.
|
52
|
+
# @param [Integer] id ID of a package.
|
53
|
+
# @return [Gitlab::ObjectifiedHash]
|
54
|
+
def project_package(project, id)
|
55
|
+
get("/projects/#{url_encode project}/packages/#{id}")
|
56
|
+
end
|
57
|
+
|
58
|
+
# Get a list of package files of a single package.
|
59
|
+
#
|
60
|
+
# @example
|
61
|
+
# Gitlab.project_package_files(5, 3)
|
62
|
+
#
|
63
|
+
# @param [Integer, String] project The ID or name of a project.
|
64
|
+
# @param [Integer] id ID of a package.
|
65
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
66
|
+
def project_package_files(project, id)
|
67
|
+
get("/projects/#{url_encode project}/packages/#{id}/package_files")
|
68
|
+
end
|
69
|
+
|
70
|
+
# Deletes a project package.
|
71
|
+
#
|
72
|
+
# @example
|
73
|
+
# Gitlab.delete_project_package(5, 3)
|
74
|
+
#
|
75
|
+
# @param [Integer, String] project The ID or name of a project.
|
76
|
+
# @param [Integer] id ID of a package.
|
77
|
+
# @return [void] This API call returns an empty response body.
|
78
|
+
def delete_project_package(project, id)
|
79
|
+
delete("/projects/#{url_encode project}/packages/#{id}")
|
80
|
+
end
|
81
|
+
|
82
|
+
# Delete a package file.
|
83
|
+
#
|
84
|
+
# @example
|
85
|
+
# Gitlab.delete_project_file(5, 3, 1)
|
86
|
+
#
|
87
|
+
# @param [Integer, String] project The ID or name of a project.
|
88
|
+
# @param [Integer] package_id ID of a package.
|
89
|
+
# @param [Integer] file_id ID of a package file.
|
90
|
+
# @return [void] This API call returns an empty response body.
|
91
|
+
def delete_project_package_file(project, package_id, file_id)
|
92
|
+
delete("/projects/#{url_encode project}/packages/#{package_id}/package_files/#{file_id}")
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to pipeline schedules.
|
5
|
+
# @see https://docs.gitlab.com/ce/api/pipeline_schedules.html
|
6
|
+
module PipelineSchedules
|
7
|
+
# Gets a list of project pipeline schedules.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.pipeline_schedules(5)
|
11
|
+
# Gitlab.pipeline_schedules(5, { scope: 'active' })
|
12
|
+
#
|
13
|
+
# @param [Integer, String] project the ID or name of a project.
|
14
|
+
# @param [Hash] options A customizable set of options.
|
15
|
+
# @options options [String] :scope The scope of pipeline schedules, one of a 'active' or 'inactive'.
|
16
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
17
|
+
def pipeline_schedules(project, options = {})
|
18
|
+
get("/projects/#{url_encode project}/pipeline_schedules", query: options)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Gets a single pipeline schedule.
|
22
|
+
#
|
23
|
+
# @example
|
24
|
+
# Gitlab.pipeline_schedule(5, 3)
|
25
|
+
#
|
26
|
+
# @param [Integer, String] project The ID or name of a project.
|
27
|
+
# @param [Integer] id The ID of the pipeline schedule.
|
28
|
+
# @return [Gitlab::ObjectifiedHash]
|
29
|
+
def pipeline_schedule(project, id)
|
30
|
+
get("/projects/#{url_encode project}/pipeline_schedules/#{id}")
|
31
|
+
end
|
32
|
+
|
33
|
+
# Create a pipeline schedule.
|
34
|
+
#
|
35
|
+
# @example
|
36
|
+
# Gitlab.create_pipeline_schedule(5, { description: 'example' })
|
37
|
+
#
|
38
|
+
# @param [Integer, String] project The ID or name of a project.
|
39
|
+
# @param [Hash] options A customizable set of options.
|
40
|
+
# @option options [String] :description The description of pipeline scehdule.
|
41
|
+
# @option options [String] :ref The branch/tag name will be triggered.
|
42
|
+
# @option options [String] :cron The cron (e.g. 0 1 * * *).
|
43
|
+
# @option options [String] :cron_timezone The timezone supproted by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) (default: 'UTC').
|
44
|
+
# @option options [Boolean] :active The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially (default: true).
|
45
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
46
|
+
def create_pipeline_schedule(project, options = {})
|
47
|
+
post("/projects/#{url_encode project}/pipeline_schedules", body: options)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Updates the pipeline schedule of a project.
|
51
|
+
#
|
52
|
+
# @example
|
53
|
+
# Gitlab.edit_pipeline_schedule(3, 2, { description: 'example2' })
|
54
|
+
#
|
55
|
+
# @param [Integer, String] project The ID or name of a project.
|
56
|
+
# @param [Integer] The pipeline schedule ID.
|
57
|
+
# @param [Hash] options A customizable set of options.
|
58
|
+
# @option options [String] :description The description of pipeline scehdule.
|
59
|
+
# @option options [String] :ref The branch/tag name will be triggered.
|
60
|
+
# @option options [String] :cron The cron (e.g. 0 1 * * *).
|
61
|
+
# @option options [String] :cron_timezone The timezone supproted by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) (default: 'UTC').
|
62
|
+
# @option options [Boolean] :active The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially (default: true).
|
63
|
+
# @return [Array<Gitlab::ObjectifiedHash>] The updated pipeline schedule.
|
64
|
+
def edit_pipeline_schedule(project, pipeline_schedule_id, options = {})
|
65
|
+
put("/projects/#{url_encode project}/pipeline_schedules/#{pipeline_schedule_id}", body: options)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Take ownership of a pipeline schedule.
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# Gitlab.pipeline_schedule_take_ownership(5, 1)
|
72
|
+
#
|
73
|
+
# @param [Integer, String] project The ID or name of a project.
|
74
|
+
# @param [Integer] trigger_id The pipeline schedule ID.
|
75
|
+
# @return [Gitlab::ObjectifiedHash] The updated pipeline schedule.
|
76
|
+
def pipeline_schedule_take_ownership(project, pipeline_schedule_id)
|
77
|
+
post("/projects/#{url_encode project}/pipeline_schedules/#{pipeline_schedule_id}/take_ownership")
|
78
|
+
end
|
79
|
+
|
80
|
+
# Run a scheduled pipeline immediately.
|
81
|
+
#
|
82
|
+
# @example
|
83
|
+
# Gitlab.run_pipeline_schedule(5, 1)
|
84
|
+
#
|
85
|
+
# @param [Integer, String] project The ID or name of a project.
|
86
|
+
# @param [Integer] trigger_id The pipeline schedule ID.
|
87
|
+
# @return [Gitlab::ObjectifiedHash] Pipeline created message.
|
88
|
+
def run_pipeline_schedule(project, pipeline_schedule_id)
|
89
|
+
post("/projects/#{url_encode project}/pipeline_schedules/#{pipeline_schedule_id}/play")
|
90
|
+
end
|
91
|
+
|
92
|
+
# Delete a pipeline schedule.
|
93
|
+
#
|
94
|
+
# @example
|
95
|
+
# Gitlab.delete_pipeline_schedule(5, 1)
|
96
|
+
#
|
97
|
+
# @param [Integer, String] project The ID or name of a project.
|
98
|
+
# @param [Integer] trigger_id The pipeline schedule ID.
|
99
|
+
# @return [Gitlab::ObjectifiedHash] The deleted pipeline schedule.
|
100
|
+
def delete_pipeline_schedule(project, pipeline_schedule_id)
|
101
|
+
delete("/projects/#{url_encode project}/pipeline_schedules/#{pipeline_schedule_id}")
|
102
|
+
end
|
103
|
+
|
104
|
+
# Create a pipeline schedule variable.
|
105
|
+
#
|
106
|
+
# @example
|
107
|
+
# Gitlab.create_pipeline_schedule_variable(5, 1, { key: 'foo', value: 'bar' })
|
108
|
+
#
|
109
|
+
# @param [Integer, String] project The ID or name of a project.
|
110
|
+
# @param [Integer] trigger_id The pipeline schedule ID.
|
111
|
+
# @param [Hash] options A customizable set of options.
|
112
|
+
# @option options [String] :key The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed.
|
113
|
+
# @option options [String] :value The value of a variable
|
114
|
+
# @return [Array<Gitlab::ObjectifiedHash>] The created pipeline schedule variable.
|
115
|
+
def create_pipeline_schedule_variable(project, pipeline_schedule_id, options = {})
|
116
|
+
post("/projects/#{url_encode project}/pipeline_schedules/#{pipeline_schedule_id}/variables", body: options)
|
117
|
+
end
|
118
|
+
|
119
|
+
# Updates the variable of a pipeline schedule.
|
120
|
+
#
|
121
|
+
# @example
|
122
|
+
# Gitlab.edit_pipeline_schedule_variable(3, 2, "foo" { value: 'bar' })
|
123
|
+
#
|
124
|
+
# @param [Integer, String] project The ID or name of a project.
|
125
|
+
# @param [Integer] The pipeline schedule ID.
|
126
|
+
# @param [String] The key of a variable.
|
127
|
+
# @param [Hash] options A customizable set of options.
|
128
|
+
# @option options [String] :value The value of a variable.
|
129
|
+
# @return [Array<Gitlab::ObjectifiedHash>] The updated pipeline schedule variable.
|
130
|
+
def edit_pipeline_schedule_variable(project, pipeline_schedule_id, key, options = {})
|
131
|
+
put("/projects/#{url_encode project}/pipeline_schedules/#{pipeline_schedule_id}/variables/#{url_encode key}", body: options)
|
132
|
+
end
|
133
|
+
|
134
|
+
# Delete the variable of a pipeline schedule
|
135
|
+
#
|
136
|
+
# @example
|
137
|
+
# Gitlab.delete_pipeline_schedule_variable(3, 2, "foo")
|
138
|
+
#
|
139
|
+
# @param [Integer, String] project The ID or name of a project.
|
140
|
+
# @param [Integer] The pipeline schedule ID.
|
141
|
+
# @param [String] The key of a variable.
|
142
|
+
# @return [Array<Gitlab::ObjectifiedHash>] The deleted pipeline schedule variable.
|
143
|
+
def delete_pipeline_schedule_variable(project, pipeline_schedule_id, key, _options = {})
|
144
|
+
delete("/projects/#{url_encode project}/pipeline_schedules/#{pipeline_schedule_id}/variables/#{url_encode key}")
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to pipelines.
|
5
|
+
# @see https://docs.gitlab.com/ce/api/pipeline_triggers.html
|
6
|
+
# @see https://docs.gitlab.com/ce/ci/triggers/README.html
|
7
|
+
module PipelineTriggers
|
8
|
+
# Gets a list of the project's pipeline triggers
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# Gitlab.triggers(5)
|
12
|
+
#
|
13
|
+
# @param [Integer, String] project The ID or name of a project.
|
14
|
+
# @return [Array<Gitlab::ObjectifiedHash>] The list of triggers.
|
15
|
+
def triggers(project)
|
16
|
+
get("/projects/#{url_encode project}/triggers")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Gets details of project's pipeline trigger.
|
20
|
+
#
|
21
|
+
# @example
|
22
|
+
# Gitlab.trigger(5, 1)
|
23
|
+
#
|
24
|
+
# @param [Integer, String] project The ID or name of a project.
|
25
|
+
# @param [Integer] trigger_id The trigger ID.
|
26
|
+
# @return [Gitlab::ObjectifiedHash] The trigger.
|
27
|
+
def trigger(project, trigger_id)
|
28
|
+
get("/projects/#{url_encode project}/triggers/#{trigger_id}")
|
29
|
+
end
|
30
|
+
|
31
|
+
# Create a pipeline trigger for a project.
|
32
|
+
#
|
33
|
+
# @example
|
34
|
+
# Gitlab.create_trigger(5, description: "my description")
|
35
|
+
#
|
36
|
+
# @param [Integer, String] project The ID or name of a project.
|
37
|
+
# @param [String] description The trigger name
|
38
|
+
# @return [Gitlab::ObjectifiedHash] The created trigger.
|
39
|
+
def create_trigger(project, description)
|
40
|
+
post("/projects/#{url_encode project}/triggers", body: { description: description })
|
41
|
+
end
|
42
|
+
|
43
|
+
# Update a project trigger
|
44
|
+
#
|
45
|
+
# @example
|
46
|
+
# Gitlab.update_trigger(5, 1, description: "my description")
|
47
|
+
#
|
48
|
+
# @param [Integer, String] project The ID or name of a project.
|
49
|
+
# @param [Integer] trigger_id The trigger ID.
|
50
|
+
# @param [Hash] options A customizable set of options.
|
51
|
+
# @option options [String] :description The trigger name.
|
52
|
+
# @return [Gitlab::ObjectifiedHash] The updated trigger.
|
53
|
+
def update_trigger(project, trigger_id, options = {})
|
54
|
+
put("/projects/#{url_encode project}/triggers/#{trigger_id}", body: options)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Take ownership of a project trigger
|
58
|
+
#
|
59
|
+
# @example
|
60
|
+
# Gitlab.trigger_take_ownership(5, 1)
|
61
|
+
#
|
62
|
+
# @param [Integer, String] project The ID or name of a project.
|
63
|
+
# @param [Integer] trigger_id The trigger ID.
|
64
|
+
# @return [Gitlab::ObjectifiedHash] The updated trigger.
|
65
|
+
def trigger_take_ownership(project, trigger_id)
|
66
|
+
post("/projects/#{url_encode project}/triggers/#{trigger_id}/take_ownership")
|
67
|
+
end
|
68
|
+
|
69
|
+
# Remove a project's pipeline trigger.
|
70
|
+
#
|
71
|
+
# @example
|
72
|
+
# Gitlab.remove_trigger(5, 1)
|
73
|
+
#
|
74
|
+
# @param [Integer, String] project The ID or name of a project.
|
75
|
+
# @param [Integer] trigger_id The trigger ID.
|
76
|
+
# @return [void] This API call returns an empty response body.
|
77
|
+
def remove_trigger(project, trigger_id)
|
78
|
+
delete("/projects/#{url_encode project}/triggers/#{trigger_id}")
|
79
|
+
end
|
80
|
+
alias delete_trigger remove_trigger
|
81
|
+
|
82
|
+
# Run the given project pipeline trigger.
|
83
|
+
#
|
84
|
+
# @example
|
85
|
+
# Gitlab.run_trigger(5, '7b9148c158980bbd9bcea92c17522d', 'master')
|
86
|
+
# Gitlab.run_trigger(5, '7b9148c158980bbd9bcea92c17522d', 'master', { variable1: "value", variable2: "value2" })
|
87
|
+
#
|
88
|
+
# @see https://docs.gitlab.com/ce/ci/triggers/README.html
|
89
|
+
#
|
90
|
+
# @param [Integer, String] project The ID or name of the project.
|
91
|
+
# @param [String] token The token of a trigger.
|
92
|
+
# @param [String] ref Branch or tag name to build.
|
93
|
+
# @param [Hash] variables A set of build variables to use for the build. (optional)
|
94
|
+
# @return [Gitlab::ObjectifiedHash] The trigger.
|
95
|
+
def run_trigger(project, token, ref, variables = {})
|
96
|
+
post("/projects/#{url_encode project}/trigger/pipeline", unauthenticated: true, body: {
|
97
|
+
token: token,
|
98
|
+
ref: ref,
|
99
|
+
variables: variables
|
100
|
+
})
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|