gitlab-faraday 5.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 (79) hide show
  1. checksums.yaml +7 -0
  2. data/lib/gitlab/api.rb +16 -0
  3. data/lib/gitlab/client/access_requests.rb +103 -0
  4. data/lib/gitlab/client/application_settings.rb +172 -0
  5. data/lib/gitlab/client/avatar.rb +21 -0
  6. data/lib/gitlab/client/award_emojis.rb +137 -0
  7. data/lib/gitlab/client/boards.rb +146 -0
  8. data/lib/gitlab/client/branches.rb +135 -0
  9. data/lib/gitlab/client/broadcast_messages.rb +75 -0
  10. data/lib/gitlab/client/build_variables.rb +135 -0
  11. data/lib/gitlab/client/builds.rb +108 -0
  12. data/lib/gitlab/client/commits.rb +216 -0
  13. data/lib/gitlab/client/container_registry.rb +90 -0
  14. data/lib/gitlab/client/deployments.rb +34 -0
  15. data/lib/gitlab/client/environments.rb +89 -0
  16. data/lib/gitlab/client/epic_issues.rb +23 -0
  17. data/lib/gitlab/client/epics.rb +73 -0
  18. data/lib/gitlab/client/events.rb +60 -0
  19. data/lib/gitlab/client/features.rb +48 -0
  20. data/lib/gitlab/client/group_badges.rb +88 -0
  21. data/lib/gitlab/client/group_boards.rb +141 -0
  22. data/lib/gitlab/client/group_labels.rb +88 -0
  23. data/lib/gitlab/client/group_milestones.rb +94 -0
  24. data/lib/gitlab/client/groups.rb +526 -0
  25. data/lib/gitlab/client/issue_links.rb +48 -0
  26. data/lib/gitlab/client/issues.rb +242 -0
  27. data/lib/gitlab/client/jobs.rb +250 -0
  28. data/lib/gitlab/client/keys.rb +29 -0
  29. data/lib/gitlab/client/labels.rb +88 -0
  30. data/lib/gitlab/client/lint.rb +19 -0
  31. data/lib/gitlab/client/markdown.rb +23 -0
  32. data/lib/gitlab/client/merge_request_approvals.rb +265 -0
  33. data/lib/gitlab/client/merge_requests.rb +415 -0
  34. data/lib/gitlab/client/merge_trains.rb +55 -0
  35. data/lib/gitlab/client/milestones.rb +106 -0
  36. data/lib/gitlab/client/namespaces.rb +22 -0
  37. data/lib/gitlab/client/notes.rb +313 -0
  38. data/lib/gitlab/client/packages.rb +95 -0
  39. data/lib/gitlab/client/pipeline_schedules.rb +159 -0
  40. data/lib/gitlab/client/pipeline_triggers.rb +103 -0
  41. data/lib/gitlab/client/pipelines.rb +130 -0
  42. data/lib/gitlab/client/project_badges.rb +85 -0
  43. data/lib/gitlab/client/project_clusters.rb +83 -0
  44. data/lib/gitlab/client/project_exports.rb +54 -0
  45. data/lib/gitlab/client/project_release_links.rb +76 -0
  46. data/lib/gitlab/client/project_releases.rb +90 -0
  47. data/lib/gitlab/client/projects.rb +792 -0
  48. data/lib/gitlab/client/protected_tags.rb +59 -0
  49. data/lib/gitlab/client/remote_mirrors.rb +90 -0
  50. data/lib/gitlab/client/repositories.rb +130 -0
  51. data/lib/gitlab/client/repository_files.rb +131 -0
  52. data/lib/gitlab/client/repository_submodules.rb +27 -0
  53. data/lib/gitlab/client/resource_label_events.rb +82 -0
  54. data/lib/gitlab/client/resource_state_events.rb +57 -0
  55. data/lib/gitlab/client/runners.rb +278 -0
  56. data/lib/gitlab/client/search.rb +66 -0
  57. data/lib/gitlab/client/services.rb +53 -0
  58. data/lib/gitlab/client/sidekiq.rb +39 -0
  59. data/lib/gitlab/client/snippets.rb +95 -0
  60. data/lib/gitlab/client/system_hooks.rb +64 -0
  61. data/lib/gitlab/client/tags.rb +97 -0
  62. data/lib/gitlab/client/templates.rb +100 -0
  63. data/lib/gitlab/client/todos.rb +46 -0
  64. data/lib/gitlab/client/user_snippets.rb +114 -0
  65. data/lib/gitlab/client/users.rb +521 -0
  66. data/lib/gitlab/client/versions.rb +18 -0
  67. data/lib/gitlab/client/wikis.rb +79 -0
  68. data/lib/gitlab/client.rb +96 -0
  69. data/lib/gitlab/configuration.rb +36 -0
  70. data/lib/gitlab/error.rb +114 -0
  71. data/lib/gitlab/file_response.rb +43 -0
  72. data/lib/gitlab/headers/page_links.rb +32 -0
  73. data/lib/gitlab/headers/total.rb +24 -0
  74. data/lib/gitlab/objectified_hash.rb +44 -0
  75. data/lib/gitlab/paginated_response.rb +114 -0
  76. data/lib/gitlab/request.rb +144 -0
  77. data/lib/gitlab/version.rb +5 -0
  78. data/lib/gitlab.rb +36 -0
  79. metadata +156 -0
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to project release links.
5
+ # @see https://docs.gitlab.com/ce/api/releases/links.html
6
+ module ProjectReleaseLinks
7
+ # Get assets as links from a Release.
8
+ #
9
+ # @example
10
+ # Gitlab.project_release_links(5, 'v0.3')
11
+ #
12
+ # @param [Integer, String] project The ID or name of a project.
13
+ # @param [String] tag_name The tag associated with the Release.
14
+ # @return [Array<Gitlab::ObjectifiedHash>] List of assets as links from a Release.
15
+ def project_release_links(project, tag_name)
16
+ get("/projects/#{url_encode project}/releases/#{tag_name}/assets/links")
17
+ end
18
+
19
+ # Get an asset as link from a Release.
20
+ #
21
+ # @example
22
+ # Gitlab.project_release_link(5, 'v0.3', 1)
23
+ #
24
+ # @param [Integer, String] project The ID or name of a project.
25
+ # @param [String] tag_name The tag associated with the Release.
26
+ # @param [Integer] link_id The id of the link.
27
+ # @return [Gitlab::ObjectifiedHash] Information about the release link
28
+ def project_release_link(project, tag_name, link_id)
29
+ get("/projects/#{url_encode project}/releases/#{tag_name}/assets/links/#{link_id}")
30
+ end
31
+
32
+ # Create an asset as a link from a Release.
33
+ #
34
+ # @example
35
+ # Gitlab.create_project_release_link(5, 'v0.1', { name: 'awesome-v0.2.dmg', url: 'http://192.168.10.15:3000' })
36
+ #
37
+ # @param [Integer, String] project The ID or name of a project.
38
+ # @param [String] tag_name The tag associated with the Release.
39
+ # @param [Hash] options A customizable set of options.
40
+ # @option options [String] :name(required) The name of the link.
41
+ # @option options [String] :url(required) The URL of the link.
42
+ # @return [Gitlab::ObjectifiedHash] Information about the created release link.
43
+ def create_project_release_link(project, tag_name, options = {})
44
+ post("/projects/#{url_encode project}/releases/#{tag_name}/assets/links", body: options)
45
+ end
46
+
47
+ # Update an asset as a link from a Release. You have to specify at least one of name or url
48
+ #
49
+ # @example
50
+ # Gitlab.update_project_release_link(5, 'v0.3', 1, { name: 'awesome-v0.2.dmg', url: 'http://192.168.10.15:3000' })
51
+ #
52
+ # @param [Integer, String] project The ID or name of a project.
53
+ # @param [String] tag_name The tag where the release will be created from.
54
+ # @param [Integer] link_id The id of the link.
55
+ # @param [Hash] options A customizable set of options.
56
+ # @option options [String] :name(optional) The name of the link.
57
+ # @option options [String] :url(optional) The URL of the link.
58
+ # @return [Gitlab::ObjectifiedHash] Information about the updated release link.
59
+ def update_project_release_link(project, tag_name, link_id, options = {})
60
+ put("/projects/#{url_encode project}/releases/#{tag_name}/assets/links/#{link_id}", body: options)
61
+ end
62
+
63
+ # Delete an asset as a link from a Release.
64
+ #
65
+ # @example
66
+ # Gitlab.delete_project_release_link(5, 'v0.3', 1)
67
+ #
68
+ # @param [Integer, String] project The ID or name of a project.
69
+ # @param [String] tag_name The tag where the release will be created from.
70
+ # @param [Integer] link_id The id of the link.
71
+ # @return [Gitlab::ObjectifiedHash] Information about the deleted release link.
72
+ def delete_project_release_link(project, tag_name, link_id)
73
+ delete("/projects/#{url_encode project}/releases/#{tag_name}/assets/links/#{link_id}")
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Gitlab::Client
4
+ # Defines methods related to project releases.
5
+ # @see https://docs.gitlab.com/ce/api/releases/
6
+ module ProjectReleases
7
+ # Returns Paginated list of a project's releases, sorted by created_at.
8
+ #
9
+ # @example
10
+ # Gitlab.project_releases(5)
11
+ #
12
+ # @param [Integer, String] project The ID or name of a project.
13
+ # @return [Array<Gitlab::ObjectifiedHash>] Paginated list of Releases, sorted by created_at.
14
+ def project_releases(project)
15
+ get("/projects/#{url_encode project}/releases")
16
+ end
17
+
18
+ # Gets a Release by a tag name
19
+ #
20
+ # @example
21
+ # Gitlab.project_release(5, 'v0.1')
22
+ #
23
+ # @param [Integer, String] project The ID or name of a project.
24
+ # @param [String] tag_name The tag where the release will be created from..
25
+ # @return [Gitlab::ObjectifiedHash] Information about the release
26
+ def project_release(project, tag_name)
27
+ get("/projects/#{url_encode project}/releases/#{url_encode tag_name}")
28
+ end
29
+
30
+ # Creates a Release. You need push access to the repository to create a Release.
31
+ #
32
+ # @example
33
+ # Gitlab.create_project_release(5, { name: 'New Release', tag_name: 'v0.3', description: 'Super nice release' })
34
+ # Gitlab.create_project_release(5, { name: 'New Release', tag_name: 'v0.3', description: 'Super nice release', assets: { links: [{ name: 'hoge', url: 'https://google.com' }] } })
35
+ #
36
+ # @param [Integer, String] project The ID or name of a project.
37
+ # @param [Hash] options A customizable set of options.
38
+ # @option options [String] :name(required) The release name.
39
+ # @option options [String] :tag_name(required) The tag where the release will be created from.
40
+ # @option options [String] :description(required) The description of the release. You can use markdown.
41
+ # @option options [String] :ref(optional) If tag_name does not exist, the release will be created from ref. It can be a commit SHA, another tag name, or a branch name.
42
+ # @option options [Hash] :assets(optional) A customizable set of options for release assets
43
+ # @asset assets [Array<link>] :links(optional) An array of assets links as hashes.
44
+ # @link links [Hash] link_elements A combination of a link name and a link url
45
+ # @link_element [String] :name The name of the link.
46
+ # @link_element [String] :url The url of the link.
47
+ # @return [Gitlab::ObjectifiedHash] Information about the created release.
48
+ def create_project_release(project, options = {})
49
+ post("/projects/#{url_encode project}/releases", body: options)
50
+ end
51
+
52
+ # Updates a release.
53
+ #
54
+ # @example
55
+ # Gitlab.update_project_release(5, 'v0.3', { name: 'New Release', description: 'Super nice release' })
56
+ #
57
+ # @param [Integer, String] project The ID or name of a project.
58
+ # @param [String] tag_name The tag where the release will be created from.
59
+ # @param [Hash] options A customizable set of options.
60
+ # @option options [String] :name(optional) The release name.
61
+ # @option options [String] :description(optional) The description of the release. You can use markdown.
62
+ # @return [Gitlab::ObjectifiedHash] Information about the updated release.
63
+ def update_project_release(project, tag_name, options = {})
64
+ put("/projects/#{url_encode project}/releases/#{url_encode tag_name}", body: options)
65
+ end
66
+
67
+ # Delete a Release. Deleting a Release will not delete the associated tag.
68
+ #
69
+ # @example
70
+ # Gitlab.delete_project_release(5, 'v0.3')
71
+ #
72
+ # @param [Integer, String] project The ID or name of a project.
73
+ # @param [String] tag_name The tag where the release will be created from.
74
+ # @return [Gitlab::ObjectifiedHash] Information about the deleted release.
75
+ def delete_project_release(project, tag_name)
76
+ delete("/projects/#{url_encode project}/releases/#{url_encode tag_name}")
77
+ end
78
+
79
+ # Gets Latest Release
80
+ #
81
+ # @example
82
+ # Gitlab.project_latest_release(5)
83
+ #
84
+ # @param [Integer, String] project The ID or name of a project
85
+ # @return [Gitlab::ObjectifiedHash] Information about the release
86
+ def project_latest_release(project)
87
+ get("/projects/#{url_encode project}/releases/permalink/latest")
88
+ end
89
+ end
90
+ end