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,37 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Groups < Common
5
+ doc 'Show' do
6
+ subtitle 'Details'
7
+ desc 'Get all details of a group [Hash]'
8
+
9
+ example 'client.groups.show(68)'
10
+
11
+ result '=> [#<Project id: 77 fensofserech/flameatronach>, #<Project id: 76 fensofserech/sizechanging>, ... ]'
12
+
13
+ markdown <<~DOC
14
+ See [Docs](https://docs.gitlab.com/ee/api/groups.html#details-of-a-group) on extra attributes
15
+
16
+ | Attribute | Type | Required | Description |
17
+ | ------------------------ | -------------- | -------- | ----------- |
18
+ | with_custom_attributes | boolean | no | Include custom attributes in response (admins only). |
19
+ | with_projects | boolean | no | Include details from projects that belong to the specified group (defaults to true). |
20
+ DOC
21
+ end
22
+
23
+ doc 'Show' do
24
+ desc 'Via Group'
25
+ example <<~DOC
26
+ group = client.groups.list.last
27
+ group.details
28
+ DOC
29
+ end
30
+
31
+ def show(group_id, query = {})
32
+ group_id = format_id(group_id)
33
+
34
+ client.request(:get, "groups/#{group_id}", Group, query)
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,47 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Groups < Common
5
+ doc 'List' do
6
+ title 'Subgroups'
7
+ desc 'Get a list of visible direct subgroups in this group'
8
+
9
+ example 'client.groups.subgroups(68)'
10
+
11
+ result '=> [#<Group id: 110, fensofserech/subgroup>]'
12
+
13
+ markdown <<~DOC
14
+ | Attribute | Type | Required | Description |
15
+ | ------------------------ | ----------------- | -------- | ---------- |
16
+ | skip_groups | array of integers | no | Skip the group IDs passed |
17
+ | all_available | boolean | no | Show all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence |
18
+ | search | string | no | Return the list of authorized groups matching the search criteria |
19
+ | order_by | string | no | Order groups by name, path or id. Default is name |
20
+ | sort | string | no | Order groups in asc or desc order. Default is asc |
21
+ | statistics | boolean | no | Include group statistics (admins only) |
22
+ | with_custom_attributes | boolean | no | Include custom attributes in response (admins only) |
23
+ | owned | boolean | no | Limit to groups explicitly owned by the current user |
24
+ | min_access_level | integer | no | Limit to groups where current user has at least this access level |
25
+ DOC
26
+ end
27
+
28
+ doc 'List' do
29
+ desc 'Via Group'
30
+ example <<~DOC
31
+ group = client.groups.list.last
32
+ group.subgroups
33
+ DOC
34
+ end
35
+
36
+ def subgroups(group_id, query = {})
37
+ group_id = format_id(group_id)
38
+
39
+ # Map Skip Groups
40
+ format_query_ids(:skip_groups, query)
41
+
42
+ query_access_level(query, :min_access_level)
43
+
44
+ client.request(:get, "groups/#{group_id}/subgroups", Group, query)
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,27 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Groups < Common
5
+ doc 'Update' do
6
+ title 'Transfer'
7
+ desc 'Transfer a project to the Group namespace [Group ID , Project ID]'
8
+ example 'client.groups.transfer(3,25)'
9
+ result '=> #<Project id: 25 badlands/chaurushunter>'
10
+ end
11
+
12
+ doc 'Update' do
13
+ desc 'via Group'
14
+ example <<~DOC
15
+ group = client.group.show(3)
16
+ group.transfer(25)
17
+ DOC
18
+ end
19
+
20
+ def transfer(group_id, project_id)
21
+ group_id = format_id(group_id)
22
+ project_id = format_id(project_id)
23
+
24
+ client.request(:post, "groups/#{group_id}/projects/#{project_id}", Project)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Groups < Common
5
+ doc 'Update' do
6
+ example 'client.groups.update(3, name: "Sweet Name")'
7
+ result '=> #<Group id: 68, fensofserech>'
8
+
9
+ markdown <<~DOC
10
+ Updates the project group [Group ID , Hash]. See [Docs](https://docs.gitlab.com/ee/api/groups.html#update-group) for available options.
11
+
12
+ | Attribute | Type | Required | Description |
13
+ | ------------------------------------ | ------- | -------- | ----------- |
14
+ | name | string | no | The name of the group. |
15
+ | path | string | no | The path of the group. |
16
+ | description | string | no | The description of the group. |
17
+ DOC
18
+ end
19
+
20
+ doc 'Update' do
21
+ desc 'via Group'
22
+ example <<~DOC
23
+ group = client.group.show(3)
24
+ group.update(name: 'rawr')
25
+ DOC
26
+ end
27
+
28
+ def update(group_id, query = {})
29
+ group_id = format_id(group_id)
30
+
31
+ client.request(:put, "groups/#{group_id}", Group, query)
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,87 @@
1
+ # Typheous Wrapper
2
+ module LabClient
3
+ # Request Helper
4
+ class HTTP
5
+ attr_accessor :settings
6
+ def initialize(settings)
7
+ self.settings = settings
8
+ end
9
+
10
+ # Pagination Helper, Raw/Full HTTP Requests
11
+ def url(path)
12
+ if path.include? 'http'
13
+ path
14
+ else
15
+ "#{settings[:url]}/api/v4/#{path}"
16
+ end
17
+ end
18
+
19
+ def request(method, path, body = {}, dump_json = true)
20
+ options = { method: method, headers: headers(dump_json) }
21
+
22
+ if body && !body.empty?
23
+ case method
24
+ when :get
25
+ options[:params] = body
26
+ else
27
+ # File Upload shouldn't be jsonfied
28
+ options[:body] = dump_json ? Oj.dump(body, mode: :compat) : body
29
+ end
30
+ end
31
+
32
+ options.merge!(disable_ssl) unless settings[:ssl_verify]
33
+
34
+ Typhoeus::Request.new(url(path), options).run
35
+ end
36
+
37
+ def disable_ssl
38
+ { ssl_verifyhost: 0, ssl_verifypeer: false }
39
+ end
40
+
41
+ def headers(dump_json)
42
+ default_headers = {
43
+
44
+ 'Private-Token' => settings[:token],
45
+
46
+ 'Accept' => 'application/json',
47
+ 'User-Agent' => "LabClient #{LabClient::VERSION}"
48
+ }
49
+
50
+ default_headers['Content-Type'] = 'application/json' if dump_json
51
+ default_headers
52
+ end
53
+ end
54
+ end
55
+
56
+ # Typheous Shim
57
+ module Typhoeus
58
+ # Add Data : OJ Parsing
59
+ class Response
60
+ def inspect
61
+ "#<TyphoeusResponse code: #{code}>"
62
+ end
63
+
64
+ attr_reader :path
65
+
66
+ def data
67
+ return @data if @data
68
+
69
+ @data = process_body
70
+ end
71
+
72
+ def process_body
73
+ if body.empty?
74
+ nil
75
+ elsif headers['content-type'] == 'text/plain'
76
+ body
77
+ else
78
+ Oj.load(body, mode: :compat, object_class: OpenStruct)
79
+ end
80
+ end
81
+
82
+ def friendly_error
83
+ message = data[:message] || data[:error] || data
84
+ "#{code} - #{message}"
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,37 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class ImpersonationTokens < Common
5
+ doc 'Create' do
6
+ desc 'It creates a new impersonation token. You are only able to create impersonation tokens to impersonate the user and perform both API calls and Git reads and writes. [User ID, Hash]'
7
+ example 'client.impersonation_tokens.create(5, name: "Special", scopes: [:api])'
8
+ result '#<ImpersonationToken id: 8, name: Special, active: true>'
9
+
10
+ markdown <<~DOC
11
+
12
+
13
+ | Attribute | Type | Required | Description |
14
+ | ------------ | ------- | -------- | ----------- |
15
+ | name | string | yes | The name of the impersonation token |
16
+ | expires_at | date | no | The expiration date of the impersonation token in ISO format (YYYY-MM-DD)|
17
+ | scopes | array | yes | The array of scopes of the impersonation token (api, read_user) |
18
+
19
+ DOC
20
+ end
21
+
22
+ doc 'Create' do
23
+ desc 'Via User'
24
+ example <<~DOC
25
+ user = client.users.show(5)
26
+ user.impersonation_tokens_create(name: 'User!', scopes: [:read_user], expires_at: 1.month.from_now)
27
+ DOC
28
+ end
29
+
30
+ def create(user_id, query)
31
+ user_id = format_id(user_id)
32
+ query_format_time(query, :expires_at)
33
+
34
+ client.request(:post, "users/#{user_id}/impersonation_tokens", ImpersonationToken, query)
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,18 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class ImpersonationToken < Klass
5
+ include ClassHelpers
6
+
7
+ def inspect
8
+ "#<ImpersonationToken id: #{id}, name: #{name}, active: #{active}>"
9
+ end
10
+
11
+ def revoke
12
+ user_id = collect_user_id
13
+ client.impersonation_tokens.revoke(user_id, id)
14
+ end
15
+
16
+ date_time_attrs %i[created_at expires_at]
17
+ end
18
+ end
@@ -0,0 +1,29 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class ImpersonationTokens < Common
5
+ @group_name = 'Impersonation'
6
+ doc 'List' do
7
+ desc 'It retrieves every impersonation token of the user. [User ID, Filter State]'
8
+ example 'client.impersonation_tokens.list(5)'
9
+ result '[#<ImpersonationToken id: 8, name: Special, active: true>, ...]'
10
+
11
+ markdown <<~DOC
12
+ Filter tokens based on state: all, active, or inactive
13
+ DOC
14
+ end
15
+
16
+ doc 'List' do
17
+ desc 'Via User'
18
+ example <<~DOC
19
+ user = client.users.show(5, :active)
20
+ user.impersonation_tokens
21
+ DOC
22
+ end
23
+
24
+ def list(user_id, filter = :all)
25
+ user_id = format_id(user_id)
26
+ client.request(:get, "users/#{user_id}/impersonation_tokens", ImpersonationToken, { filter: filter })
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,32 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class ImpersonationTokens < Common
5
+ doc 'Revoke' do
6
+ desc 'Revoke an impersonation token. [User ID, Token ID]'
7
+ example 'client.impersonation_tokens.revoke(5,7)'
8
+ end
9
+
10
+ doc 'Revoke' do
11
+ desc 'Via User [Token ID]'
12
+ example <<~DOC
13
+ user = client.users.show(5)
14
+ user.impersonation_tokens_revoke(2)
15
+ DOC
16
+ end
17
+
18
+ doc 'Revoke' do
19
+ desc 'Via ImpersonationToken [Token ID]'
20
+ example <<~DOC
21
+ token = client.impersonation_tokens.show(3)
22
+ token.revoke
23
+ DOC
24
+ end
25
+
26
+ def revoke(user_id, token_id)
27
+ token_id = format_id(token_id)
28
+ user_id = format_id(user_id)
29
+ client.request(:delete, "users/#{user_id}/impersonation_tokens/#{token_id}")
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class ImpersonationTokens < Common
5
+ doc 'Show' do
6
+ desc 'Show a user impersonation token. [User ID, Token ID]'
7
+ example 'client.impersonation_tokens.show(5,7)'
8
+ result '#<ImpersonationToken id: 7, name: User!, active: false>'
9
+ end
10
+
11
+ def show(user_id, token_id)
12
+ token_id = format_id(token_id)
13
+ user_id = format_id(user_id)
14
+
15
+ client.request(:get, "users/#{user_id}/impersonation_tokens/#{token_id}", ImpersonationToken)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,31 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Issues < Common
5
+ doc 'Show' do
6
+ title 'Agent Detail'
7
+ desc 'Get user agent details [project id, issue iid]'
8
+ example 'client.issues.agent_detail(30, 1)'
9
+ result <<~DOC
10
+ => {:user_agent=>"Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0", :ip_address=>"10.0.0.14", :akismet_submitted=>false}
11
+ DOC
12
+ end
13
+
14
+ doc 'Show' do
15
+ desc 'From Issue Object'
16
+ example 'issue.agent_detail'
17
+ result <<~DOC
18
+ issue = client.issues.show(30,1)
19
+ => #<Issue id: 1, title: Robust incremental superstructure, state: opened>
20
+ issue.agent_detail
21
+ => {:user_agent=>"Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0", :ip_address=>"10.0.0.14", :akismet_submitted=>false}
22
+ DOC
23
+ end
24
+
25
+ # Show Specific
26
+ def agent_detail(project_id, issue_id)
27
+ project_id = format_id(project_id)
28
+ client.request(:get, "projects/#{project_id}/issues/#{issue_id}/user_agent_detail")
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,27 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Issues < Common
5
+ doc 'Show' do
6
+ subtitle 'Closed By'
7
+ desc 'Get all the merge requests that will close issue when merged. [project id, issue iid]'
8
+ example 'client.issues.closed_by(5, 1)'
9
+ result <<~DOC
10
+ => [#<MergeRequest id: 5, title: Update README.md, state: opened>]
11
+ DOC
12
+ end
13
+
14
+ doc 'Show' do
15
+ desc 'Through Issue Object'
16
+ example <<~DOC
17
+ issue = client.issues.show(5,1)
18
+ issue.related_merge_requests
19
+ DOC
20
+ end
21
+
22
+ def closed_by(project_id, issue_id)
23
+ project_id = format_id(project_id)
24
+ client.request(:get, "projects/#{project_id}/issues/#{issue_id}/closed_by", MergeRequest)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,29 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Issues < Common
5
+ doc 'Create' do
6
+ desc 'Creates a new project issue. [project id]'
7
+ example 'client.issues.create(5, title: "Fancy!")'
8
+ result <<~DOC
9
+ => #<Issue id: 1, title: Fancy!, state: opened>
10
+ DOC
11
+ end
12
+
13
+ doc 'Create' do
14
+ markdown <<~DOC
15
+ See [API docs here](https://docs.gitlab.com/ee/api/issues.html#new-issue) for full list of attributes
16
+
17
+ | Attribute | Type | Required | Description |
18
+ |-------------------------------------------|----------------|----------|--------------|
19
+ | title | string | yes | The title of an issue |
20
+ | description | string | no | The description of an issue. Limited to 1,048,576 characters. |
21
+ DOC
22
+ end
23
+
24
+ def create(project_id, query = {})
25
+ project_id = format_id(project_id)
26
+ client.request(:post, "projects/#{project_id}/issues", Issue, query)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,26 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Issues < Common
5
+ doc 'Delete' do
6
+ desc 'Updates an existing project issue. This call is also used to mark an issue as closed. [project id, issue iid]'
7
+ example 'client.issues.delete(5, 1)'
8
+ result <<~DOC
9
+ => #<Issue id: 1, title: Moar Fancy!, state: opened>
10
+ DOC
11
+ end
12
+
13
+ doc 'Delete' do
14
+ desc 'Through Issue Object'
15
+ example <<~DOC
16
+ issue = client.issues.show(5,1)
17
+ issue.delete
18
+ DOC
19
+ end
20
+
21
+ def delete(project_id, issue_id)
22
+ project_id = format_id(project_id)
23
+ client.request(:delete, "projects/#{project_id}/issues/#{issue_id}")
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,29 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Issues < Common
5
+ doc 'List' do
6
+ title 'Group'
7
+ desc 'Get a list of a group’s issues.'
8
+ example 'client.issues.group_issues(1)'
9
+ result <<~DOC
10
+ => [#<Issue id: 1, title: Front-line global approach, state: opened>, ..]
11
+ DOC
12
+ end
13
+
14
+ doc 'List' do
15
+ desc 'Via Group'
16
+ example <<~DOC
17
+ group = client.groups.show(1)
18
+ group.issues
19
+ DOC
20
+ end
21
+
22
+ def group_issues(group_id, query = {})
23
+ query[:created_after] = query[:created_after].to_time.iso8601 if format_time?(query[:created_after])
24
+ query[:created_before] = query[:created_before].to_time.iso8601 if format_time?(query[:created_before])
25
+
26
+ client.request(:get, "groups/#{group_id}/issues", Issue, query)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,114 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class Issue < Klass
5
+ include ClassHelpers
6
+
7
+ def inspect
8
+ "#<Issue id: #{iid}, title: #{title}, state: #{state}>"
9
+ end
10
+
11
+ # DateTime Fields
12
+ date_time_attrs %i[closed_at created_at updated_at]
13
+
14
+ # User Fields
15
+ user_attrs %i[closed_by author assignee]
16
+
17
+ def update(query)
18
+ client.issues.update(project_id, iid, query)
19
+ end
20
+
21
+ def assignees
22
+ @table[:assignees].map { |x| User.new(x, response, client) } if has? :assignees
23
+ end
24
+
25
+ def delete
26
+ client.issues.delete(project_id, iid)
27
+ end
28
+
29
+ def move(target_id)
30
+ client.issues.move(project_id, iid, target_id)
31
+ end
32
+
33
+ def subscribe
34
+ client.issues.subscribe(project_id, iid)
35
+ end
36
+
37
+ def unsubscribe
38
+ client.issues.unsubscribe(project_id, iid)
39
+ end
40
+
41
+ def todo
42
+ client.issues.todo(project_id, iid)
43
+ end
44
+
45
+ def add_spent_time(duration)
46
+ client.issues.add_spent_time(project_id, iid, duration)
47
+ end
48
+
49
+ def time_estimate(duration)
50
+ client.issues.time_estimate(project_id, iid, duration)
51
+ end
52
+
53
+ def reset_time_estimate
54
+ client.issues.reset_time_estimate(project_id, iid)
55
+ end
56
+
57
+ def reset_spent_time
58
+ client.issues.reset_spent_time(project_id, iid)
59
+ end
60
+
61
+ def participants
62
+ client.issues.participants(project_id, iid)
63
+ end
64
+
65
+ def notes
66
+ client.notes.issues.list(project_id, iid)
67
+ end
68
+
69
+ def agent_detail
70
+ client.issues.agent_detail(project_id, iid)
71
+ end
72
+
73
+ def related_merge_requests
74
+ client.issues.related_merge_requests(project_id, iid)
75
+ end
76
+
77
+ def closed_by
78
+ client.issues.closed_by(project_id, iid)
79
+ end
80
+
81
+ # Resource Labels
82
+ def resource_labels
83
+ client.resource_labels.issues.list(project_id, iid)
84
+ end
85
+
86
+ def resource_label(resource_event_id)
87
+ client.resource_labels.issues.show(project_id, iid, resource_event_id)
88
+ end
89
+
90
+ help do
91
+ subtitle 'Issue'
92
+ option 'update', 'Update issue (accepts hash).'
93
+ option 'move', 'Move this issue to a different project [target project id]'
94
+ option 'todo', 'Create todo'
95
+ option 'subscribe', 'Subscribe to notifications'
96
+ option 'unsubscribe', 'Unsubscribe to notifications'
97
+ option 'participants', 'List participants in this issue.'
98
+ option 'notes', 'List notes/comments.'
99
+ option 'agent_detail', 'Get user agent details.'
100
+ option 'related_merge_requests', 'Get all related Merge Requests.'
101
+ option 'closed_by', 'Get all Merge Requests that will close this issue.'
102
+ option 'time_stats', 'Get time tracking stats.'
103
+ option 'add_time_spent', 'Adds spent time. Accepts Duration or Human Format. (1.hour or "1h")'
104
+ option 'time_estimate', 'Sets an estimated time. Accepts Duration or Human Format. (1.hour or "1h")'
105
+ option 'reset_time_estimate', 'Resets the estimated time'
106
+ option 'reset_spent_time', 'Resets the spent time'
107
+ option 'delete', 'Delete this issue.'
108
+
109
+ # Resource Labels
110
+ option 'resource_labels', 'List of all label events'
111
+ option 'resource_label', 'Show single label event [Resource Event ID]'
112
+ end
113
+ end
114
+ end