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,44 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Show' do
6
+ title 'Refs'
7
+ desc 'Get all references (from branches or tags) a commit is pushed to. [Project ID, Commit ID, Scope]'
8
+ example <<~DOC
9
+ client.commits.refs(16, 'a0550a65')
10
+ DOC
11
+
12
+ result <<~DOC
13
+ => [{:type=>"branch", :name=>"master"}]
14
+ DOC
15
+
16
+ markdown <<~DOC
17
+ - Possible Scopes: `branch`, `tag`, and `all`. Default is `all`
18
+ DOC
19
+ end
20
+
21
+ doc 'Show' do
22
+ desc 'Via Commit'
23
+ example <<~DOC
24
+ commit = client.commits.show(16, 'a0550a65')
25
+ commit.refs
26
+ DOC
27
+ end
28
+
29
+ doc 'Show' do
30
+ desc 'Via Project'
31
+ example <<~DOC
32
+ project = client.projects.show(16)
33
+ project.commit_refs('a0550a65')
34
+ DOC
35
+ end
36
+
37
+ def refs(project_id, commit_id, scope = :all)
38
+ project_id = format_id(project_id)
39
+ commit_id = format_id(commit_id)
40
+
41
+ client.request(:get, "projects/#{project_id}/repository/commits/#{commit_id}/refs", nil, { scope: scope })
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,40 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Revert' do
6
+ desc 'Reverts a commit in a given branch. [Project ID, Commit ID, Target Branch]'
7
+ example <<~DOC
8
+ client.commits.revert(16, '92c2b96b', 'master')
9
+ DOC
10
+
11
+ result <<~DOC
12
+ => #<Commit title: Update bar, sha: 1e64f40c>
13
+ DOC
14
+ end
15
+
16
+ doc 'Revert' do
17
+ desc 'Via Commit'
18
+ example <<~DOC
19
+ commit = client.commits.show(16, 'a0550a65')
20
+ commit.revert('new_branch')
21
+ DOC
22
+ end
23
+
24
+ doc 'Revert' do
25
+ desc 'Via Project'
26
+ example <<~DOC
27
+ project = client.projects.show(16)
28
+ project.commit_revert('a0550a65', 'target_branch)
29
+ DOC
30
+ end
31
+
32
+ def revert(project_id, commit_id, branch_name)
33
+ project_id = format_id(project_id)
34
+ commit_id = format_id(commit_id)
35
+ branch_name = format_id(branch_name)
36
+
37
+ client.request(:post, "projects/#{project_id}/repository/commits/#{commit_id}/revert", Commit, { branch: branch_name })
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,25 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Show' do
6
+ desc 'Get a specific commit identified by the commit hash or name of a branch or tag.'
7
+ example 'client.commits.show(343, "b539e5d3")'
8
+ result <<~DOC
9
+ => #<Commit title: Update README.md, sha: b539e5d3>
10
+ DOC
11
+
12
+ markdown <<~DOC
13
+ | Attribute | Type | Description |
14
+ | --------- | ---- | ----------- |
15
+ | stats | boolean | Include commit stats. Default is true |
16
+ DOC
17
+ end
18
+
19
+ # Show
20
+ def show(project_id, commit_id)
21
+ project_id = format_id(project_id)
22
+ client.request(:get, "projects/#{project_id}/repository/commits/#{commit_id}", Commit)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,57 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Status' do
6
+ title 'List'
7
+ desc 'List the statuses of a commit in a project. [Project ID, Commit ID, Hash]'
8
+ example <<~DOC
9
+ client.commits.status(16, '2a3ae164d43b9f7b32d887d6ac7e125f40fd3958')
10
+ DOC
11
+
12
+ result <<~DOC
13
+ => [#<CommitStatus id: 213, status: success>, #<CommitStatus id: 214, status: success>, ... ]
14
+ DOC
15
+
16
+ markdown <<~DOC
17
+ | Attribute | Type | Required | Description |
18
+ | --------- | ---- | -------- | ----------- |
19
+ | ref | string | no | The name of a repository branch or tag or, if not given, the default branch
20
+ | stage | string | no | Filter by build stage. e.g., test
21
+ | name | string | no | Filter by job name, e.g., bundler:audit
22
+ | all | boolean | no | Return all statuses, not only the latest ones
23
+ DOC
24
+ end
25
+
26
+ doc 'Status' do
27
+ desc 'Via Commit'
28
+ example <<~DOC
29
+ commit = client.commits.show(16, '2a3ae164')
30
+ commit.status
31
+ DOC
32
+ end
33
+
34
+ doc 'Status' do
35
+ desc 'Filter by Stage'
36
+ example <<~DOC
37
+ commit = client.commits.show(16, 'a0550a65')
38
+ commit.status(stage: :test)
39
+ DOC
40
+ end
41
+
42
+ doc 'Status' do
43
+ desc 'Via Project'
44
+ example <<~DOC
45
+ project = client.projects.show(16)
46
+ project.commit_status('a0550a65')
47
+ DOC
48
+ end
49
+
50
+ def status(project_id, commit_id, query = {})
51
+ project_id = format_id(project_id)
52
+ commit_id = format_id(commit_id)
53
+
54
+ client.request(:get, "projects/#{project_id}/repository/commits/#{commit_id}/statuses", CommitStatus, query)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,14 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class CommitStatus < Klass
5
+ include ClassHelpers
6
+
7
+ def inspect
8
+ "#<CommitStatus id: #{id}, name: #{name}, status: #{status}>"
9
+ end
10
+
11
+ date_time_attrs %i[created_at started_at finished_at]
12
+ user_attrs %i[author]
13
+ end
14
+ end
@@ -0,0 +1,53 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Status' do
6
+ title 'Update'
7
+ desc 'Adds or updates a build status of a commit. [Project ID, Commit ID, Hash]'
8
+ example <<~DOC
9
+ client.commits.status_update(16, '2a3ae164d43b9f7b32d887d6ac7e125f40fd3958', state: :running)
10
+ DOC
11
+
12
+ result <<~DOC
13
+ => #<CommitStatus id: 217, name: default, status: running>
14
+ DOC
15
+
16
+ markdown <<~DOC
17
+
18
+ | Attribute | Type | Required | Description |
19
+ | --------- | ---- | -------- | ----------- |
20
+ | state | string | yes | The state of the status. Can be one of the following: pending, running, success, failed, canceled
21
+ | ref | string | no | The ref (branch or tag) to which the status refers
22
+ | name or context | string | no | The label to differentiate this status from the status of other systems. Default value is default
23
+ | target_url | string | no | The target URL to associate with this status
24
+ | description | string | no | The short description of the status
25
+ | coverage | float | no | The total code coverage
26
+ | pipeline_id | integer | no | The ID of the pipeline to set status. Use in case of several pipeline on same SHA.
27
+ DOC
28
+ end
29
+
30
+ doc 'Status' do
31
+ desc 'Via Commit'
32
+ example <<~DOC
33
+ commit = client.commits.status_update(16, '2a3ae164', state: :success)
34
+ commit.status
35
+ DOC
36
+ end
37
+
38
+ doc 'Status' do
39
+ desc 'Via Project'
40
+ example <<~DOC
41
+ project = client.projects.show(16)
42
+ project.commit_status_update('a0550a65', state: :failed)
43
+ DOC
44
+ end
45
+
46
+ def status_update(project_id, commit_id, query = {})
47
+ project_id = format_id(project_id)
48
+ commit_id = format_id(commit_id)
49
+
50
+ client.request(:post, "projects/#{project_id}/statuses/#{commit_id}", CommitStatus, query)
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,110 @@
1
+ # Top Namesapce
2
+ module LabClient
3
+ # Shared Methods
4
+ class Common
5
+ extend Docs
6
+ include AccessLevel
7
+
8
+ attr_reader :client
9
+
10
+ def initialize(client)
11
+ @client = client
12
+ end
13
+
14
+ def api_methods
15
+ public_methods(false)
16
+ end
17
+
18
+ def help
19
+ api_methods_help
20
+
21
+ LabClient::Docs.docs[group_name].each do |key, group|
22
+ puts "\n=====[ #{key} ]====="
23
+ group.select { |x| x[:example] }.each { |x| puts "#{x[:example]}\n" }
24
+ end
25
+
26
+ nil
27
+ end
28
+
29
+ def api_methods_help
30
+ puts group_name
31
+ puts ' Available Methods'
32
+ puts " #{api_methods.sort.join(' ')}\n"
33
+ end
34
+
35
+ # Helper to get docs
36
+ def klass
37
+ self.class.name.split('::', 2).last.split(/(?=[A-Z])/).join(' ')
38
+ end
39
+
40
+ # Category and Primary Key for docs
41
+ def group_name
42
+ self.class.instance_variable_get('@group_name') || klass
43
+ end
44
+
45
+ def inspect
46
+ api_methods_help
47
+ "#<LabClient::Client url: \"#{client.settings[:url]}\">"
48
+ end
49
+
50
+ # =======================
51
+ # Query Helpers
52
+ # =======================
53
+ # URL Encoding Object ID Transformation
54
+ # "1" == 1, 1 => 1, "1" => 1
55
+ # nil => nil
56
+ # 'group/name' => group%F2name
57
+ # LabClient::Class => id
58
+
59
+ def format_id(obj_id)
60
+ # Return if Empty
61
+ return nil if obj_id.nil?
62
+
63
+ # Already a Integer
64
+ return obj_id if obj_id.class == Integer
65
+
66
+ # If LabClient Object, send ID
67
+ return obj_id.id if obj_id.class.module_parent_name == 'LabClient'
68
+
69
+ # Valid Integer in String
70
+ return obj_id if /\A\d+\z/.match(obj_id)
71
+
72
+ CGI.escape obj_id.to_s
73
+ end
74
+
75
+ def format_query_ids(key, query)
76
+ query[key] = query[key].map { |x| format_id(x) } if query.key? key
77
+
78
+ query[key.to_s] = query[key.to_s].map { |x| format_id(x) } if query.key? key.to_s
79
+ end
80
+
81
+ # Formatting Time Helper
82
+ def format_time?(time)
83
+ time.respond_to?(:to_time)
84
+ end
85
+
86
+ def query_format_time(query, key)
87
+ return false unless query.key?(key) && format_time?(query[key])
88
+
89
+ query[key] = query[key].to_time.utc.iso8601
90
+ end
91
+
92
+ # Convert Symbol to Integer Numbers
93
+ # :developer => 30
94
+ # :owner => 50
95
+ def query_access_level(query, key = :group_access)
96
+ query[key] = machine_access_level query[key] if query.key?(key) && query[key].class == Symbol
97
+ end
98
+
99
+ # TODO: See if these are even needed
100
+ # Protected Branches
101
+ # Convert Symbol to Integer Numbers
102
+ # 0 => No access
103
+ # 30 => Developer access
104
+ # 40 => Maintainer access
105
+ # 60 => Admin access
106
+ def protected_query_access_level(query, key = :push_access_level)
107
+ query[key] = machine_protected_access_level query[key] if query.key?(key) && query[key].class == Symbol
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,27 @@
1
+ # Generate a curl example
2
+ module CurlHelper
3
+ # rubocop:disable Metrics/AbcSize
4
+ def curl
5
+ output = 'curl '
6
+ output += '-k ' unless client.settings[:ssl_verify]
7
+
8
+ method = response.request.options[:method]
9
+ output += "-X #{method.upcase} "
10
+
11
+ # output = "-H "
12
+ response.request.options[:headers].each do |key, value|
13
+ # Hide JSON if GET
14
+ next if key == 'User-Agent' # Don't bother with agent
15
+ next if key == 'Expect' # Typheous Specific
16
+ next if key == 'Content-Type' && method == :get
17
+
18
+ output += "-H \"#{key}: #{value}\" "
19
+ end
20
+
21
+ output += "-d '#{response.request.options[:body]}' " if method != :get
22
+
23
+ output += "\"#{response.request.url}\""
24
+ puts output
25
+ end
26
+ # rubocop:enable Metrics/AbcSize
27
+ end
@@ -0,0 +1,46 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class DeployKeys < Common
5
+ doc 'Add' do
6
+ desc 'Creates a new deploy key for a project.'
7
+ markdown <<~DOC
8
+ | Attribute | Type | Required | Description |
9
+ | --------- | ---- | -------- | ----------- |
10
+ | id | integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
11
+ | title | string | yes | New deploy key's title |
12
+ | key | string | yes | New deploy key |
13
+ | can_push | boolean | no | Can deploy key push to the project's repository |
14
+ DOC
15
+ end
16
+
17
+ doc 'Add' do
18
+ example <<~DOC
19
+ client.deploy_keys.add(330,
20
+ title: "Special Key",
21
+ key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHTAOsjGAI4ZGW5QZQSXhq...'
22
+ )
23
+ DOC
24
+ result <<~DOC
25
+ => #<Deploy Key id: 3, title: Special Key>
26
+ DOC
27
+ end
28
+
29
+ doc 'Add' do
30
+ desc 'Via Project'
31
+ example <<~DOC
32
+ project = client.projects.show(16)
33
+ project.deploy_key_add(
34
+ title: "Special Key",
35
+ key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHTAOsjGAI4ZGW5QZQSXhq...'
36
+ )
37
+ DOC
38
+ end
39
+
40
+ # Add
41
+ def add(project_id, query = {})
42
+ project_id = format_id(project_id)
43
+ client.request(:post, "projects/#{project_id}/deploy_keys", DeployKey, query)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,46 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class DeployKeys < Common
5
+ doc 'Delete' do
6
+ desc 'Removes a deploy key from the project. If the deploy key is used only for this project, it will be deleted from the system.'
7
+ markdown <<~DOC
8
+ | Attribute | Type | Required | Description |
9
+ | --------- | ---- | -------- | ----------- |
10
+ | id | integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
11
+ | key_id | integer | yes | The ID of the deploy key |
12
+ DOC
13
+ end
14
+
15
+ doc 'Delete' do
16
+ example <<~DOC
17
+ client.deploy_keys.delete(330, 2)
18
+ DOC
19
+ result <<~DOC
20
+ => nil
21
+ DOC
22
+ end
23
+
24
+ doc 'Delete' do
25
+ desc 'Delete through DeployKey object'
26
+ example <<~DOC
27
+ key = client.deploy_keys.show(330,2)
28
+ key.delete
29
+ DOC
30
+ end
31
+
32
+ doc 'Delete' do
33
+ desc 'Via Project'
34
+ example <<~DOC
35
+ project = client.projects.show(16)
36
+ project.deploy_key_delete(2)
37
+ DOC
38
+ end
39
+
40
+ # Delete
41
+ def delete(project_id, deploy_key_id)
42
+ project_id = format_id(project_id)
43
+ client.request(:delete, "projects/#{project_id}/deploy_keys/#{deploy_key_id}", DeployKey)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,30 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class DeployKey < Klass
5
+ include ClassHelpers
6
+
7
+ def inspect
8
+ "#<Deploy Key id: #{id}, title: #{title}>"
9
+ end
10
+
11
+ date_time_attrs %i[created_at]
12
+
13
+ def update(query = {})
14
+ project_id = collect_project_id
15
+
16
+ update_self client.deploy_keys.update(project_id, id, query)
17
+ end
18
+
19
+ def delete
20
+ project_id = collect_project_id
21
+ client.deploy_keys.delete(project_id, id)
22
+ end
23
+
24
+ help do
25
+ subtitle 'Deploy Key'
26
+ option 'delete', 'Delete this deploy key.'
27
+ option 'update', 'Update this this deploy key.'
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,38 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class DeployKeys < Common
5
+ doc 'Enable' do
6
+ desc 'Enables a deploy key for a project so this can be used. Returns the enabled key, with a status code 201 when successful.'
7
+ markdown <<~DOC
8
+ | Attribute | Type | Required | Description |
9
+ | --------- | ---- | -------- | ----------- |
10
+ | id | integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
11
+ | key_id | integer | yes | The ID of the deploy key |
12
+ DOC
13
+ end
14
+
15
+ doc 'Enable' do
16
+ example <<~DOC
17
+ client.deploy_keys.enable(330, 2)
18
+ DOC
19
+ result <<~DOC
20
+ => nil
21
+ DOC
22
+ end
23
+
24
+ doc 'Enable' do
25
+ desc 'Via Project'
26
+ example <<~DOC
27
+ project = client.projects.show(16)
28
+ project.deploy_key_enable(2)
29
+ DOC
30
+ end
31
+
32
+ # Enable
33
+ def enable(project_id, deploy_key_id)
34
+ project_id = format_id(project_id)
35
+ client.request(:post, "projects/#{project_id}/deploy_keys/#{deploy_key_id}/enable", DeployKey)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class DeployKeys < Common
5
+ doc 'List' do
6
+ desc 'Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access.'
7
+ example 'client.deploy_keys.list'
8
+ result <<~DOC
9
+ => [#<DeployKey id: 2, title: Special Title>, #<DeployKey id: 1, title: HereWeGo>]
10
+ DOC
11
+ end
12
+
13
+ doc 'List' do
14
+ desc 'Get a list of a project’s deploy keys.'
15
+ example 'client.deploy_keys.list(330)'
16
+ result <<~DOC
17
+ => [#<DeployKey id: 2, title: Special Title>, #<DeployKey id: 1, title: HereWeGo>]
18
+ DOC
19
+ end
20
+
21
+ doc 'List' do
22
+ desc 'Via Project'
23
+ example <<~DOC
24
+ project = client.projects.show(16)
25
+ project.deploy_keys(2)
26
+ DOC
27
+ end
28
+
29
+ # List
30
+ def list(deploy_key_id = nil)
31
+ if deploy_key_id
32
+ client.request(:get, "projects/#{deploy_key_id}/deploy_keys", DeployKey)
33
+ else
34
+ client.request(:get, 'deploy_keys', DeployKey)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,29 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Helpers for Projects
4
+ module ProjectDeployKey
5
+ def deploy_keys
6
+ client.deploy_keys.list(id)
7
+ end
8
+
9
+ def deploy_key_add(query)
10
+ client.deploy_keys.add(id, query)
11
+ end
12
+
13
+ def deploy_key_show(key_id)
14
+ client.deploy_keys.show(id, key_id)
15
+ end
16
+
17
+ def deploy_key_update(key_id, query)
18
+ client.deploy_keys.update(id, key_id, query)
19
+ end
20
+
21
+ def deploy_key_delete(key_id)
22
+ client.deploy_keys.delete(id, key_id)
23
+ end
24
+
25
+ def deploy_key_enable(key_id)
26
+ client.deploy_keys.enable(id, key_id)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class DeployKeys < Common
5
+ doc 'Show' do
6
+ desc 'Get a single key.'
7
+ example <<~DOC
8
+ client.deploy_keys.show(330, 2)
9
+ DOC
10
+
11
+ result <<~DOC
12
+ => #<Deploy Key id: 2, title: Special Key>
13
+ DOC
14
+ end
15
+
16
+ doc 'Show' do
17
+ desc 'Via Project'
18
+ example <<~DOC
19
+ project = client.projects.show(16)
20
+ project.deploy_key_show(2)
21
+ DOC
22
+ end
23
+
24
+ # Show
25
+ def show(project_id, deploy_key_id)
26
+ project_id = format_id(project_id)
27
+ client.request(:get, "projects/#{project_id}/deploy_keys/#{deploy_key_id}", DeployKey)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,53 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class DeployKeys < Common
5
+ doc 'Update' do
6
+ desc 'Updates a deploy key for a project.'
7
+ markdown <<~DOC
8
+ | Attribute | Type | Required | Description |
9
+ | --------- | ---- | -------- | ----------- |
10
+ | id | integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
11
+ | title | string | no | New deploy key's title |
12
+ | can_push | boolean | no | Can deploy key push to the project's repository |
13
+ DOC
14
+ end
15
+
16
+ doc 'Update' do
17
+ example <<~DOC
18
+ client.deploy_keys.update(330, 2, title: "Very Special Key")
19
+ DOC
20
+ result <<~DOC
21
+ => #<Deploy Key id: 3, title: Very Special Key>
22
+ DOC
23
+ end
24
+
25
+ doc 'Update' do
26
+ desc 'Via DeployKey'
27
+ example <<~DOC
28
+ key = client.deploy_keys.show(330,2)
29
+ key.update(title "Moar Special")
30
+ DOC
31
+ result <<~DOC
32
+ => #<Deploy Key id: 2, title: Moar Special>
33
+ DOC
34
+ end
35
+
36
+ doc 'Update' do
37
+ desc 'Via Project'
38
+ example <<~DOC
39
+ project = client.projects.show(16)
40
+ project.deploy_key_update(2,
41
+ title: "Special Key",
42
+ key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHTAOsjGAI4ZGW5QZQSXhq...'
43
+ )
44
+ DOC
45
+ end
46
+
47
+ # Update
48
+ def update(project_id, deploy_key_id, query = {})
49
+ project_id = format_id(project_id)
50
+ client.request(:put, "projects/#{project_id}/deploy_keys/#{deploy_key_id}", DeployKey, query)
51
+ end
52
+ end
53
+ end