labclient 0.1.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 (615) hide show
  1. checksums.yaml +7 -0
  2. data/lib/labclient/access_levels.rb +47 -0
  3. data/lib/labclient/appearance/appearance.rb +7 -0
  4. data/lib/labclient/appearance/show.rb +19 -0
  5. data/lib/labclient/appearance/update.rb +37 -0
  6. data/lib/labclient/application_settings/application_setting.rb +10 -0
  7. data/lib/labclient/application_settings/show.rb +52 -0
  8. data/lib/labclient/application_settings/update.rb +53 -0
  9. data/lib/labclient/application_statistics/application_statistics.rb +17 -0
  10. data/lib/labclient/applications/application.rb +19 -0
  11. data/lib/labclient/applications/create.rb +36 -0
  12. data/lib/labclient/applications/delete.rb +35 -0
  13. data/lib/labclient/applications/list.rb +18 -0
  14. data/lib/labclient/approvals/client.rb +16 -0
  15. data/lib/labclient/approvals/merge_approval.rb +20 -0
  16. data/lib/labclient/approvals/merge_request/approve.rb +35 -0
  17. data/lib/labclient/approvals/merge_request/create_rule.rb +38 -0
  18. data/lib/labclient/approvals/merge_request/delete_rule.rb +27 -0
  19. data/lib/labclient/approvals/merge_request/rules.rb +27 -0
  20. data/lib/labclient/approvals/merge_request/show.rb +27 -0
  21. data/lib/labclient/approvals/merge_request/unapprove.rb +35 -0
  22. data/lib/labclient/approvals/merge_request/update.rb +28 -0
  23. data/lib/labclient/approvals/merge_request/update_rule.rb +40 -0
  24. data/lib/labclient/approvals/project/create_rule.rb +38 -0
  25. data/lib/labclient/approvals/project/delete_rule.rb +26 -0
  26. data/lib/labclient/approvals/project/rules.rb +26 -0
  27. data/lib/labclient/approvals/project/show.rb +38 -0
  28. data/lib/labclient/approvals/project/update.rb +53 -0
  29. data/lib/labclient/approvals/project/update_rule.rb +39 -0
  30. data/lib/labclient/approvals/rule.rb +36 -0
  31. data/lib/labclient/audit_events/audit_event.rb +12 -0
  32. data/lib/labclient/audit_events/group_list.rb +63 -0
  33. data/lib/labclient/audit_events/group_show.rb +27 -0
  34. data/lib/labclient/audit_events/instance_list.rb +73 -0
  35. data/lib/labclient/audit_events/instance_show.rb +19 -0
  36. data/lib/labclient/avatar/avatar.rb +14 -0
  37. data/lib/labclient/avatar/show.rb +27 -0
  38. data/lib/labclient/awards/award.rb +17 -0
  39. data/lib/labclient/awards/issues/client.rb +17 -0
  40. data/lib/labclient/awards/issues/create.rb +23 -0
  41. data/lib/labclient/awards/issues/delete.rb +20 -0
  42. data/lib/labclient/awards/issues/list.rb +22 -0
  43. data/lib/labclient/awards/issues/show.rb +22 -0
  44. data/lib/labclient/awards/merge_requests/client.rb +17 -0
  45. data/lib/labclient/awards/merge_requests/create.rb +23 -0
  46. data/lib/labclient/awards/merge_requests/delete.rb +20 -0
  47. data/lib/labclient/awards/merge_requests/list.rb +22 -0
  48. data/lib/labclient/awards/merge_requests/show.rb +22 -0
  49. data/lib/labclient/awards/snippets/client.rb +17 -0
  50. data/lib/labclient/awards/snippets/create.rb +23 -0
  51. data/lib/labclient/awards/snippets/delete.rb +20 -0
  52. data/lib/labclient/awards/snippets/list.rb +22 -0
  53. data/lib/labclient/awards/snippets/show.rb +22 -0
  54. data/lib/labclient/branches/branch.rb +15 -0
  55. data/lib/labclient/branches/delete.rb +24 -0
  56. data/lib/labclient/branches/delete_merged.rb +25 -0
  57. data/lib/labclient/branches/list.rb +35 -0
  58. data/lib/labclient/branches/show.rb +24 -0
  59. data/lib/labclient/broadcast_messages/broadcast_message.rb +31 -0
  60. data/lib/labclient/broadcast_messages/create.rb +66 -0
  61. data/lib/labclient/broadcast_messages/delete.rb +36 -0
  62. data/lib/labclient/broadcast_messages/list.rb +18 -0
  63. data/lib/labclient/broadcast_messages/show.rb +18 -0
  64. data/lib/labclient/broadcast_messages/update.rb +75 -0
  65. data/lib/labclient/ci_lint/ci_lint.rb +43 -0
  66. data/lib/labclient/class_helpers.rb +17 -0
  67. data/lib/labclient/client.rb +157 -0
  68. data/lib/labclient/commits/cherry_pick.rb +40 -0
  69. data/lib/labclient/commits/comment_create.rb +67 -0
  70. data/lib/labclient/commits/comments.rb +39 -0
  71. data/lib/labclient/commits/commit.rb +101 -0
  72. data/lib/labclient/commits/commit_comment.rb +14 -0
  73. data/lib/labclient/commits/commit_diff.rb +7 -0
  74. data/lib/labclient/commits/create.rb +83 -0
  75. data/lib/labclient/commits/diff.rb +39 -0
  76. data/lib/labclient/commits/list.rb +54 -0
  77. data/lib/labclient/commits/merge_requests.rb +40 -0
  78. data/lib/labclient/commits/project_helpers.rb +49 -0
  79. data/lib/labclient/commits/refs.rb +44 -0
  80. data/lib/labclient/commits/revert.rb +40 -0
  81. data/lib/labclient/commits/show.rb +25 -0
  82. data/lib/labclient/commits/status/list.rb +57 -0
  83. data/lib/labclient/commits/status/status.rb +14 -0
  84. data/lib/labclient/commits/status/update.rb +53 -0
  85. data/lib/labclient/common.rb +110 -0
  86. data/lib/labclient/curl.rb +27 -0
  87. data/lib/labclient/deploy_keys/add.rb +46 -0
  88. data/lib/labclient/deploy_keys/delete.rb +46 -0
  89. data/lib/labclient/deploy_keys/deploy_key.rb +30 -0
  90. data/lib/labclient/deploy_keys/enable.rb +38 -0
  91. data/lib/labclient/deploy_keys/list.rb +38 -0
  92. data/lib/labclient/deploy_keys/project_helpers.rb +29 -0
  93. data/lib/labclient/deploy_keys/show.rb +30 -0
  94. data/lib/labclient/deploy_keys/update.rb +53 -0
  95. data/lib/labclient/discussions/commits/client.rb +17 -0
  96. data/lib/labclient/discussions/commits/create.rb +32 -0
  97. data/lib/labclient/discussions/commits/delete.rb +20 -0
  98. data/lib/labclient/discussions/commits/list.rb +22 -0
  99. data/lib/labclient/discussions/commits/show.rb +22 -0
  100. data/lib/labclient/discussions/commits/update.rb +32 -0
  101. data/lib/labclient/discussions/discussion.rb +17 -0
  102. data/lib/labclient/discussions/epics/client.rb +17 -0
  103. data/lib/labclient/discussions/epics/create.rb +32 -0
  104. data/lib/labclient/discussions/epics/delete.rb +20 -0
  105. data/lib/labclient/discussions/epics/list.rb +22 -0
  106. data/lib/labclient/discussions/epics/show.rb +22 -0
  107. data/lib/labclient/discussions/epics/update.rb +32 -0
  108. data/lib/labclient/discussions/issues/client.rb +17 -0
  109. data/lib/labclient/discussions/issues/create.rb +32 -0
  110. data/lib/labclient/discussions/issues/delete.rb +20 -0
  111. data/lib/labclient/discussions/issues/list.rb +22 -0
  112. data/lib/labclient/discussions/issues/show.rb +22 -0
  113. data/lib/labclient/discussions/issues/update.rb +32 -0
  114. data/lib/labclient/discussions/merge_requests/client.rb +17 -0
  115. data/lib/labclient/discussions/merge_requests/create.rb +32 -0
  116. data/lib/labclient/discussions/merge_requests/delete.rb +20 -0
  117. data/lib/labclient/discussions/merge_requests/list.rb +22 -0
  118. data/lib/labclient/discussions/merge_requests/show.rb +22 -0
  119. data/lib/labclient/discussions/merge_requests/update.rb +32 -0
  120. data/lib/labclient/discussions/snippets/client.rb +17 -0
  121. data/lib/labclient/discussions/snippets/create.rb +32 -0
  122. data/lib/labclient/discussions/snippets/delete.rb +20 -0
  123. data/lib/labclient/discussions/snippets/list.rb +22 -0
  124. data/lib/labclient/discussions/snippets/show.rb +22 -0
  125. data/lib/labclient/discussions/snippets/update.rb +32 -0
  126. data/lib/labclient/docs.rb +107 -0
  127. data/lib/labclient/epics/create.rb +42 -0
  128. data/lib/labclient/epics/delete.rb +35 -0
  129. data/lib/labclient/epics/epic.rb +72 -0
  130. data/lib/labclient/epics/issues/add.rb +35 -0
  131. data/lib/labclient/epics/issues/list.rb +38 -0
  132. data/lib/labclient/epics/issues/remove.rb +37 -0
  133. data/lib/labclient/epics/issues/update.rb +44 -0
  134. data/lib/labclient/epics/list.rb +54 -0
  135. data/lib/labclient/epics/show.rb +29 -0
  136. data/lib/labclient/epics/todo.rb +27 -0
  137. data/lib/labclient/epics/update.rb +52 -0
  138. data/lib/labclient/error.rb +11 -0
  139. data/lib/labclient/events/event.rb +13 -0
  140. data/lib/labclient/events/list.rb +67 -0
  141. data/lib/labclient/events/project.rb +67 -0
  142. data/lib/labclient/events/user.rb +66 -0
  143. data/lib/labclient/files/create.rb +49 -0
  144. data/lib/labclient/files/delete.rb +43 -0
  145. data/lib/labclient/files/show.rb +48 -0
  146. data/lib/labclient/files/update.rb +49 -0
  147. data/lib/labclient/groups/access_requests/access_request.rb +34 -0
  148. data/lib/labclient/groups/access_requests/approve.rb +38 -0
  149. data/lib/labclient/groups/access_requests/client.rb +17 -0
  150. data/lib/labclient/groups/access_requests/create.rb +25 -0
  151. data/lib/labclient/groups/access_requests/deny.rb +25 -0
  152. data/lib/labclient/groups/access_requests/list.rb +24 -0
  153. data/lib/labclient/groups/badges/client.rb +17 -0
  154. data/lib/labclient/groups/badges/create.rb +49 -0
  155. data/lib/labclient/groups/badges/delete.rb +33 -0
  156. data/lib/labclient/groups/badges/group_badge.rb +47 -0
  157. data/lib/labclient/groups/badges/list.rb +28 -0
  158. data/lib/labclient/groups/badges/preview.rb +42 -0
  159. data/lib/labclient/groups/badges/show.rb +27 -0
  160. data/lib/labclient/groups/badges/update.rb +45 -0
  161. data/lib/labclient/groups/create.rb +31 -0
  162. data/lib/labclient/groups/delete.rb +25 -0
  163. data/lib/labclient/groups/group.rb +317 -0
  164. data/lib/labclient/groups/hooks/client.rb +17 -0
  165. data/lib/labclient/groups/hooks/create.rb +46 -0
  166. data/lib/labclient/groups/hooks/delete.rb +33 -0
  167. data/lib/labclient/groups/hooks/group_hook.rb +37 -0
  168. data/lib/labclient/groups/hooks/list.rb +31 -0
  169. data/lib/labclient/groups/hooks/show.rb +27 -0
  170. data/lib/labclient/groups/hooks/update.rb +55 -0
  171. data/lib/labclient/groups/labels/client.rb +17 -0
  172. data/lib/labclient/groups/labels/create.rb +39 -0
  173. data/lib/labclient/groups/labels/delete.rb +33 -0
  174. data/lib/labclient/groups/labels/group_label.rb +49 -0
  175. data/lib/labclient/groups/labels/list.rb +35 -0
  176. data/lib/labclient/groups/labels/show.rb +34 -0
  177. data/lib/labclient/groups/labels/subscribe.rb +35 -0
  178. data/lib/labclient/groups/labels/unsubscribe.rb +35 -0
  179. data/lib/labclient/groups/labels/update.rb +46 -0
  180. data/lib/labclient/groups/ldap/client.rb +18 -0
  181. data/lib/labclient/groups/ldap/create.rb +35 -0
  182. data/lib/labclient/groups/ldap/delete.rb +37 -0
  183. data/lib/labclient/groups/ldap/link.rb +17 -0
  184. data/lib/labclient/groups/ldap/list.rb +27 -0
  185. data/lib/labclient/groups/ldap/sync.rb +27 -0
  186. data/lib/labclient/groups/list.rb +76 -0
  187. data/lib/labclient/groups/milestones/burndown.rb +36 -0
  188. data/lib/labclient/groups/milestones/client.rb +17 -0
  189. data/lib/labclient/groups/milestones/create.rb +37 -0
  190. data/lib/labclient/groups/milestones/delete.rb +26 -0
  191. data/lib/labclient/groups/milestones/group_milestone.rb +52 -0
  192. data/lib/labclient/groups/milestones/issues.rb +29 -0
  193. data/lib/labclient/groups/milestones/list.rb +41 -0
  194. data/lib/labclient/groups/milestones/merge_requests.rb +29 -0
  195. data/lib/labclient/groups/milestones/show.rb +20 -0
  196. data/lib/labclient/groups/milestones/update.rb +45 -0
  197. data/lib/labclient/groups/projects.rb +54 -0
  198. data/lib/labclient/groups/restore.rb +26 -0
  199. data/lib/labclient/groups/runners.rb +33 -0
  200. data/lib/labclient/groups/search.rb +89 -0
  201. data/lib/labclient/groups/show.rb +37 -0
  202. data/lib/labclient/groups/subgroups.rb +47 -0
  203. data/lib/labclient/groups/transfer.rb +27 -0
  204. data/lib/labclient/groups/update.rb +34 -0
  205. data/lib/labclient/http.rb +87 -0
  206. data/lib/labclient/impersonation_tokens/create.rb +37 -0
  207. data/lib/labclient/impersonation_tokens/impersonation_token.rb +18 -0
  208. data/lib/labclient/impersonation_tokens/list.rb +29 -0
  209. data/lib/labclient/impersonation_tokens/revoke.rb +32 -0
  210. data/lib/labclient/impersonation_tokens/show.rb +18 -0
  211. data/lib/labclient/issues/agent_detail.rb +31 -0
  212. data/lib/labclient/issues/closed_by.rb +27 -0
  213. data/lib/labclient/issues/create.rb +29 -0
  214. data/lib/labclient/issues/delete.rb +26 -0
  215. data/lib/labclient/issues/group_issues.rb +29 -0
  216. data/lib/labclient/issues/issue.rb +114 -0
  217. data/lib/labclient/issues/list.rb +58 -0
  218. data/lib/labclient/issues/move.rb +28 -0
  219. data/lib/labclient/issues/notes.rb +18 -0
  220. data/lib/labclient/issues/participants.rb +35 -0
  221. data/lib/labclient/issues/project_issues.rb +31 -0
  222. data/lib/labclient/issues/related_merge_requests.rb +30 -0
  223. data/lib/labclient/issues/show.rb +21 -0
  224. data/lib/labclient/issues/subscribe.rb +31 -0
  225. data/lib/labclient/issues/time_stats.rb +157 -0
  226. data/lib/labclient/issues/todo.rb +31 -0
  227. data/lib/labclient/issues/unsubscribe.rb +31 -0
  228. data/lib/labclient/issues/update.rb +44 -0
  229. data/lib/labclient/jobs/artifacts.rb +49 -0
  230. data/lib/labclient/jobs/artifacts_latest.rb +39 -0
  231. data/lib/labclient/jobs/artifacts_path.rb +50 -0
  232. data/lib/labclient/jobs/cancel.rb +33 -0
  233. data/lib/labclient/jobs/delete.rb +33 -0
  234. data/lib/labclient/jobs/erase.rb +33 -0
  235. data/lib/labclient/jobs/job.rb +79 -0
  236. data/lib/labclient/jobs/keep.rb +33 -0
  237. data/lib/labclient/jobs/pipeline_list.rb +33 -0
  238. data/lib/labclient/jobs/play.rb +33 -0
  239. data/lib/labclient/jobs/project_list.rb +30 -0
  240. data/lib/labclient/jobs/retry.rb +33 -0
  241. data/lib/labclient/jobs/show.rb +25 -0
  242. data/lib/labclient/jobs/trace.rb +33 -0
  243. data/lib/labclient/keys/fingerprint.rb +27 -0
  244. data/lib/labclient/keys/key.rb +26 -0
  245. data/lib/labclient/keys/project.rb +68 -0
  246. data/lib/labclient/keys/show.rb +15 -0
  247. data/lib/labclient/keys/user.rb +66 -0
  248. data/lib/labclient/klass.rb +107 -0
  249. data/lib/labclient/license/add.rb +21 -0
  250. data/lib/labclient/license/delete.rb +17 -0
  251. data/lib/labclient/license/license.rb +12 -0
  252. data/lib/labclient/license/list.rb +71 -0
  253. data/lib/labclient/markdown/markdown.rb +28 -0
  254. data/lib/labclient/members/groups/add.rb +37 -0
  255. data/lib/labclient/members/groups/delete.rb +23 -0
  256. data/lib/labclient/members/groups/list.rb +67 -0
  257. data/lib/labclient/members/groups/show.rb +49 -0
  258. data/lib/labclient/members/groups/update.rb +36 -0
  259. data/lib/labclient/members/member.rb +56 -0
  260. data/lib/labclient/members/members.rb +15 -0
  261. data/lib/labclient/members/projects/add.rb +37 -0
  262. data/lib/labclient/members/projects/delete.rb +23 -0
  263. data/lib/labclient/members/projects/list.rb +66 -0
  264. data/lib/labclient/members/projects/show.rb +49 -0
  265. data/lib/labclient/members/projects/update.rb +36 -0
  266. data/lib/labclient/merge_requests/accept.rb +39 -0
  267. data/lib/labclient/merge_requests/cancel_auto_merge.rb +38 -0
  268. data/lib/labclient/merge_requests/change.rb +25 -0
  269. data/lib/labclient/merge_requests/changes.rb +34 -0
  270. data/lib/labclient/merge_requests/closes_issues.rb +35 -0
  271. data/lib/labclient/merge_requests/commits.rb +22 -0
  272. data/lib/labclient/merge_requests/create.rb +51 -0
  273. data/lib/labclient/merge_requests/delete.rb +31 -0
  274. data/lib/labclient/merge_requests/diff.rb +28 -0
  275. data/lib/labclient/merge_requests/diff_versions.rb +70 -0
  276. data/lib/labclient/merge_requests/list.rb +105 -0
  277. data/lib/labclient/merge_requests/merge_ref.rb +48 -0
  278. data/lib/labclient/merge_requests/merge_request.rb +211 -0
  279. data/lib/labclient/merge_requests/notes.rb +18 -0
  280. data/lib/labclient/merge_requests/participants.rb +36 -0
  281. data/lib/labclient/merge_requests/pipelines.rb +63 -0
  282. data/lib/labclient/merge_requests/rebase.rb +45 -0
  283. data/lib/labclient/merge_requests/show.rb +32 -0
  284. data/lib/labclient/merge_requests/subscribe.rb +31 -0
  285. data/lib/labclient/merge_requests/time_stats.rb +157 -0
  286. data/lib/labclient/merge_requests/todo.rb +31 -0
  287. data/lib/labclient/merge_requests/unsubscribe.rb +31 -0
  288. data/lib/labclient/merge_requests/update.rb +35 -0
  289. data/lib/labclient/namespaces/list.rb +30 -0
  290. data/lib/labclient/namespaces/namespace.rb +10 -0
  291. data/lib/labclient/namespaces/show.rb +18 -0
  292. data/lib/labclient/notes/epics/client.rb +17 -0
  293. data/lib/labclient/notes/epics/create.rb +32 -0
  294. data/lib/labclient/notes/epics/delete.rb +20 -0
  295. data/lib/labclient/notes/epics/list.rb +22 -0
  296. data/lib/labclient/notes/epics/show.rb +22 -0
  297. data/lib/labclient/notes/epics/update.rb +32 -0
  298. data/lib/labclient/notes/issues/client.rb +17 -0
  299. data/lib/labclient/notes/issues/create.rb +32 -0
  300. data/lib/labclient/notes/issues/delete.rb +20 -0
  301. data/lib/labclient/notes/issues/list.rb +22 -0
  302. data/lib/labclient/notes/issues/show.rb +22 -0
  303. data/lib/labclient/notes/issues/update.rb +32 -0
  304. data/lib/labclient/notes/merge_requests/client.rb +17 -0
  305. data/lib/labclient/notes/merge_requests/create.rb +32 -0
  306. data/lib/labclient/notes/merge_requests/delete.rb +20 -0
  307. data/lib/labclient/notes/merge_requests/list.rb +22 -0
  308. data/lib/labclient/notes/merge_requests/show.rb +22 -0
  309. data/lib/labclient/notes/merge_requests/update.rb +32 -0
  310. data/lib/labclient/notes/note.rb +17 -0
  311. data/lib/labclient/notes/snippets/client.rb +17 -0
  312. data/lib/labclient/notes/snippets/create.rb +32 -0
  313. data/lib/labclient/notes/snippets/delete.rb +20 -0
  314. data/lib/labclient/notes/snippets/list.rb +22 -0
  315. data/lib/labclient/notes/snippets/show.rb +22 -0
  316. data/lib/labclient/notes/snippets/update.rb +32 -0
  317. data/lib/labclient/notifications/list.rb +54 -0
  318. data/lib/labclient/notifications/update.rb +64 -0
  319. data/lib/labclient/open_struct.rb +14 -0
  320. data/lib/labclient/overview.rb +243 -0
  321. data/lib/labclient/paginated_response.rb +115 -0
  322. data/lib/labclient/pipelines/cancel.rb +34 -0
  323. data/lib/labclient/pipelines/create.rb +29 -0
  324. data/lib/labclient/pipelines/delete.rb +33 -0
  325. data/lib/labclient/pipelines/list.rb +50 -0
  326. data/lib/labclient/pipelines/pipeline.rb +48 -0
  327. data/lib/labclient/pipelines/retry.rb +34 -0
  328. data/lib/labclient/pipelines/show.rb +26 -0
  329. data/lib/labclient/pipelines/variables.rb +47 -0
  330. data/lib/labclient/projects/access_requests/access_request.rb +34 -0
  331. data/lib/labclient/projects/access_requests/approve.rb +38 -0
  332. data/lib/labclient/projects/access_requests/client.rb +17 -0
  333. data/lib/labclient/projects/access_requests/create.rb +25 -0
  334. data/lib/labclient/projects/access_requests/deny.rb +25 -0
  335. data/lib/labclient/projects/access_requests/list.rb +24 -0
  336. data/lib/labclient/projects/archive.rb +25 -0
  337. data/lib/labclient/projects/badges/client.rb +17 -0
  338. data/lib/labclient/projects/badges/create.rb +49 -0
  339. data/lib/labclient/projects/badges/delete.rb +33 -0
  340. data/lib/labclient/projects/badges/list.rb +28 -0
  341. data/lib/labclient/projects/badges/preview.rb +42 -0
  342. data/lib/labclient/projects/badges/project_badge.rb +47 -0
  343. data/lib/labclient/projects/badges/show.rb +27 -0
  344. data/lib/labclient/projects/badges/update.rb +45 -0
  345. data/lib/labclient/projects/clusters/add.rb +48 -0
  346. data/lib/labclient/projects/clusters/client.rb +17 -0
  347. data/lib/labclient/projects/clusters/delete.rb +37 -0
  348. data/lib/labclient/projects/clusters/list.rb +28 -0
  349. data/lib/labclient/projects/clusters/project_cluster.rb +38 -0
  350. data/lib/labclient/projects/clusters/show.rb +29 -0
  351. data/lib/labclient/projects/clusters/update.rb +37 -0
  352. data/lib/labclient/projects/create.rb +49 -0
  353. data/lib/labclient/projects/delete.rb +25 -0
  354. data/lib/labclient/projects/deployments/client.rb +17 -0
  355. data/lib/labclient/projects/deployments/create.rb +56 -0
  356. data/lib/labclient/projects/deployments/list.rb +67 -0
  357. data/lib/labclient/projects/deployments/merge_requests.rb +33 -0
  358. data/lib/labclient/projects/deployments/project_deployment.rb +39 -0
  359. data/lib/labclient/projects/deployments/show.rb +27 -0
  360. data/lib/labclient/projects/deployments/update.rb +52 -0
  361. data/lib/labclient/projects/environments/client.rb +17 -0
  362. data/lib/labclient/projects/environments/create.rb +37 -0
  363. data/lib/labclient/projects/environments/delete.rb +33 -0
  364. data/lib/labclient/projects/environments/list.rb +34 -0
  365. data/lib/labclient/projects/environments/project_environment.rb +44 -0
  366. data/lib/labclient/projects/environments/show.rb +27 -0
  367. data/lib/labclient/projects/environments/stop.rb +27 -0
  368. data/lib/labclient/projects/environments/update.rb +44 -0
  369. data/lib/labclient/projects/events.rb +19 -0
  370. data/lib/labclient/projects/forks/existing.rb +28 -0
  371. data/lib/labclient/projects/forks/fork.rb +44 -0
  372. data/lib/labclient/projects/forks/list.rb +39 -0
  373. data/lib/labclient/projects/forks/remove.rb +26 -0
  374. data/lib/labclient/projects/github_import.rb +23 -0
  375. data/lib/labclient/projects/hooks/client.rb +17 -0
  376. data/lib/labclient/projects/hooks/create.rb +46 -0
  377. data/lib/labclient/projects/hooks/delete.rb +33 -0
  378. data/lib/labclient/projects/hooks/list.rb +31 -0
  379. data/lib/labclient/projects/hooks/project_hook.rb +32 -0
  380. data/lib/labclient/projects/hooks/show.rb +27 -0
  381. data/lib/labclient/projects/hooks/update.rb +55 -0
  382. data/lib/labclient/projects/housekeeping.rb +29 -0
  383. data/lib/labclient/projects/labels/client.rb +17 -0
  384. data/lib/labclient/projects/labels/create.rb +39 -0
  385. data/lib/labclient/projects/labels/delete.rb +33 -0
  386. data/lib/labclient/projects/labels/list.rb +35 -0
  387. data/lib/labclient/projects/labels/project_label.rb +56 -0
  388. data/lib/labclient/projects/labels/promote.rb +35 -0
  389. data/lib/labclient/projects/labels/show.rb +34 -0
  390. data/lib/labclient/projects/labels/subscribe.rb +35 -0
  391. data/lib/labclient/projects/labels/unsubscribe.rb +35 -0
  392. data/lib/labclient/projects/labels/update.rb +46 -0
  393. data/lib/labclient/projects/languages.rb +28 -0
  394. data/lib/labclient/projects/list.rb +90 -0
  395. data/lib/labclient/projects/methods.rb +681 -0
  396. data/lib/labclient/projects/milestones/burndown.rb +36 -0
  397. data/lib/labclient/projects/milestones/client.rb +17 -0
  398. data/lib/labclient/projects/milestones/create.rb +37 -0
  399. data/lib/labclient/projects/milestones/delete.rb +26 -0
  400. data/lib/labclient/projects/milestones/issues.rb +29 -0
  401. data/lib/labclient/projects/milestones/list.rb +41 -0
  402. data/lib/labclient/projects/milestones/merge_requests.rb +29 -0
  403. data/lib/labclient/projects/milestones/project_milestone.rb +58 -0
  404. data/lib/labclient/projects/milestones/promote.rb +27 -0
  405. data/lib/labclient/projects/milestones/show.rb +20 -0
  406. data/lib/labclient/projects/milestones/update.rb +45 -0
  407. data/lib/labclient/projects/mirror_start.rb +26 -0
  408. data/lib/labclient/projects/mirrors/client.rb +17 -0
  409. data/lib/labclient/projects/mirrors/create.rb +41 -0
  410. data/lib/labclient/projects/mirrors/list.rb +32 -0
  411. data/lib/labclient/projects/mirrors/project_mirror.rb +30 -0
  412. data/lib/labclient/projects/mirrors/update.rb +45 -0
  413. data/lib/labclient/projects/pipeline_schedules/client.rb +17 -0
  414. data/lib/labclient/projects/pipeline_schedules/create.rb +35 -0
  415. data/lib/labclient/projects/pipeline_schedules/delete.rb +26 -0
  416. data/lib/labclient/projects/pipeline_schedules/list.rb +28 -0
  417. data/lib/labclient/projects/pipeline_schedules/pipeline_schedule.rb +69 -0
  418. data/lib/labclient/projects/pipeline_schedules/play.rb +29 -0
  419. data/lib/labclient/projects/pipeline_schedules/show.rb +20 -0
  420. data/lib/labclient/projects/pipeline_schedules/take_ownership.rb +29 -0
  421. data/lib/labclient/projects/pipeline_schedules/update.rb +43 -0
  422. data/lib/labclient/projects/pipeline_schedules/variables/client.rb +17 -0
  423. data/lib/labclient/projects/pipeline_schedules/variables/create.rb +41 -0
  424. data/lib/labclient/projects/pipeline_schedules/variables/delete.rb +38 -0
  425. data/lib/labclient/projects/pipeline_schedules/variables/update.rb +41 -0
  426. data/lib/labclient/projects/project.rb +17 -0
  427. data/lib/labclient/projects/push_rules/client.rb +17 -0
  428. data/lib/labclient/projects/push_rules/create.rb +44 -0
  429. data/lib/labclient/projects/push_rules/delete.rb +32 -0
  430. data/lib/labclient/projects/push_rules/push_rule.rb +31 -0
  431. data/lib/labclient/projects/push_rules/show.rb +31 -0
  432. data/lib/labclient/projects/push_rules/update.rb +51 -0
  433. data/lib/labclient/projects/reference.rb +254 -0
  434. data/lib/labclient/projects/release_links/client.rb +17 -0
  435. data/lib/labclient/projects/release_links/create.rb +40 -0
  436. data/lib/labclient/projects/release_links/delete.rb +34 -0
  437. data/lib/labclient/projects/release_links/list.rb +37 -0
  438. data/lib/labclient/projects/release_links/project_release_link.rb +42 -0
  439. data/lib/labclient/projects/release_links/show.rb +28 -0
  440. data/lib/labclient/projects/release_links/update.rb +45 -0
  441. data/lib/labclient/projects/releases/client.rb +17 -0
  442. data/lib/labclient/projects/releases/create.rb +47 -0
  443. data/lib/labclient/projects/releases/delete.rb +33 -0
  444. data/lib/labclient/projects/releases/evidence.rb +34 -0
  445. data/lib/labclient/projects/releases/list.rb +28 -0
  446. data/lib/labclient/projects/releases/project_release.rb +58 -0
  447. data/lib/labclient/projects/releases/show.rb +27 -0
  448. data/lib/labclient/projects/releases/update.rb +47 -0
  449. data/lib/labclient/projects/resources.rb +24 -0
  450. data/lib/labclient/projects/restore.rb +26 -0
  451. data/lib/labclient/projects/runners/client.rb +17 -0
  452. data/lib/labclient/projects/runners/disable.rb +25 -0
  453. data/lib/labclient/projects/runners/enable.rb +27 -0
  454. data/lib/labclient/projects/runners/list.rb +34 -0
  455. data/lib/labclient/projects/search.rb +91 -0
  456. data/lib/labclient/projects/services/client.rb +29 -0
  457. data/lib/labclient/projects/services/delete.rb +33 -0
  458. data/lib/labclient/projects/services/list.rb +27 -0
  459. data/lib/labclient/projects/services/project_service.rb +37 -0
  460. data/lib/labclient/projects/services/show.rb +27 -0
  461. data/lib/labclient/projects/services/update.rb +41 -0
  462. data/lib/labclient/projects/share.rb +56 -0
  463. data/lib/labclient/projects/show.rb +47 -0
  464. data/lib/labclient/projects/snapshot.rb +25 -0
  465. data/lib/labclient/projects/snippets/agent_detail.rb +30 -0
  466. data/lib/labclient/projects/snippets/client.rb +17 -0
  467. data/lib/labclient/projects/snippets/content.rb +32 -0
  468. data/lib/labclient/projects/snippets/create.rb +40 -0
  469. data/lib/labclient/projects/snippets/delete.rb +26 -0
  470. data/lib/labclient/projects/snippets/list.rb +20 -0
  471. data/lib/labclient/projects/snippets/project_snippet.rb +50 -0
  472. data/lib/labclient/projects/snippets/show.rb +20 -0
  473. data/lib/labclient/projects/snippets/update.rb +42 -0
  474. data/lib/labclient/projects/stars/star.rb +49 -0
  475. data/lib/labclient/projects/stars/starred_projects.rb +51 -0
  476. data/lib/labclient/projects/stars/starrers.rb +46 -0
  477. data/lib/labclient/projects/submodule.rb +34 -0
  478. data/lib/labclient/projects/transfer.rb +27 -0
  479. data/lib/labclient/projects/triggers/client.rb +17 -0
  480. data/lib/labclient/projects/triggers/create.rb +37 -0
  481. data/lib/labclient/projects/triggers/delete.rb +33 -0
  482. data/lib/labclient/projects/triggers/list.rb +28 -0
  483. data/lib/labclient/projects/triggers/project_trigger.rb +33 -0
  484. data/lib/labclient/projects/triggers/show.rb +27 -0
  485. data/lib/labclient/projects/unarchive.rb +25 -0
  486. data/lib/labclient/projects/unshare.rb +27 -0
  487. data/lib/labclient/projects/update.rb +37 -0
  488. data/lib/labclient/projects/upload.rb +28 -0
  489. data/lib/labclient/projects/user.rb +52 -0
  490. data/lib/labclient/projects/users.rb +39 -0
  491. data/lib/labclient/projects/variables/client.rb +17 -0
  492. data/lib/labclient/projects/variables/create.rb +49 -0
  493. data/lib/labclient/projects/variables/delete.rb +33 -0
  494. data/lib/labclient/projects/variables/list.rb +28 -0
  495. data/lib/labclient/projects/variables/project_variable.rb +42 -0
  496. data/lib/labclient/projects/variables/show.rb +27 -0
  497. data/lib/labclient/projects/variables/update.rb +47 -0
  498. data/lib/labclient/protected_branches/code_owner_approval.rb +26 -0
  499. data/lib/labclient/protected_branches/list.rb +35 -0
  500. data/lib/labclient/protected_branches/protect.rb +49 -0
  501. data/lib/labclient/protected_branches/show.rb +24 -0
  502. data/lib/labclient/protected_branches/unprotect.rb +24 -0
  503. data/lib/labclient/protected_tags/list.rb +29 -0
  504. data/lib/labclient/protected_tags/protect.rb +44 -0
  505. data/lib/labclient/protected_tags/show.rb +24 -0
  506. data/lib/labclient/protected_tags/unprotect.rb +24 -0
  507. data/lib/labclient/registry/delete.rb +25 -0
  508. data/lib/labclient/registry/group.rb +33 -0
  509. data/lib/labclient/registry/list.rb +31 -0
  510. data/lib/labclient/registry/repository.rb +26 -0
  511. data/lib/labclient/registry/tags/bulk.rb +30 -0
  512. data/lib/labclient/registry/tags/delete.rb +27 -0
  513. data/lib/labclient/registry/tags/details.rb +20 -0
  514. data/lib/labclient/registry/tags/list.rb +27 -0
  515. data/lib/labclient/registry/tags/tag.rb +23 -0
  516. data/lib/labclient/repository/alias.rb +14 -0
  517. data/lib/labclient/repository/archive.rb +34 -0
  518. data/lib/labclient/repository/blob.rb +32 -0
  519. data/lib/labclient/repository/compare.rb +31 -0
  520. data/lib/labclient/repository/contributors.rb +45 -0
  521. data/lib/labclient/repository/merge_base.rb +38 -0
  522. data/lib/labclient/repository/raw_blob.rb +27 -0
  523. data/lib/labclient/repository/tree.rb +35 -0
  524. data/lib/labclient/resource_labels/epics/client.rb +9 -0
  525. data/lib/labclient/resource_labels/epics/list.rb +30 -0
  526. data/lib/labclient/resource_labels/epics/show.rb +31 -0
  527. data/lib/labclient/resource_labels/issues/client.rb +9 -0
  528. data/lib/labclient/resource_labels/issues/list.rb +30 -0
  529. data/lib/labclient/resource_labels/issues/show.rb +31 -0
  530. data/lib/labclient/resource_labels/merge_requests/client.rb +9 -0
  531. data/lib/labclient/resource_labels/merge_requests/list.rb +30 -0
  532. data/lib/labclient/resource_labels/merge_requests/show.rb +31 -0
  533. data/lib/labclient/resource_labels/resource_label.rb +22 -0
  534. data/lib/labclient/runners/all.rb +24 -0
  535. data/lib/labclient/runners/delete.rb +14 -0
  536. data/lib/labclient/runners/jobs.rb +25 -0
  537. data/lib/labclient/runners/list.rb +24 -0
  538. data/lib/labclient/runners/register.rb +30 -0
  539. data/lib/labclient/runners/remove.rb +24 -0
  540. data/lib/labclient/runners/runner.rb +41 -0
  541. data/lib/labclient/runners/show.rb +16 -0
  542. data/lib/labclient/runners/update.rb +45 -0
  543. data/lib/labclient/runners/verify.rb +22 -0
  544. data/lib/labclient/search/search.rb +18 -0
  545. data/lib/labclient/snippets/agent_detail.rb +31 -0
  546. data/lib/labclient/snippets/content.rb +33 -0
  547. data/lib/labclient/snippets/create.rb +38 -0
  548. data/lib/labclient/snippets/delete.rb +35 -0
  549. data/lib/labclient/snippets/list.rb +18 -0
  550. data/lib/labclient/snippets/public.rb +26 -0
  551. data/lib/labclient/snippets/show.rb +18 -0
  552. data/lib/labclient/snippets/snippet.rb +39 -0
  553. data/lib/labclient/snippets/update.rb +46 -0
  554. data/lib/labclient/system_hooks/add.rb +33 -0
  555. data/lib/labclient/system_hooks/delete.rb +23 -0
  556. data/lib/labclient/system_hooks/list.rb +17 -0
  557. data/lib/labclient/system_hooks/system_hook.rb +19 -0
  558. data/lib/labclient/system_hooks/test.rb +25 -0
  559. data/lib/labclient/tags/create.rb +34 -0
  560. data/lib/labclient/tags/delete.rb +25 -0
  561. data/lib/labclient/tags/list.rb +34 -0
  562. data/lib/labclient/tags/release.rb +27 -0
  563. data/lib/labclient/tags/show.rb +26 -0
  564. data/lib/labclient/tags/tag.rb +16 -0
  565. data/lib/labclient/tags/update.rb +27 -0
  566. data/lib/labclient/todos/list.rb +36 -0
  567. data/lib/labclient/todos/mark_all_done.rb +18 -0
  568. data/lib/labclient/todos/mark_done.rb +29 -0
  569. data/lib/labclient/todos/todo.rb +22 -0
  570. data/lib/labclient/users/activate.rb +25 -0
  571. data/lib/labclient/users/activity.rb +23 -0
  572. data/lib/labclient/users/block.rb +25 -0
  573. data/lib/labclient/users/counts.rb +16 -0
  574. data/lib/labclient/users/create.rb +25 -0
  575. data/lib/labclient/users/current.rb +28 -0
  576. data/lib/labclient/users/deactivate.rb +25 -0
  577. data/lib/labclient/users/delete.rb +28 -0
  578. data/lib/labclient/users/delete_identity.rb +25 -0
  579. data/lib/labclient/users/email/client.rb +18 -0
  580. data/lib/labclient/users/email/create.rb +37 -0
  581. data/lib/labclient/users/email/delete.rb +33 -0
  582. data/lib/labclient/users/email/email.rb +11 -0
  583. data/lib/labclient/users/email/list.rb +33 -0
  584. data/lib/labclient/users/email/show.rb +17 -0
  585. data/lib/labclient/users/gpg/client.rb +18 -0
  586. data/lib/labclient/users/gpg/create.rb +37 -0
  587. data/lib/labclient/users/gpg/delete.rb +33 -0
  588. data/lib/labclient/users/gpg/gpg_key.rb +13 -0
  589. data/lib/labclient/users/gpg/list.rb +33 -0
  590. data/lib/labclient/users/gpg/show.rb +17 -0
  591. data/lib/labclient/users/keys/client.rb +18 -0
  592. data/lib/labclient/users/keys/create.rb +42 -0
  593. data/lib/labclient/users/keys/delete.rb +33 -0
  594. data/lib/labclient/users/keys/list.rb +33 -0
  595. data/lib/labclient/users/keys/show.rb +17 -0
  596. data/lib/labclient/users/list.rb +64 -0
  597. data/lib/labclient/users/memberships.rb +34 -0
  598. data/lib/labclient/users/search.rb +22 -0
  599. data/lib/labclient/users/show.rb +22 -0
  600. data/lib/labclient/users/status.rb +26 -0
  601. data/lib/labclient/users/status_set.rb +23 -0
  602. data/lib/labclient/users/unblock.rb +25 -0
  603. data/lib/labclient/users/update.rb +28 -0
  604. data/lib/labclient/users/user.rb +138 -0
  605. data/lib/labclient/version/show.rb +18 -0
  606. data/lib/labclient/version.rb +3 -0
  607. data/lib/labclient/wikis/create.rb +33 -0
  608. data/lib/labclient/wikis/delete.rb +32 -0
  609. data/lib/labclient/wikis/list.rb +26 -0
  610. data/lib/labclient/wikis/show.rb +25 -0
  611. data/lib/labclient/wikis/update.rb +42 -0
  612. data/lib/labclient/wikis/upload.rb +27 -0
  613. data/lib/labclient/wikis/wiki.rb +40 -0
  614. data/lib/labclient.rb +843 -0
  615. metadata +880 -0
