labclient 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,157 @@
1
+ # Top Namespace
2
+ module LabClient
3
+ # API Specifics
4
+ class Client
5
+ # include HTTParty
6
+ attr_accessor :settings, :resp, :klass, :link, :http
7
+
8
+ def inspect
9
+ "#<LabClient::Client url: \"#{@settings[:url]}\">"
10
+ end
11
+
12
+ # Helper to make subclasses directly accessible
13
+ def subclasses
14
+ self.class.instance_variable_get(:@subclasses)
15
+ end
16
+
17
+ # ----------
18
+ # Alias List
19
+ # approvals == merge_request_approvals
20
+ # repo == repository
21
+ # ----------
22
+ @subclasses = {
23
+ appearance: Appearances,
24
+ application_settings: ApplicationSettings,
25
+ application_statistics: ApplicationStatistics,
26
+ applications: Applications,
27
+ approvals: Approvals,
28
+ audit_events: AuditEvents,
29
+ avatar: Avatars,
30
+ awards: Awards,
31
+ branches: Branches,
32
+ broadcast_messages: BroadcastMessages,
33
+ ci_lint: CiLint,
34
+ commits: Commits,
35
+ deploy_keys: DeployKeys,
36
+ discussions: Discussions,
37
+ epics: Epics,
38
+ events: Events,
39
+ files: Files,
40
+ groups: Groups,
41
+ impersonation_tokens: ImpersonationTokens,
42
+ issues: Issues,
43
+ jobs: Jobs,
44
+ keys: Keys,
45
+ license: Licenses,
46
+ markdown: Markdown,
47
+ members: Members,
48
+ merge_request_approvals: Approvals,
49
+ merge_requests: MergeRequests,
50
+ namespaces: Namespaces,
51
+ notes: Notes,
52
+ notifications: Notifications,
53
+ pipelines: Pipelines,
54
+ project_runners: ProjectRunners,
55
+ projects: Projects,
56
+ protected_branches: ProtectedBranches,
57
+ protected_tags: ProtectedTags,
58
+ registry: Registry,
59
+ repo: Repositories,
60
+ repository: Repositories,
61
+ resource_labels: ResourceLabels,
62
+ runners: Runners,
63
+ snippets: Snippets,
64
+ system_hooks: SystemHooks,
65
+ tags: Tags,
66
+ todos: Todos,
67
+ users: Users,
68
+ version: Version,
69
+ wikis: Wikis
70
+ }
71
+
72
+ @subclasses.each do |name, obj|
73
+ define_method(name) do
74
+ obj.new(self)
75
+ end
76
+ end
77
+
78
+ def api_methods
79
+ subclasses.keys.sort
80
+ end
81
+
82
+ def help
83
+ puts 'Available Methods'
84
+ puts " - #{subclasses.keys.sort.join(' ')}\n\n"
85
+ puts "See help for each specific sub-category\n"
86
+ puts "- client.users.help\n"
87
+ puts "- client.users.api_methods\n"
88
+
89
+ nil
90
+ end
91
+
92
+ # Default setup, pull in settings
93
+ def initialize(settings = nil)
94
+ @settings = settings
95
+ @settings ||= fill_configuration
96
+
97
+ # Set Unspecified Defaults
98
+ unspecified_defaults
99
+
100
+ raise 'LabClient Error - Missing URL!' if @settings[:url].nil?
101
+
102
+ self.http = HTTP.new(@settings)
103
+ end
104
+
105
+ def unspecified_defaults
106
+ @settings[:paginate] = true if @settings[:paginate].nil?
107
+ @settings[:ssl_verify] = true if @settings[:ssl_verify].nil?
108
+ end
109
+
110
+ def home_file
111
+ ENV['HOME'] + '/.gitlab-labclient'
112
+ end
113
+
114
+ def fill_configuration
115
+ if File.exist? home_file
116
+ Oj.load_file(home_file, { symbol_keys: true })
117
+ else
118
+ {
119
+ url: ENV['LABCLIENT_URL'],
120
+ token: ENV['LABCLIENT_TOKEN']
121
+ }
122
+ end
123
+ end
124
+
125
+ def request(method, path, klass = nil, body = {}, dump_json = true)
126
+ @klass = klass
127
+
128
+ resp = http.request(method, path, body, dump_json)
129
+
130
+ raise LabClient::Error.new(resp), resp.friendly_error unless resp.success?
131
+
132
+ # Drop in raw path
133
+ resp.instance_variable_set(:@path, path)
134
+
135
+ process resp
136
+ rescue LabClient::Error => e
137
+ puts e.message
138
+ resp
139
+ end
140
+
141
+ # Assume we want OpenStruct if @klass is ever nil
142
+ def process(resp)
143
+ case resp.data
144
+ when OpenStruct
145
+ klass ? klass.new(resp.data, resp, self) : resp.data
146
+ when Array
147
+ if @klass.nil?
148
+ resp.data
149
+ else
150
+ PaginatedResponse.new(@klass, resp, self)
151
+ end
152
+ else
153
+ resp.data
154
+ end
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,40 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Cherry Pick' do
6
+ desc 'Cherry picks a commit to a target branch. [Project ID, Commit ID, Target Branch]'
7
+ example <<~DOC
8
+ client.commits.cherry_pick(16, '92c2b96b', 'master')
9
+ DOC
10
+
11
+ result <<~DOC
12
+ => #<Commit title: Update bar, sha: 1e64f40c>
13
+ DOC
14
+ end
15
+
16
+ doc 'Cherry Pick' do
17
+ desc 'Via Commit'
18
+ example <<~DOC
19
+ commit = client.commits.show(16, 'a0550a65')
20
+ commit.cherry_pick('new_branch')
21
+ DOC
22
+ end
23
+
24
+ doc 'Cherry Pick' do
25
+ desc 'Via Project'
26
+ example <<~DOC
27
+ project = client.projects.show(16)
28
+ project.commit_cherry_pick('a0550a65', 'target_branch)
29
+ DOC
30
+ end
31
+
32
+ def cherry_pick(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}/cherry_pick", Commit, { branch: branch_name })
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,67 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Comments' do
6
+ title 'Create'
7
+ desc 'Post comment to commit. [Project ID, Commit ID, Hash]'
8
+ example <<~DOC
9
+ client.commits.comment_create(16, '04d8c6be', note: 'hi there!')
10
+ DOC
11
+
12
+ result <<~DOC
13
+ => [#<CommitComment title: another!>]
14
+ DOC
15
+
16
+ markdown <<~DOC
17
+
18
+
19
+ In order to post a comment in a particular line of a particular file, you must
20
+ specify the full commit SHA, the `path`, the `line` and `line_type` should be
21
+ `new`.
22
+
23
+ The comment will be added at the end of the last commit if at least one of the
24
+ cases below is valid:
25
+
26
+ - the `sha` is instead a branch or a tag and the `line` or `path` are invalid
27
+ - the `line` number is invalid (does not exist)
28
+ - the `path` is invalid (does not exist)
29
+
30
+ In any of the above cases, the response of `line`, `line_type` and `path` is
31
+ set to `null`.
32
+
33
+
34
+ | Attribute | Type | Required | Description |
35
+ | --------- | ---- | -------- | ----------- |
36
+ | note | string | yes | The text of the comment |
37
+ | path | string | no | The file path relative to the repository |
38
+ | line | integer | no | The line number where the comment should be placed |
39
+ | line_type | string | no | The line type. Takes new or old as arguments |
40
+
41
+ DOC
42
+ end
43
+
44
+ doc 'Comments' do
45
+ desc 'Via Commit'
46
+ example <<~DOC
47
+ commit = client.commits.show(16,)
48
+ commit.comments
49
+ DOC
50
+ end
51
+
52
+ doc 'Comments' do
53
+ desc 'Via Project'
54
+ example <<~DOC
55
+ project = client.projects.show(16)
56
+ project.commit_comments('a0550a65')
57
+ DOC
58
+ end
59
+
60
+ def comment_create(project_id, commit_id, query)
61
+ project_id = format_id(project_id)
62
+ commit_id = format_id(commit_id)
63
+
64
+ client.request(:post, "projects/#{project_id}/repository/commits/#{commit_id}/comments", CommitComment, query)
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,39 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Comments' do
6
+ desc 'Get the comments of a commit in a project. [Project ID, Commit ID]'
7
+ example <<~DOC
8
+ client.commits.comments(16, '92c2b96b')
9
+ DOC
10
+
11
+ result <<~DOC
12
+ => [#<CommitComment title: another!>]
13
+ DOC
14
+ end
15
+
16
+ doc 'Comments' do
17
+ desc 'Via Commit'
18
+ example <<~DOC
19
+ commit = client.commits.show(16,)
20
+ commit.comments
21
+ DOC
22
+ end
23
+
24
+ doc 'Comments' do
25
+ desc 'Via Project'
26
+ example <<~DOC
27
+ project = client.projects.show(16)
28
+ project.commit_comments('a0550a65')
29
+ DOC
30
+ end
31
+
32
+ def comments(project_id, commit_id)
33
+ project_id = format_id(project_id)
34
+ commit_id = format_id(commit_id)
35
+
36
+ client.request(:get, "projects/#{project_id}/repository/commits/#{commit_id}/comments", CommitComment)
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,101 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class Commit < Klass
5
+ include ClassHelpers
6
+
7
+ def inspect
8
+ "#<Commit title: #{title}, sha: #{short_id}>"
9
+ end
10
+
11
+ def refs(scope = :all)
12
+ # If from List Project ID isn't stored
13
+ project_id = collect_project_id if project_id.nil?
14
+
15
+ client.commits.refs(project_id, id, scope)
16
+ end
17
+
18
+ def cherry_pick(branch_name)
19
+ # If from List Project ID isn't stored
20
+ project_id = collect_project_id if project_id.nil?
21
+
22
+ client.commits.cherry_pick(project_id, id, branch_name)
23
+ end
24
+
25
+ def revert(branch_name)
26
+ # If from List Project ID isn't stored
27
+ project_id = collect_project_id if project_id.nil?
28
+
29
+ client.commits.revert(project_id, id, branch_name)
30
+ end
31
+
32
+ def diff
33
+ # If from List Project ID isn't stored
34
+ project_id = collect_project_id if project_id.nil?
35
+
36
+ client.commits.diff(project_id, id)
37
+ end
38
+
39
+ def merge_requests
40
+ # If from List Project ID isn't stored
41
+ project_id = collect_project_id if project_id.nil?
42
+
43
+ client.commits.merge_requests(project_id, id)
44
+ end
45
+
46
+ def comments
47
+ # If from List Project ID isn't stored
48
+ project_id = collect_project_id if project_id.nil?
49
+
50
+ client.commits.comments(project_id, id)
51
+ end
52
+
53
+ def comment(query)
54
+ # If from List Project ID isn't stored
55
+ project_id = collect_project_id if project_id.nil?
56
+
57
+ client.commits.comment_create(project_id, id, query)
58
+ end
59
+
60
+ def project
61
+ # If from List Project ID isn't stored
62
+ project_id = collect_project_id if project_id.nil?
63
+
64
+ client.projects.show(project_id)
65
+ end
66
+
67
+ def web_url
68
+ "#{project.web_url}/-/commit/#{id}"
69
+ end
70
+
71
+ def status(query = {})
72
+ # If from List Project ID isn't stored
73
+ project_id = collect_project_id if project_id.nil?
74
+
75
+ client.commits.status(project_id, id, query)
76
+ end
77
+
78
+ def status_update(query = {})
79
+ # If from List Project ID isn't stored
80
+ project_id = collect_project_id if project_id.nil?
81
+
82
+ client.commits.status_update(project_id, id, query)
83
+ end
84
+
85
+ date_time_attrs %i[committed_date authored_date created_at]
86
+
87
+ help do
88
+ subtitle 'Commit'
89
+ option 'refs', 'Get all references'
90
+ option 'cherry_pick', 'Cherry picks a commit to a target branch [Target Branch]'
91
+ option 'revert', 'Reverts a commit in a given branch [Target Branch]'
92
+ option 'diff', 'Get the diff'
93
+ option 'project', 'Show Commit Project'
94
+ option 'web_url', 'Generate project/web_url'
95
+ option 'comments', 'Get comments'
96
+ option 'comment', 'Create new comment [Hash]'
97
+ option 'status', 'List the statuses [Hash]'
98
+ option 'status_update', 'Adds or updates a build status [Hash]'
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,14 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class CommitComment < Klass
5
+ include ClassHelpers
6
+
7
+ def inspect
8
+ "#<CommitComment title: #{note[0..9]}>"
9
+ end
10
+
11
+ date_time_attrs %i[created_at]
12
+ user_attrs %i[author]
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Inspect Helper
4
+ class CommitDiff < Klass
5
+ include ClassHelpers
6
+ end
7
+ end
@@ -0,0 +1,83 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Create' do
6
+ desc 'Create a commit with multiple files and actions. [Project ID, Hash]'
7
+ example <<~DOC
8
+ payload = {
9
+ actions: [
10
+ {
11
+ action: 'create',
12
+ content: 'some content',
13
+ file_path: 'foo/bar'
14
+ }
15
+ ],
16
+ branch: 'master',
17
+ commit_message: 'some commit message'
18
+ }
19
+
20
+
21
+ client.commits.create(16, payload)
22
+ DOC
23
+
24
+ result <<~DOC
25
+ => #<Commit title: some commit message, sha: a0550a65>
26
+ DOC
27
+
28
+ markdown <<~DOC
29
+ | Attribute | Type | Required | Description |
30
+ | --------- | ---- | -------- | ----------- |
31
+ | id | integer/string | yes | The ID or [URL-encoded path of the project|
32
+ | branch | string | yes | Name of the branch to commit into. To create a new branch, also provide either start_branch or start_sha, and optionally start_project. |
33
+ | commit_message | string | yes | Commit message |
34
+ | start_branch | string | no | Name of the branch to start the new branch from |
35
+ | start_sha | string | no | SHA of the commit to start the new branch from |
36
+ | start_project | integer/string | no | The project ID or URL-encoded path of the project to start the new branch from. Defaults to the value of id. |
37
+ | actions[] | array | yes | An array of action hashes to commit as a batch. See the next table for what attributes it can take. |
38
+ | author_email | string | no | Specify the commit author's email address |
39
+ | author_name | string | no | Specify the commit author's name |
40
+ | stats | boolean | no | Include commit stats. Default is true |
41
+ | force | boolean | no | When true overwrites the target branch with a new commit based on the start_branch or start_sha |
42
+
43
+ ##### Actions
44
+
45
+ | Attribute | Type | Required | Description |
46
+ | --------------------- | ---- | -------- | ----------- |
47
+ | action | string | yes | The action to perform, create, delete, move, update, chmod|
48
+ | file_path | string | yes | Full path to the file. Ex. lib/class.rb |
49
+ | previous_path | string | no | Original full path to the file being moved. Ex. lib/class1.rb. Only considered for move action. |
50
+ | content | string | no | File content, required for all except delete, chmod, and move. Move actions that do not specify content will preserve the existing file content, and any other value of content will overwrite the file content. |
51
+ | encoding | string | no | text or base64. text is default. |
52
+ | last_commit_id | string | no | Last known file commit id. Will be only considered in update, move and delete actions. |
53
+ | execute_filemode | boolean | no | When true/false enables/disables the execute flag on the file. Only considered for chmod action. |
54
+ DOC
55
+ end
56
+
57
+ doc 'Create' do
58
+ desc 'Via Project'
59
+ example <<~DOC
60
+ payload = {
61
+ actions: [
62
+ {
63
+ action: 'create',
64
+ content: 'some content',
65
+ file_path: 'foo/bar'
66
+ }
67
+ ],
68
+ branch: 'master',
69
+ commit_message: 'some commit message'
70
+ }
71
+
72
+ project = client.projects.show(16)
73
+ project.commit_create(payload)
74
+ DOC
75
+ end
76
+
77
+ def create(project_id, query = {})
78
+ project_id = format_id(project_id)
79
+
80
+ client.request(:post, "projects/#{project_id}/repository/commits", Commit, query)
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,39 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Diff' do
6
+ desc 'Diffs a commit in a given branch. [Project ID, Commit ID]'
7
+ example <<~DOC
8
+ client.commits.diff(16, '92c2b96b')
9
+ DOC
10
+
11
+ result <<~DOC
12
+ => #<Commit title: Update bar, sha: 1e64f40c>
13
+ DOC
14
+ end
15
+
16
+ doc 'Diff' do
17
+ desc 'Via Commit'
18
+ example <<~DOC
19
+ commit = client.commits.show(16,)
20
+ commit.diff('new_branch')
21
+ DOC
22
+ end
23
+
24
+ doc 'Diff' do
25
+ desc 'Via Project'
26
+ example <<~DOC
27
+ project = client.projects.show(16)
28
+ project.commit_diff('a0550a65')
29
+ DOC
30
+ end
31
+
32
+ def diff(project_id, commit_id)
33
+ project_id = format_id(project_id)
34
+ commit_id = format_id(commit_id)
35
+
36
+ client.request(:get, "projects/#{project_id}/repository/commits/#{commit_id}/diff", CommitDiff)
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,54 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'List' do
6
+ desc 'List repository commits. [Project ID, Hash]'
7
+ example 'client.commits.list(16)'
8
+ result <<~DOC
9
+ => [#<Commit title: Update README.md, sha: ae5cd273>, #<Commit title: Add README.md, sha: 04d8c6be>]
10
+ DOC
11
+
12
+ markdown <<~DOC
13
+ | Attribute | Type | Required | Description |
14
+ | --------- | ---- | -------- | ----------- |
15
+ | ref_name | string | no | The name of a repository branch, tag or revision range, or if not given the default branch |
16
+ | since | string | no | Only commits after or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ |
17
+ | until | string | no | Only commits before or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ |
18
+ | path | string | no | The file path |
19
+ | all | boolean | no | Retrieve every commit from the repository |
20
+ | with_stats | boolean | no | Stats about each commit will be added to the response |
21
+ | first_parent | boolean | no | Follow only the first parent commit upon seeing a merge commit |
22
+ | order | string | no | List commits in order. Possible values: default, [topo](https://git-scm.com/docs/git-log#Documentation/git-log.txt---topo-order). Defaults to default, the commits are shown in reverse chronological order. |
23
+ DOC
24
+ end
25
+
26
+ doc 'List' do
27
+ desc 'Filter by ref_name'
28
+ example 'client.commits.list(16, ref_name: :master)'
29
+ end
30
+
31
+ doc 'List' do
32
+ desc 'Via Project'
33
+ example <<~DOC
34
+ project = client.projects.show(16)
35
+ project.commits
36
+ DOC
37
+ end
38
+
39
+ doc 'List' do
40
+ desc 'Since with Time Helper'
41
+ example 'client.commits.list(315, since: 1.month.ago)'
42
+ end
43
+
44
+ def list(project_id, query = {})
45
+ project_id = format_id(project_id)
46
+
47
+ %i[since until].each do |field|
48
+ query[field] = query[field].to_time.iso8601 if format_time?(query[field])
49
+ end
50
+
51
+ client.request(:get, "projects/#{project_id}/repository/commits", Commit, query)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,40 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Specifics
4
+ class Commits < Common
5
+ doc 'Show' do
6
+ title 'Merge Requests'
7
+ desc 'Get a list of Merge Requests related to the specified commit. [Project ID, Commit ID]'
8
+ example <<~DOC
9
+ client.commits.merge_requests(16, 'a0550a65')
10
+ DOC
11
+
12
+ result <<~DOC
13
+ => [#<MergeRequest id: 12, title: Update README.md, state: opened>]
14
+ DOC
15
+ end
16
+
17
+ doc 'Show' do
18
+ desc 'Via Commit'
19
+ example <<~DOC
20
+ commit = client.commits.show(16, 'a0550a65')
21
+ commit.merge_requests
22
+ DOC
23
+ end
24
+
25
+ doc 'Show' do
26
+ desc 'Via Project'
27
+ example <<~DOC
28
+ project = client.projects.show(16)
29
+ project.commit_merge_requests('a0550a65')
30
+ DOC
31
+ end
32
+
33
+ def merge_requests(project_id, commit_id)
34
+ project_id = format_id(project_id)
35
+ commit_id = format_id(commit_id)
36
+
37
+ client.request(:get, "projects/#{project_id}/repository/commits/#{commit_id}/merge_requests", MergeRequest)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,49 @@
1
+ # Top namespace
2
+ module LabClient
3
+ # Helper Methods for Projects
4
+ module ProjectCommits
5
+ def commits(query = {})
6
+ client.commits.list(id, query)
7
+ end
8
+
9
+ def commit_create(query = {})
10
+ client.commits.create(id, query)
11
+ end
12
+
13
+ def commit_refs(commit_id, scope = :all)
14
+ client.commits.refs(id, commit_id, scope)
15
+ end
16
+
17
+ def commit_cherry_pick(commit_id, branch_name)
18
+ client.commits.cherry_pick(id, commit_id, branch_name)
19
+ end
20
+
21
+ def commit_revert(commit_id, branch_name)
22
+ client.commits.revert(id, commit_id, branch_name)
23
+ end
24
+
25
+ def commit_diff(commit_id)
26
+ client.commits.diff(id, commit_id)
27
+ end
28
+
29
+ def commit_comments(commit_id)
30
+ client.commits.comments(id, commit_id)
31
+ end
32
+
33
+ def commit_comment_create(commit_id, query)
34
+ client.commits.comment_create(id, commit_id, query)
35
+ end
36
+
37
+ def commit_merge_requests(commit_id)
38
+ client.commits.merge_requests(id, commit_id)
39
+ end
40
+
41
+ def commit_status(commit_id, query = {})
42
+ client.commits.status(id, commit_id, query)
43
+ end
44
+
45
+ def commit_status_update(commit_id, query = {})
46
+ client.commits.status_update(id, commit_id, query)
47
+ end
48
+ end
49
+ end