@@ -0,0 +1,211 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ # rubocop:disable Metrics/ClassLength
5
+ class MergeRequest < Klass
6
+ include ClassHelpers
7
+ # extend Docs
8
+
9
+ def inspect
10
+ "#<MergeRequest id: #{id}, title: #{title}, state: #{state}>"
11
+ end
12
+
13
+ # User Fields
14
+ user_attrs %i[author assignee merged_by closed_by]
15
+
16
+ # DateTime Fields
17
+ date_time_attrs %i[
18
+ closed_at created_at first_deployed_to_production_at
19
+ latest_build_finished_at latest_build_started_at merged_at updated_at
20
+ ]
21
+
22
+ def assignees
23
+ @table[:assignees].map { |x| User.new(x, response, client) } if has? :assignees
24
+ end
25
+
26
+ def participants
27
+ client.merge_requests.participants(project_id, iid)
28
+ end
29
+
30
+ def changes
31
+ client.merge_requests.changes(project_id, iid)
32
+ end
33
+
34
+ def commits
35
+ client.merge_requests.commits(project_id, iid)
36
+ end
37
+
38
+ def pipelines
39
+ client.merge_requests.pipelines(project_id, iid)
40
+ end
41
+
42
+ def create_pipeline
43
+ client.merge_requests.create_pipeline(project_id, iid)
44
+ end
45
+
46
+ def update(query)
47
+ update_self client.merge_requests.update(project_id, iid, query)
48
+ end
49
+
50
+ def delete
51
+ client.merge_requests.delete(project_id, iid)
52
+ end
53
+
54
+ def accept
55
+ client.merge_requests.accept(project_id, iid)
56
+ end
57
+
58
+ def merge_ref
59
+ client.merge_requests.merge_ref(project_id, iid)
60
+ end
61
+
62
+ def cancel_auto_merge
63
+ client.merge_requests.cancel_auto_merge(project_id, iid)
64
+ end
65
+
66
+ def rebase(skip_ci = false)
67
+ client.merge_requests.rebase(project_id, iid, skip_ci)
68
+ end
69
+
70
+ def add_spent_time(duration)
71
+ client.merge_requests.add_spent_time(project_id, iid, duration)
72
+ end
73
+
74
+ def time_estimate(duration)
75
+ client.merge_requests.time_estimate(project_id, iid, duration)
76
+ end
77
+
78
+ def reset_time_estimate
79
+ client.merge_requests.reset_time_estimate(project_id, iid)
80
+ end
81
+
82
+ def reset_spent_time
83
+ client.merge_requests.reset_spent_time(project_id, iid)
84
+ end
85
+
86
+ def closes_issues
87
+ client.merge_requests.closes_issues(project_id, iid)
88
+ end
89
+
90
+ def subscribe
91
+ client.merge_requests.subscribe(project_id, iid)
92
+ end
93
+
94
+ def unsubscribe
95
+ client.merge_requests.unsubscribe(project_id, iid)
96
+ end
97
+
98
+ def notes
99
+ client.notes.merge_requests.list(project_id, iid)
100
+ end
101
+
102
+ def todo
103
+ client.merge_requests.todo(project_id, iid)
104
+ end
105
+
106
+ def time_stats
107
+ client.merge_requests.time_stats(project_id, iid)
108
+ end
109
+
110
+ def diff_versions
111
+ client.merge_requests.diff_versions(project_id, iid)
112
+ end
113
+
114
+ # Default to Source Project
115
+ def project
116
+ client.projects.show(source_project_id)
117
+ end
118
+
119
+ def source_project
120
+ client.projects.show(source_project_id)
121
+ end
122
+
123
+ def target_project
124
+ client.projects.show(target_project_id)
125
+ end
126
+
127
+ # Approvals
128
+ def approvals
129
+ client.approvals.merge_request.show(project_id, iid)
130
+ end
131
+
132
+ def approvals_update(approvals_required)
133
+ client.approvals.merge_request.update(project_id, iid, approvals_required)
134
+ end
135
+
136
+ def approvals_rules
137
+ client.approvals.merge_request.rules(project_id, iid)
138
+ end
139
+
140
+ def approvals_rule_create(query = {})
141
+ client.approvals.merge_request.create_rule(project_id, iid, query)
142
+ end
143
+
144
+ def approvals_rule_update(approval_rule_id, query = {})
145
+ client.approvals.merge_request.update_rule(project_id, iid, approval_rule_id, query)
146
+ end
147
+
148
+ def approvals_rule_delete(approval_rule_id)
149
+ client.approvals.merge_request.delete_rule(project_id, iid, approval_rule_id)
150
+ end
151
+
152
+ def approve(query = {})
153
+ client.approvals.merge_request.approve(project_id, iid, query)
154
+ end
155
+
156
+ def unapprove
157
+ client.approvals.merge_request.unapprove(project_id, iid)
158
+ end
159
+
160
+ # Resource Labels
161
+ def resource_labels
162
+ client.resource_labels.merge_requests.list(project_id, iid)
163
+ end
164
+
165
+ def resource_label(resource_event_id)
166
+ client.resource_labels.merge_requests.show(project_id, iid, resource_event_id)
167
+ end
168
+
169
+ help do
170
+ subtitle 'MergeRequest'
171
+ option 'accept', 'Merge changes submitted'
172
+ option 'add_time_spent', 'Adds spent time. Accepts Duration or Human Format. (1.hour or "1h")'
173
+ option 'changes', 'Show merge request changes'
174
+ option 'closes_issues', 'Show issues that this merge request will close'
175
+ option 'commits', 'List associated commits.'
176
+ option 'create_pipeline', 'Create new pipeline for this merge request.'
177
+ option 'delete', 'Delete this merge request.'
178
+ option 'merge_ref', 'Show Merge Ref'
179
+ option 'notes', 'List notes/comments.'
180
+ option 'participants', 'List participants in this merge request.'
181
+ option 'pipelines', 'List pipelines in this merge request.'
182
+ option 'reset_spent_time', 'Resets the spent time'
183
+ option 'reset_time_estimate', 'Resets the estimated time'
184
+ option 'subscribe', 'Subscribe to notifications'
185
+ option 'time_estimate', 'Sets an estimated time. Accepts Duration or Human Format. (1.hour or "1h")'
186
+ option 'time_stats', 'Get time tracking stats.'
187
+ option 'todo', 'Create todo'
188
+ option 'unsubscribe', 'Unsubscribe to notifications'
189
+ option 'update', 'Update merge request (accepts hash).'
190
+ option 'project', 'Return associated Project (default to source project).'
191
+ option 'source_project', 'MR Source Project'
192
+ option 'target_project', 'MR Target Project'
193
+
194
+ # Approvals
195
+ option 'approvals', 'Show Merge Request approval configuration'
196
+ option 'approvals_update', 'Change approval configuration [Integer]'
197
+ option 'approvals_rules', 'Show Merge Request approval rules'
198
+
199
+ option 'approvals_rule_create', 'Create Approval Rule [Hash]'
200
+ option 'approvals_rule_update', 'Updating existing Approval Rule [Rule ID, Hash]'
201
+ option 'approvals_rule_delete', 'Delete Approval Rule [Rule ID]'
202
+ option 'approve', 'Approve Merge Request [Hash]'
203
+ option 'unapprove', 'Unapprove Merge Request'
204
+
205
+ # Resource Labels
206
+ option 'resource_labels', 'List of all label events'
207
+ option 'resource_label', 'Show single label event [Resource Event ID]'
208
+ end
209
+ end
210
+ # rubocop:enable Metrics/ClassLength
211
+ end
@@ -0,0 +1,18 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Show' do
6
+ title 'Notes'
7
+ desc 'Notes are handled via the Notes resource. Accessible via the object or notes'
8
+ example <<~DOC
9
+ mr = client.merge_requests.show(343,2)
10
+ mr.notes
11
+ DOC
12
+
13
+ result <<~DOC
14
+ => [#<Note id: 21, type: MergeRequest>, #<Note id: 20, type: MergeRequest>, .. ]
15
+ DOC
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,36 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Show' do
6
+ title 'Participants'
7
+ desc 'Get a list of merge request participants. [project id, mr iid]'
8
+ example 'client.merge_requests.participants(333,1)'
9
+ result <<~DOC
10
+ => [#<User id: 1, username: braum>, #<User id: 52, username: anivia>]
11
+ DOC
12
+ end
13
+
14
+ doc 'Show' do
15
+ desc 'List through MergeRequest'
16
+ example <<~DOC
17
+ mr = client.merge_requests.show(343,1)
18
+ mr.participants
19
+ DOC
20
+ result <<~DOC
21
+ mr = client.merge_requests.show(343,1)
22
+ => #<MergeRequest id: 1, title: Update README.md>
23
+ mr.participants
24
+ => [#<User id: 1, username: root>]
25
+ DOC
26
+ end
27
+
28
+ # Show Specific
29
+ def participants(project_id, merge_request_id)
30
+ project_id = format_id(project_id)
31
+ merge_request_id = format_id(merge_request_id)
32
+
33
+ client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/participants", User)
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,63 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Pipelines' do
6
+ title 'List'
7
+ desc 'Get a list of merge request pipelines. [project id, mr iid]'
8
+ example 'client.merge_requests.pipelines(343,1)'
9
+ result <<~DOC
10
+ => [#<Pipeline id: 4, ref: branch, status: success>]
11
+ DOC
12
+ end
13
+
14
+ doc 'Pipelines' do
15
+ desc 'List through MergeRequest'
16
+ example <<~DOC
17
+ mr = client.merge_requests.show(343,1)
18
+ mr.pipelines
19
+ DOC
20
+
21
+ result <<~DOC
22
+ => [#<Pipeline id: 4, ref: branch, status: success>]
23
+ DOC
24
+ end
25
+
26
+ # Show Specific
27
+ def pipelines(project_id, merge_request_id)
28
+ project_id = format_id(project_id)
29
+ merge_request_id = format_id(merge_request_id)
30
+
31
+ client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/pipelines", Pipeline)
32
+ end
33
+
34
+ doc 'Pipelines' do
35
+ title 'Create'
36
+ desc 'Create a new pipeline for a merge request. Requires .gitlab-ci.yml to be configured with only: [merge_requests] to create jobs. [project id, mr iid]'
37
+ example 'client.merge_requests.create_pipeline(343, 1)'
38
+ result <<~DOC
39
+ => #<Pipeline id: 7, ref: refs/merge-requests/1/head, status: pending>
40
+ DOC
41
+ end
42
+
43
+ doc 'Pipelines' do
44
+ desc 'Create through MergeRequest'
45
+ example <<~DOC
46
+ mr = client.merge_requests.show(343,1)
47
+ mr.create_pipeline
48
+ DOC
49
+
50
+ result <<~DOC
51
+ => #<Pipeline id: 8, ref: refs/merge-requests/1/head, status: pending>
52
+ DOC
53
+ end
54
+
55
+ # Create New Pipeline
56
+ def create_pipeline(project_id, merge_request_id)
57
+ project_id = format_id(project_id)
58
+ merge_request_id = format_id(merge_request_id)
59
+
60
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/pipelines", Pipeline)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,45 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Update' do
6
+ title 'Rebase'
7
+ desc 'Rebase a merge request [project id, merge request iid, skip_ci (true/false)]'
8
+ markdown <<~DOC
9
+ - Automatically rebase the `source_branch` of the merge request against its `target_branch`.
10
+
11
+ - If you don't have permissions to push to the merge request's source branch you'll get a `403 Forbidden` response.
12
+ DOC
13
+
14
+ example 'client.merge_requests.rebase(343, 3)'
15
+
16
+ result <<~DOC
17
+ => {:rebase_in_progress=>true}
18
+ DOC
19
+ end
20
+
21
+ doc 'Update' do
22
+ desc 'Rebase skipping CI'
23
+
24
+ example 'client.merge_requests.rebase(343, 3, true)'
25
+ result <<~DOC
26
+ => {:rebase_in_progress=>true}
27
+ DOC
28
+ end
29
+
30
+ doc 'Update' do
31
+ desc 'Rebase through MergeRequest'
32
+ example <<~DOC
33
+ mr = client.merge_requests.show(343,2)
34
+ mr.rebase
35
+ DOC
36
+ end
37
+
38
+ def rebase(project_id, merge_request_id, skip_ci = false)
39
+ project_id = format_id(project_id)
40
+ merge_request_id = format_id(merge_request_id)
41
+
42
+ client.request(:put, "projects/#{project_id}/merge_requests/#{merge_request_id}/rebase", nil, skip_ci: skip_ci)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,32 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Show' do
6
+ desc 'Shows information about a single merge request. [project id, mr iid]'
7
+ example 'client.merge_requests.show(333,1)'
8
+ result <<~DOC
9
+ => #<MergeRequest id: 37, title: Add new file>
10
+ DOC
11
+ end
12
+
13
+ doc 'Show' do
14
+ desc 'Parameters'
15
+ markdown <<~DOC
16
+ | Attribute | Description |
17
+ | ------------------------------ | ------------------------------------------------------------------- |
18
+ | render_html | If true response includes rendered HTML for title and description |
19
+ | include_diverged_commits_count | If true response includes the commits behind the target branch |
20
+ | include_rebase_in_progress | If true response includes whether a rebase operation is in progress |
21
+ DOC
22
+ end
23
+
24
+ # Show Specific
25
+ def show(project_id, merge_request_id = nil, query = {})
26
+ project_id = format_id(project_id)
27
+ merge_request_id = format_id(merge_request_id)
28
+
29
+ client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}", MergeRequest, query)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,31 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Update' do
6
+ title 'Subscribe'
7
+ desc 'Subscribes the authenticated user to a merge request to receive notification. [project id, merge request iid]'
8
+
9
+ example 'client.merge_requests.subscribe(343, 7)'
10
+
11
+ result <<~DOC
12
+ => #<MergeRequest id: 3, title: Add new file>
13
+ DOC
14
+ end
15
+
16
+ doc 'Update' do
17
+ desc 'Subscribe through MergeRequest'
18
+ example <<~DOC
19
+ mr = client.merge_requests.show(343,2)
20
+ mr.subscribe
21
+ DOC
22
+ end
23
+
24
+ def subscribe(project_id, merge_request_id)
25
+ project_id = format_id(project_id)
26
+ merge_request_id = format_id(merge_request_id)
27
+
28
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/subscribe", MergeRequest)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,157 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Time Stats' do
6
+ title 'Show'
7
+ desc 'Get time tracking stats. [project id, mr iid]'
8
+ example 'client.merge_requests.time_stats(333, 1)'
9
+ result <<~DOC
10
+ => {:time_estimate=>0, :total_time_spent=>0, :human_time_estimate=>nil, :human_total_time_spent=>nil}
11
+ DOC
12
+ end
13
+
14
+ doc 'Time Stats' do
15
+ desc 'Show through MergeRequest'
16
+ example <<~DOC
17
+ mr = client.merge_requests.show(333, 1)'
18
+ mr.time_stats
19
+ DOC
20
+ end
21
+
22
+ def time_stats(project_id, merge_request_id)
23
+ project_id = format_id(project_id)
24
+ merge_request_id = format_id(merge_request_id)
25
+
26
+ client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/time_stats")
27
+ end
28
+
29
+ doc 'Time Stats' do
30
+ title 'Add'
31
+ desc 'Adds spent time for this merge request. [project id, mr iid, duration]'
32
+ markdown 'Duration accepts Human Format, or ActiveSupport::Duration (e.g. 1.hour)'
33
+ end
34
+
35
+ doc 'Time Stats' do
36
+ desc 'Duration Example'
37
+ example 'client.merge_requests.add_spent_time(333, 1, 1.hour)'
38
+ end
39
+
40
+ doc 'Time Stats' do
41
+ desc 'Human Format Example'
42
+ example 'client.merge_requests.add_spent_time(333, 1, "1h")'
43
+ end
44
+
45
+ doc 'Time Stats' do
46
+ desc 'Add through MergeRequest'
47
+ example <<~DOC
48
+ mr = client.merge_requests.show(333, 1)
49
+ mr.add_spent_time(1.hour)
50
+ DOC
51
+
52
+ result <<~DOC
53
+ mr.add_spent_time(1.hour)
54
+ => {:time_estimate=>0, :total_time_spent=>12978000, :human_time_estimate=>nil, :human_total_time_spent=>"22mo 2w 5h"}
55
+ mr.add_spent_time('1h')
56
+ => {:time_estimate=>0, :total_time_spent=>12978001, :human_time_estimate=>nil, :human_total_time_spent=>"22mo 2w 5h 1s"}
57
+ DOC
58
+ end
59
+
60
+ def add_spent_time(project_id, merge_request_id, duration)
61
+ project_id = format_id(project_id)
62
+ merge_request_id = format_id(merge_request_id)
63
+
64
+ duration = ChronicDuration.output(ChronicDuration.parse(duration.to_s), format: :short)
65
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/add_spent_time", nil, duration: duration)
66
+ end
67
+
68
+ doc 'Time Stats' do
69
+ title 'Estimate'
70
+ desc 'Sets an estimated time of work for this merge request. [project id, mr iid, duration]'
71
+ markdown 'Duration accepts Human Format, or ActiveSupport::Duration (e.g. 1.hour)'
72
+ end
73
+
74
+ doc 'Time Stats' do
75
+ desc 'Duration Example'
76
+ example 'client.merge_requests.time_estimate(333, 1, 1.hour)'
77
+ end
78
+
79
+ doc 'Time Stats' do
80
+ desc 'Human Format Example'
81
+ example 'client.merge_requests.time_estimate(333, 1, "1h")'
82
+ end
83
+
84
+ doc 'Time Stats' do
85
+ desc 'Add through MergeRequest'
86
+ example <<~DOC
87
+ mr = client.merge_requests.show(333, 1)
88
+ mr.add_spent_time(1.hour)
89
+ DOC
90
+
91
+ result <<~DOC
92
+ mr.add_spent_time(1.hour)
93
+ => {:time_estimate=>0, :total_time_spent=>12978000, :human_time_estimate=>nil, :human_total_time_spent=>"22mo 2w 5h"}
94
+ mr.add_spent_time('1h')
95
+ => {:time_estimate=>0, :total_time_spent=>12978001, :human_time_estimate=>nil, :human_total_time_spent=>"22mo 2w 5h 1s"}
96
+ DOC
97
+ end
98
+
99
+ def time_estimate(project_id, merge_request_id, duration)
100
+ project_id = format_id(project_id)
101
+ merge_request_id = format_id(merge_request_id)
102
+
103
+ duration = ChronicDuration.output(ChronicDuration.parse(duration.to_s), format: :short)
104
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/time_estimate", nil, duration: duration)
105
+ end
106
+
107
+ # Resets
108
+ doc 'Time Stats' do
109
+ title 'Reset'
110
+ subtitle 'Estimate'
111
+ desc 'Resets the estimated time for this merge request to 0 seconds. [project id, mr iid]'
112
+ example 'client.merge_requests.reset_time_estimate(333, 1)'
113
+ result <<~DOC
114
+ => {:time_estimate=>0, :total_time_spent=>0, :human_time_estimate=>nil, :human_total_time_spent=>nil}
115
+ DOC
116
+ end
117
+
118
+ doc 'Time Stats' do
119
+ desc 'Show through MergeRequest'
120
+ example <<~DOC
121
+ mr = client.merge_requests.show(333, 1)'
122
+ mr.reset_time_estimate
123
+ DOC
124
+ end
125
+
126
+ def reset_time_estimate(project_id, merge_request_id)
127
+ project_id = format_id(project_id)
128
+ merge_request_id = format_id(merge_request_id)
129
+
130
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/reset_time_estimate")
131
+ end
132
+
133
+ doc 'Time Stats' do
134
+ subtitle 'Time Spent'
135
+ desc 'Resets the estimated time for this merge request to 0 seconds. [project id, mr iid]'
136
+ example 'client.merge_requests.reset_spent_time(333, 1)'
137
+ result <<~DOC
138
+ => {:time_estimate=>0, :total_time_spent=>0, :human_time_estimate=>nil, :human_total_time_spent=>nil}
139
+ DOC
140
+ end
141
+
142
+ doc 'Time Stats' do
143
+ desc 'Show through MergeRequest'
144
+ example <<~DOC
145
+ mr = client.merge_requests.show(333, 1)
146
+ mr.reset_spent_time
147
+ DOC
148
+ end
149
+
150
+ def reset_spent_time(project_id, merge_request_id)
151
+ project_id = format_id(project_id)
152
+ merge_request_id = format_id(merge_request_id)
153
+
154
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/reset_spent_time")
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,31 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Update' do
6
+ title 'Todo'
7
+ desc 'Manually creates a todo for the current user on a merge request. [project id, merge request iid]'
8
+
9
+ example 'client.merge_requests.todo(343, 7)'
10
+
11
+ result <<~DOC
12
+ => #<Todo id: 7513, state: pending>
13
+ DOC
14
+ end
15
+
16
+ doc 'Update' do
17
+ desc 'Create Todo through MergeRequest'
18
+ example <<~DOC
19
+ mr = client.merge_requests.show(343,2)
20
+ mr.todo
21
+ DOC
22
+ end
23
+
24
+ def todo(project_id, merge_request_id)
25
+ project_id = format_id(project_id)
26
+ merge_request_id = format_id(merge_request_id)
27
+
28
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/todo", Todo)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Update' do
6
+ title 'Unsubscribe'
7
+ desc 'Subscribes the authenticated user to a merge request to receive notification. [project id, merge request iid]'
8
+
9
+ example 'client.merge_requests.unsubscribe(343, 7)'
10
+
11
+ result <<~DOC
12
+ => #<MergeRequest id: 3, title: Add new file>
13
+ DOC
14
+ end
15
+
16
+ doc 'Update' do
17
+ desc 'Unsubscribe through MergeRequest'
18
+ example <<~DOC
19
+ mr = client.merge_requests.show(343,2)
20
+ mr.unsubscribe
21
+ DOC
22
+ end
23
+
24
+ def unsubscribe(project_id, merge_request_id)
25
+ project_id = format_id(project_id)
26
+ merge_request_id = format_id(merge_request_id)
27
+
28
+ client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/unsubscribe", MergeRequest)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,35 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class MergeRequests < Common
5
+ doc 'Update' do
6
+ desc 'Updates an existing merge request. You can change the target branch, title, or even close the MR. [project id, merge request iid]'
7
+
8
+ example <<~DOC
9
+ client.merge_requests.update(343, 2, {
10
+ title: 'Better Title'
11
+ })
12
+ DOC
13
+
14
+ result <<~DOC
15
+ => #<MergeRequest id: 2, title: Better Title>
16
+ DOC
17
+ end
18
+
19
+ doc 'Update' do
20
+ desc 'List through MergeRequest'
21
+ example <<~DOC
22
+ mr = client.merge_requests.show(343,2)
23
+ mr.update(title: 'Dew it')
24
+ DOC
25
+ end
26
+
27
+ # Update
28
+ def update(project_id, merge_request_id, query)
29
+ project_id = format_id(project_id)
30
+ merge_request_id = format_id(merge_request_id)
31
+
32
+ client.request(:put, "projects/#{project_id}/merge_requests/#{merge_request_id}", MergeRequest, query)
33
+ end
34
+ end
35
+ end