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.
- checksums.yaml +7 -0
- data/lib/gitlab/api.rb +16 -0
- data/lib/gitlab/client/access_requests.rb +103 -0
- data/lib/gitlab/client/application_settings.rb +172 -0
- data/lib/gitlab/client/avatar.rb +21 -0
- data/lib/gitlab/client/award_emojis.rb +137 -0
- data/lib/gitlab/client/boards.rb +146 -0
- data/lib/gitlab/client/branches.rb +135 -0
- data/lib/gitlab/client/broadcast_messages.rb +75 -0
- data/lib/gitlab/client/build_variables.rb +135 -0
- data/lib/gitlab/client/builds.rb +108 -0
- data/lib/gitlab/client/commits.rb +216 -0
- data/lib/gitlab/client/container_registry.rb +90 -0
- data/lib/gitlab/client/deployments.rb +34 -0
- data/lib/gitlab/client/environments.rb +89 -0
- data/lib/gitlab/client/epic_issues.rb +23 -0
- data/lib/gitlab/client/epics.rb +73 -0
- data/lib/gitlab/client/events.rb +60 -0
- data/lib/gitlab/client/features.rb +48 -0
- data/lib/gitlab/client/group_badges.rb +88 -0
- data/lib/gitlab/client/group_boards.rb +141 -0
- data/lib/gitlab/client/group_labels.rb +88 -0
- data/lib/gitlab/client/group_milestones.rb +94 -0
- data/lib/gitlab/client/groups.rb +526 -0
- data/lib/gitlab/client/issue_links.rb +48 -0
- data/lib/gitlab/client/issues.rb +242 -0
- data/lib/gitlab/client/jobs.rb +250 -0
- data/lib/gitlab/client/keys.rb +29 -0
- data/lib/gitlab/client/labels.rb +88 -0
- data/lib/gitlab/client/lint.rb +19 -0
- data/lib/gitlab/client/markdown.rb +23 -0
- data/lib/gitlab/client/merge_request_approvals.rb +265 -0
- data/lib/gitlab/client/merge_requests.rb +415 -0
- data/lib/gitlab/client/merge_trains.rb +55 -0
- data/lib/gitlab/client/milestones.rb +106 -0
- data/lib/gitlab/client/namespaces.rb +22 -0
- data/lib/gitlab/client/notes.rb +313 -0
- data/lib/gitlab/client/packages.rb +95 -0
- data/lib/gitlab/client/pipeline_schedules.rb +159 -0
- data/lib/gitlab/client/pipeline_triggers.rb +103 -0
- data/lib/gitlab/client/pipelines.rb +130 -0
- data/lib/gitlab/client/project_badges.rb +85 -0
- data/lib/gitlab/client/project_clusters.rb +83 -0
- data/lib/gitlab/client/project_exports.rb +54 -0
- data/lib/gitlab/client/project_release_links.rb +76 -0
- data/lib/gitlab/client/project_releases.rb +90 -0
- data/lib/gitlab/client/projects.rb +792 -0
- data/lib/gitlab/client/protected_tags.rb +59 -0
- data/lib/gitlab/client/remote_mirrors.rb +90 -0
- data/lib/gitlab/client/repositories.rb +130 -0
- data/lib/gitlab/client/repository_files.rb +131 -0
- data/lib/gitlab/client/repository_submodules.rb +27 -0
- data/lib/gitlab/client/resource_label_events.rb +82 -0
- data/lib/gitlab/client/resource_state_events.rb +57 -0
- data/lib/gitlab/client/runners.rb +278 -0
- data/lib/gitlab/client/search.rb +66 -0
- data/lib/gitlab/client/services.rb +53 -0
- data/lib/gitlab/client/sidekiq.rb +39 -0
- data/lib/gitlab/client/snippets.rb +95 -0
- data/lib/gitlab/client/system_hooks.rb +64 -0
- data/lib/gitlab/client/tags.rb +97 -0
- data/lib/gitlab/client/templates.rb +100 -0
- data/lib/gitlab/client/todos.rb +46 -0
- data/lib/gitlab/client/user_snippets.rb +114 -0
- data/lib/gitlab/client/users.rb +521 -0
- data/lib/gitlab/client/versions.rb +18 -0
- data/lib/gitlab/client/wikis.rb +79 -0
- data/lib/gitlab/client.rb +96 -0
- data/lib/gitlab/configuration.rb +36 -0
- data/lib/gitlab/error.rb +114 -0
- data/lib/gitlab/file_response.rb +43 -0
- data/lib/gitlab/headers/page_links.rb +32 -0
- data/lib/gitlab/headers/total.rb +24 -0
- data/lib/gitlab/objectified_hash.rb +44 -0
- data/lib/gitlab/paginated_response.rb +114 -0
- data/lib/gitlab/request.rb +144 -0
- data/lib/gitlab/version.rb +5 -0
- data/lib/gitlab.rb +36 -0
- metadata +156 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to GitLab Container Registry.
|
|
5
|
+
# @see https://docs.gitlab.com/ce/api/container_registry.html
|
|
6
|
+
module ContainerRegistry
|
|
7
|
+
# Get a list of registry repositories in a project.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.registry_repositories(5)
|
|
11
|
+
#
|
|
12
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
13
|
+
# @param [Hash] options A customizable set of options.
|
|
14
|
+
# @option options [Boolean] :tags Return tags array in the response.
|
|
15
|
+
# @option options [Boolean] :tags_count Return tags count in the response.
|
|
16
|
+
# @option options [Integer] :page The page number.
|
|
17
|
+
# @option options [Integer] :per_page The number of results per page.
|
|
18
|
+
# @return [Array<Gitlab::ObjectifiedHash>] Returns list of registry repositories in a project.
|
|
19
|
+
def registry_repositories(project, options = {})
|
|
20
|
+
get("/projects/#{url_encode project}/registry/repositories", query: options)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Delete a repository in registry.
|
|
24
|
+
#
|
|
25
|
+
# @example
|
|
26
|
+
# Gitlab.delete_registry_repository(5, 2)
|
|
27
|
+
#
|
|
28
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
29
|
+
# @param [Integer] id The ID of registry repository.
|
|
30
|
+
# @return [void] This API call returns an empty response body.
|
|
31
|
+
def delete_registry_repository(project, id)
|
|
32
|
+
delete("/projects/#{url_encode project}/registry/repositories/#{id}")
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Get a list of tags for given registry repository.
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Gitlab.registry_repository_tags(5, 2)
|
|
39
|
+
#
|
|
40
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
41
|
+
# @param [Integer] repository_id The ID of registry repository.
|
|
42
|
+
# @return [Array<Gitlab::ObjectifiedHash>] Returns list of tags of a registry repository.
|
|
43
|
+
def registry_repository_tags(project, repository_id)
|
|
44
|
+
get("/projects/#{url_encode project}/registry/repositories/#{repository_id}/tags")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Get details of a registry repository tag.
|
|
48
|
+
#
|
|
49
|
+
# @example
|
|
50
|
+
# Gitlab.registry_repository_tag(5, 2, 'v10.0.0')
|
|
51
|
+
#
|
|
52
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
53
|
+
# @param [Integer] repository_id The ID of registry repository.
|
|
54
|
+
# @param [String] tag_name The name of tag.
|
|
55
|
+
# @return <Gitlab::ObjectifiedHash> Returns details about the registry repository tag
|
|
56
|
+
def registry_repository_tag(project, repository_id, tag_name)
|
|
57
|
+
get("/projects/#{url_encode project}/registry/repositories/#{repository_id}/tags/#{tag_name}")
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Delete a registry repository tag.
|
|
61
|
+
#
|
|
62
|
+
# @example
|
|
63
|
+
# Gitlab.delete_registry_repository_tag(5, 2, 'v10.0.0')
|
|
64
|
+
#
|
|
65
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
66
|
+
# @param [Integer] repository_id The ID of registry repository.
|
|
67
|
+
# @param [String] tag_name The name of tag.
|
|
68
|
+
# @return [void] This API call returns an empty response body.
|
|
69
|
+
def delete_registry_repository_tag(project, repository_id, tag_name)
|
|
70
|
+
delete("/projects/#{url_encode project}/registry/repositories/#{repository_id}/tags/#{tag_name}")
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Delete repository tags in bulk based on given criteria.
|
|
74
|
+
#
|
|
75
|
+
# @example
|
|
76
|
+
# Gitlab.bulk_delete_registry_repository_tags(5, 2, name_regex: '.*')
|
|
77
|
+
# Gitlab.bulk_delete_registry_repository_tags(5, 2, name_regex: '[0-9a-z]{40}', keep_n: 5, older_than: '1d')
|
|
78
|
+
#
|
|
79
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
80
|
+
# @param [Integer] repository_id The ID of registry repository.
|
|
81
|
+
# @param [Hash] options A customizable set of options.
|
|
82
|
+
# @option options [String] :name_regex(required) The regex of the name to delete. To delete all tags specify .*.
|
|
83
|
+
# @option options [Integer] :keep_n(optional) The amount of latest tags of given name to keep.
|
|
84
|
+
# @option options [String] :older_than(required) Tags to delete that are older than the given time, written in human readable form 1h, 1d, 1month.
|
|
85
|
+
# @return [void] This API call returns an empty response body.
|
|
86
|
+
def bulk_delete_registry_repository_tags(project, repository_id, options = {})
|
|
87
|
+
delete("/projects/#{url_encode project}/registry/repositories/#{repository_id}/tags", body: options)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to deployments.
|
|
5
|
+
# @see https://docs.gitlab.com/ce/api/deployments.html
|
|
6
|
+
module Deployments
|
|
7
|
+
# Gets a list of project deployments.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.deployments(5)
|
|
11
|
+
# Gitlab.deployments(5, { per_page: 10, page: 2 })
|
|
12
|
+
#
|
|
13
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
14
|
+
# @param [Hash] options A customizable set of options.
|
|
15
|
+
# @option options [Integer] :page The page number.
|
|
16
|
+
# @option options [Integer] :per_page The number of results per page.
|
|
17
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
18
|
+
def deployments(project, options = {})
|
|
19
|
+
get("/projects/#{url_encode project}/deployments", query: options)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Gets a single deployment.
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Gitlab.deployment(5, 36)
|
|
26
|
+
#
|
|
27
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
28
|
+
# @param [Integer] id The ID of an deployment.
|
|
29
|
+
# @return [Gitlab::ObjectifiedHash]
|
|
30
|
+
def deployment(project, id)
|
|
31
|
+
get("/projects/#{url_encode project}/deployments/#{id}")
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to environments.
|
|
5
|
+
# @see https://docs.gitlab.com/ce/api/environments.html
|
|
6
|
+
module Environments
|
|
7
|
+
# Gets a list of project environments.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.environments(5)
|
|
11
|
+
# Gitlab.environments(5, { per_page: 10, page: 2 })
|
|
12
|
+
#
|
|
13
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
14
|
+
# @param [Hash] options A customizable set of options.
|
|
15
|
+
# @option options [Integer] :page The page number.
|
|
16
|
+
# @option options [Integer] :per_page The number of results per page.
|
|
17
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
18
|
+
def environments(project, options = {})
|
|
19
|
+
get("/projects/#{url_encode project}/environments", query: options)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Gets a single environment.
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Gitlab.environment(5, 36)
|
|
26
|
+
#
|
|
27
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
28
|
+
# @param [Integer] id The ID of an environment.
|
|
29
|
+
# @return [Gitlab::ObjectifiedHash]
|
|
30
|
+
def environment(project, id)
|
|
31
|
+
get("/projects/#{url_encode project}/environments/#{id}")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Create an environment.
|
|
35
|
+
#
|
|
36
|
+
# @examples
|
|
37
|
+
# Gitlab.create_environment(5, 'test-branch')
|
|
38
|
+
# Gitlab.create_environment(5, 'test-branch', external_url: 'https://test-branch.example.host.com')
|
|
39
|
+
#
|
|
40
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
41
|
+
# @param [String] env_name Name for the environment
|
|
42
|
+
# @option options [String] :external_url Optional URL for viewing the deployed project in this environment
|
|
43
|
+
# @return [Gitlab::ObjectifiedHash] The updated environment.
|
|
44
|
+
def create_environment(project, env_name, options = {})
|
|
45
|
+
body = { name: env_name }.merge(options)
|
|
46
|
+
post("/projects/#{url_encode project}/environments", body: body)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Update an environment.
|
|
50
|
+
#
|
|
51
|
+
# @examples
|
|
52
|
+
# Gitlab.edit_environment(5, 36, name: 'test-branch')
|
|
53
|
+
# Gitlab.edit_environment(5, 36, external_url: 'https://test-branch.example.host.com')
|
|
54
|
+
#
|
|
55
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
56
|
+
# @param [Integer] id The ID of an environment.
|
|
57
|
+
# @param [Hash] options A hash of the attribute keys & values to update.
|
|
58
|
+
# @option options [String] env_name Name for the environment
|
|
59
|
+
# @option options [String] external_url Optional URL for viewing the deployed project in this environment
|
|
60
|
+
# @return [Gitlab::ObjectifiedHash] The updated environment.
|
|
61
|
+
def edit_environment(project, id, options = {})
|
|
62
|
+
put("/projects/#{url_encode project}/environments/#{id}", body: options)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Deletes an environment.
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# Gitlab.delete_environment(5, 36)
|
|
69
|
+
#
|
|
70
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
71
|
+
# @param [Integer] id The ID of an environment.
|
|
72
|
+
# @return [Gitlab::ObjectifiedHash] Information about the deleted environment.
|
|
73
|
+
def delete_environment(project, id)
|
|
74
|
+
delete("/projects/#{url_encode project}/environments/#{id}")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Stop an environment.
|
|
78
|
+
#
|
|
79
|
+
# @example
|
|
80
|
+
# Gitlab.stop_environment(5, 36)
|
|
81
|
+
#
|
|
82
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
83
|
+
# @param [Integer] id The ID of an environment.
|
|
84
|
+
# @return [Array<Gitlab::ObjectifiedHash>] The stopped environment.
|
|
85
|
+
def stop_environment(project, id)
|
|
86
|
+
post("/projects/#{url_encode project}/environments/#{id}/stop")
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to issues.
|
|
5
|
+
# @see https://docs.gitlab.com/ee/api/epic_issues.html
|
|
6
|
+
module EpicIssues
|
|
7
|
+
# List issues for an epic.
|
|
8
|
+
# Gets all issues that are assigned to an epic and the authenticated user has access to..
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.epic_issues(5, 7)
|
|
11
|
+
# Gitlab.epic_issues(5, 7, { per_page: 40 })
|
|
12
|
+
#
|
|
13
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
14
|
+
# @param [Integer] epic The iid of an epic.
|
|
15
|
+
# @param [Hash] options A customizable set of options.
|
|
16
|
+
# @option options [Integer] :page The page number.
|
|
17
|
+
# @option options [Integer] :per_page The number of results per page.
|
|
18
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
19
|
+
def epic_issues(group, epic, options = {})
|
|
20
|
+
get("/groups/#{url_encode group}/epics/#{epic}/issues", query: options)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to Epics.
|
|
5
|
+
# @see https://docs.gitlab.com/ee/api/epics.html
|
|
6
|
+
module Epics
|
|
7
|
+
# Gets a list of epics.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.epics(123)
|
|
11
|
+
# Gitlab.epics(123, { per_page: 40, page: 2 })
|
|
12
|
+
#
|
|
13
|
+
# @param [Integer] group_id The ID of a group.
|
|
14
|
+
# @param [Hash] options A customizable set of options.
|
|
15
|
+
# @option options [Integer] :page The page number.
|
|
16
|
+
# @option options [Integer] :per_page The number of results per page.
|
|
17
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
18
|
+
def epics(group_id, options = {})
|
|
19
|
+
get("/groups/#{group_id}/epics", query: options)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Gets a single epic.
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Gitlab.epic(123, 1)
|
|
26
|
+
#
|
|
27
|
+
# @param [Integer] group_id The ID of a group.
|
|
28
|
+
# @param [Integer] epic_iid The ID of a epic.
|
|
29
|
+
# @param [Hash] options A customizable set of options.
|
|
30
|
+
# @return [Gitlab::ObjectifiedHash]
|
|
31
|
+
def epic(group_id, epic_iid, options = {})
|
|
32
|
+
get("/groups/#{group_id}/epics/#{epic_iid}", query: options)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Creates a new epic.
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Gitlab.create_epic(123, "My new epic title")
|
|
39
|
+
#
|
|
40
|
+
# @param [Integer] group_id The ID of a group.
|
|
41
|
+
# @param [String] title
|
|
42
|
+
# @param [Hash] options A customizable set of options.
|
|
43
|
+
# @return [Gitlab::ObjectifiedHash] Information about created epic.
|
|
44
|
+
def create_epic(group_id, title, options = {})
|
|
45
|
+
body = options.merge(title: title)
|
|
46
|
+
post("/groups/#{group_id}/epics", body: body)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Deletes an epic.
|
|
50
|
+
#
|
|
51
|
+
# @example
|
|
52
|
+
# Gitlab.delete_epic(42, 123)
|
|
53
|
+
# @param [Integer] group_id The ID of a group.
|
|
54
|
+
# @param [Integer] epic_iid The IID of an epic.
|
|
55
|
+
def delete_epic(group_id, epic_iid)
|
|
56
|
+
delete("/groups/#{group_id}/epics/#{epic_iid}")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Updates an existing epic.
|
|
60
|
+
#
|
|
61
|
+
# @example
|
|
62
|
+
# Gitlab.edit_epic(42)
|
|
63
|
+
# Gitlab.edit_epic(42, 123, { title: 'New epic title' })
|
|
64
|
+
#
|
|
65
|
+
# @param [Integer] group_id The ID.
|
|
66
|
+
# @param [Integer] epic_iid The IID of an epic.
|
|
67
|
+
# @param [Hash] options A customizable set of options
|
|
68
|
+
# @return [Gitlab::ObjectifiedHash] Information about the edited epic.
|
|
69
|
+
def edit_epic(group_id, epic_iid, options = {})
|
|
70
|
+
put("/groups/#{group_id}/epics/#{epic_iid}", body: options)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to events.
|
|
5
|
+
# @see https://docs.gitlab.com/ce/api/events.html
|
|
6
|
+
module Events
|
|
7
|
+
# Gets a list of authenticated user's events
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.events()
|
|
11
|
+
# Gitlab.events({ action: 'created', target_type: 'issue' })
|
|
12
|
+
#
|
|
13
|
+
# @param [Hash] options A customizable set of options.
|
|
14
|
+
# @option options [String] :action Only events of specific action type
|
|
15
|
+
# @option options [String] :target_type Only events of specific target type
|
|
16
|
+
# @option options [String] :before Only events created before YYYY-MM-DD
|
|
17
|
+
# @option options [String] :after Only events created after YYYY-MM-DD
|
|
18
|
+
# @option options [String] :sort Sort by created_at either 'asc' or 'desc'
|
|
19
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
20
|
+
def events(options = {})
|
|
21
|
+
get('/events', query: options)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Gets a list of user contribution events
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# Gitlab.user_events(1)
|
|
28
|
+
# Gitlab.user_events(1, { action: created})
|
|
29
|
+
#
|
|
30
|
+
# @param [Integer, String] user The ID or username of user
|
|
31
|
+
# @param [Hash] options A customizable set of options.
|
|
32
|
+
# @option options [String] :action Only events of specific action type
|
|
33
|
+
# @option options [String] :target_type Only events of specific target type
|
|
34
|
+
# @option options [String] :before Only events created before YYYY-MM-DD
|
|
35
|
+
# @option options [String] :after Only events created after YYYY-MM-DD
|
|
36
|
+
# @option options [String] :sort Sort by created_at either 'asc' or 'desc'
|
|
37
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
38
|
+
def user_events(user, options = {})
|
|
39
|
+
get("/users/#{url_encode user}/events", query: options)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Gets a list of visible project events
|
|
43
|
+
#
|
|
44
|
+
# @example
|
|
45
|
+
# Gitlab.project_events(1)
|
|
46
|
+
# Gitlab.project_events(1, { action: created })
|
|
47
|
+
#
|
|
48
|
+
# @param [Integer] project The ID of project
|
|
49
|
+
# @param [Hash] options A customizable set of options.
|
|
50
|
+
# @option options [String] :action Only events of specific action type
|
|
51
|
+
# @option options [String] :target_type Only events of specific target type
|
|
52
|
+
# @option options [String] :before Only events created before YYYY-MM-DD
|
|
53
|
+
# @option options [String] :after Only events created after YYYY-MM-DD
|
|
54
|
+
# @option options [String] :sort Sort by created_at either 'asc' or 'desc'
|
|
55
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
56
|
+
def project_events(project, options = {})
|
|
57
|
+
get("/projects/#{url_encode project}/events", query: options)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to feature flags.
|
|
5
|
+
# https://docs.gitlab.com/ce/api/features.html
|
|
6
|
+
module Features
|
|
7
|
+
# Get a list of all persisted features, with its gate values.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.features
|
|
11
|
+
#
|
|
12
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
13
|
+
def features
|
|
14
|
+
get('/features')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Set a features gate value.
|
|
18
|
+
# If a feature with the given name does not exist yet it will be created. The value can be a boolean, or an integer to indicate percentage of time.
|
|
19
|
+
#
|
|
20
|
+
# @example
|
|
21
|
+
# Gitlab.set_feature('new_library', true)
|
|
22
|
+
# Gitlab.set_feature('new_library', 8)
|
|
23
|
+
# Gitlab.set_feature('new_library', true, {user: 'gitlab'})
|
|
24
|
+
#
|
|
25
|
+
# @param [String] name(required) Name of the feature to create or update
|
|
26
|
+
# @param [String, Integer] value(required) true or false to enable/disable, or an integer for percentage of time
|
|
27
|
+
# @param [Hash] options A customizable set of options.
|
|
28
|
+
# @option options [String] :feature_group(optional) A Feature group name
|
|
29
|
+
# @option options [String] :user(optional) A GitLab username
|
|
30
|
+
# @option options [String] :project(optional) A projects path, for example "gitlab-org/gitlab-ce"
|
|
31
|
+
# @return [Gitlab::ObjectifiedHash] Information about the set/created/updated feature.
|
|
32
|
+
def set_feature(name, value, options = {})
|
|
33
|
+
body = { value: value }.merge(options)
|
|
34
|
+
post("/features/#{name}", body: body)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Delete a feature.
|
|
38
|
+
#
|
|
39
|
+
# @example
|
|
40
|
+
# Gitlab.delete_feature('new_library')
|
|
41
|
+
#
|
|
42
|
+
# @param [String] name Name of the feature to delete
|
|
43
|
+
# @return [void] This API call returns an empty response body.
|
|
44
|
+
def delete_feature(name)
|
|
45
|
+
delete("/features/#{name}")
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to group badges.
|
|
5
|
+
# @see https://docs.gitlab.com/ee/api/group_badges.html
|
|
6
|
+
module GroupBadges
|
|
7
|
+
# Gets a list of a groups badges.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.group_badges(5)
|
|
11
|
+
# Gitlab.group_badges(5, 'Coverage')
|
|
12
|
+
#
|
|
13
|
+
# @param [Integer, String] group(required) The ID or URL-encoded path of the group owned by the authenticated user.
|
|
14
|
+
# @param [String] name(optional) Name of the badges to return (case-sensitive).
|
|
15
|
+
# @return [Array<Gitlab::ObjectifiedHash>] List of all badges of a group
|
|
16
|
+
def group_badges(group, name = nil)
|
|
17
|
+
query = { name: name } if name
|
|
18
|
+
get("/groups/#{url_encode group}/badges", query: query)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Gets a badge of a group.
|
|
22
|
+
#
|
|
23
|
+
# @example
|
|
24
|
+
# Gitlab.group_badge(5, 42)
|
|
25
|
+
#
|
|
26
|
+
# @param [Integer, String] group(required) The ID or URL-encoded path of the group owned by the authenticated user.
|
|
27
|
+
# @param [Integer] badge_id(required) The badge ID.
|
|
28
|
+
# @return [Gitlab::ObjectifiedHash] Information about the requested badge
|
|
29
|
+
def group_badge(group, badge_id)
|
|
30
|
+
get("/groups/#{url_encode group}/badges/#{badge_id}")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Adds a badge to a group.
|
|
34
|
+
#
|
|
35
|
+
# @example
|
|
36
|
+
# Gitlab.add_group_badge(5, { link_url: 'https://abc.com/gitlab/gitlab-ce/commits/master', image_url: 'https://shields.io/my/badge1' })
|
|
37
|
+
#
|
|
38
|
+
# @param [Integer, String] group(required) The ID or URL-encoded path of the group owned by the authenticated user.
|
|
39
|
+
# @param [Hash] options A customizable set of options.
|
|
40
|
+
# @option options [String] :link_url(required) URL of the badge link
|
|
41
|
+
# @option options [String] :image_url(required) URL of the badge image
|
|
42
|
+
# @return [Gitlab::ObjectifiedHash] Information about the added group badge.
|
|
43
|
+
def add_group_badge(group, options = {})
|
|
44
|
+
post("/groups/#{url_encode group}/badges", body: options)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Updates a badge of a group.
|
|
48
|
+
#
|
|
49
|
+
# @example
|
|
50
|
+
# Gitlab.edit_group_badge(5, 1, { link_url: 'https://abc.com/gitlab/gitlab-ce/commits/master', image_url: 'https://shields.io/my/badge1' })
|
|
51
|
+
#
|
|
52
|
+
# @param [Integer, String] group(required) The ID or URL-encoded path of the group owned by the authenticated user.
|
|
53
|
+
# @param [Integer] badge_id(required) The badge ID.
|
|
54
|
+
# @param [Hash] options A customizable set of options.
|
|
55
|
+
# @option options [String] :link_url(optional) URL of the badge link
|
|
56
|
+
# @option options [String] :image_url(optional) URL of the badge image
|
|
57
|
+
# @return [Gitlab::ObjectifiedHash] Information about the updated group badge.
|
|
58
|
+
def edit_group_badge(group, badge_id, options = {})
|
|
59
|
+
put("/groups/#{url_encode group}/badges/#{badge_id}", body: options)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Removes a badge from a group.
|
|
63
|
+
#
|
|
64
|
+
# @example
|
|
65
|
+
# Gitlab.remove_group_badge(5, 42)
|
|
66
|
+
#
|
|
67
|
+
# @param [Integer, String] group(required) The ID or URL-encoded path of the group owned by the authenticated user.
|
|
68
|
+
# @param [Integer] badge_id(required) The badge ID.
|
|
69
|
+
# @return [nil] This API call returns an empty response body.
|
|
70
|
+
def remove_group_badge(group, badge_id)
|
|
71
|
+
delete("/groups/#{url_encode group}/badges/#{badge_id}")
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Preview a badge from a group.
|
|
75
|
+
#
|
|
76
|
+
# @example
|
|
77
|
+
# Gitlab.preview_group_badge(3, 'https://abc.com/gitlab/gitlab-ce/commits/master', 'https://shields.io/my/badge1')
|
|
78
|
+
#
|
|
79
|
+
# @param [Integer, String] group(required) The ID or URL-encoded path of the group owned by the authenticated user.
|
|
80
|
+
# @param [String] :link_url(required) URL of the badge link
|
|
81
|
+
# @param [String] :image_url(required) URL of the badge image
|
|
82
|
+
# @return [Gitlab::ObjectifiedHash] Returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation.
|
|
83
|
+
def preview_group_badge(group, link_url, image_url)
|
|
84
|
+
query = { link_url: link_url, image_url: image_url }
|
|
85
|
+
get("/groups/#{url_encode group}/badges/render", query: query)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to group issue boards.
|
|
5
|
+
# @see https://docs.gitlab.com/ee/api/group_boards.html
|
|
6
|
+
module GroupBoards
|
|
7
|
+
# Lists Issue Boards in the given group.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.group_boards(5)
|
|
11
|
+
#
|
|
12
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
13
|
+
# @return [Array<Gitlab::ObjectifiedHash>] List of issue boards of the group
|
|
14
|
+
def group_boards(group)
|
|
15
|
+
get("/groups/#{url_encode group}/boards")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Gets a single group issue board.
|
|
19
|
+
#
|
|
20
|
+
# @example
|
|
21
|
+
# Gitlab.group_board(5, 1)
|
|
22
|
+
#
|
|
23
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
24
|
+
# @param [Integer] id The ID of the issue board.
|
|
25
|
+
# @return [Gitlab::ObjectifiedHash] Returns information about a group issue board
|
|
26
|
+
def group_board(group, id)
|
|
27
|
+
get("/groups/#{url_encode group}/boards/#{id}")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Creates a new group issue board.
|
|
31
|
+
#
|
|
32
|
+
# @example
|
|
33
|
+
# Gitlab.create_group_board(5, 'Documentcloud')
|
|
34
|
+
#
|
|
35
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
36
|
+
# @param [String] name The name of the new board.
|
|
37
|
+
# @return [Gitlab::ObjectifiedHash] Information about created group issue board.
|
|
38
|
+
def create_group_board(group, name)
|
|
39
|
+
body = { name: name }
|
|
40
|
+
post("/groups/#{url_encode group}/boards", body: body)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Updates a group issue board.
|
|
44
|
+
#
|
|
45
|
+
# @example
|
|
46
|
+
# Gitlab.edit_group_board(5, 1, { name: 'DocumentCloud2' })
|
|
47
|
+
# Gitlab.edit_group_board(5, 1, { name: 'DocumentCloud2', assignee_id: 3 })
|
|
48
|
+
#
|
|
49
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
50
|
+
# @param [Integer] id The ID of the issue board.
|
|
51
|
+
# @param [Hash] options A customizable set of options.
|
|
52
|
+
# @option options [String] :name(optional) The new name of the board.
|
|
53
|
+
# @option options [Integer] :assignee_id(optional) The assignee the board should be scoped to.
|
|
54
|
+
# @option options [Integer] :milestone_id(optional) The milestone the board should be scoped to.
|
|
55
|
+
# @option options [String] :labels(optional) Comma-separated list of label names which the board should be scoped to.
|
|
56
|
+
# @option options [Integer] :weight(optional) The weight range from 0 to 9, to which the board should be scoped to.
|
|
57
|
+
# @return [Gitlab::ObjectifiedHash] Information about updated group issue board.
|
|
58
|
+
def edit_group_board(group, id, options = {})
|
|
59
|
+
put("/groups/#{url_encode group}/boards/#{id}", body: options)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Deletes a group issue board.
|
|
63
|
+
#
|
|
64
|
+
# @example
|
|
65
|
+
# Gitlab.delete_group_board(5, 1)
|
|
66
|
+
#
|
|
67
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
68
|
+
# @param [Integer] id The ID of the issue board.
|
|
69
|
+
# @return [void] This API call returns an empty response body.
|
|
70
|
+
def delete_group_board(group, id)
|
|
71
|
+
delete("/groups/#{url_encode group}/boards/#{id}")
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Get a list of the boards lists. Does not include open and closed lists
|
|
75
|
+
#
|
|
76
|
+
# @example
|
|
77
|
+
# Gitlab.group_board_lists(5, 1)
|
|
78
|
+
#
|
|
79
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
80
|
+
# @param [Integer] board_id The ID of the group issue board.
|
|
81
|
+
# @return [Array<Gitlab::ObjectifiedHash>] List of boards lists of the group
|
|
82
|
+
def group_board_lists(group, board_id)
|
|
83
|
+
get("/groups/#{url_encode group}/boards/#{board_id}/lists")
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Get a single group issue board list.
|
|
87
|
+
#
|
|
88
|
+
# @example
|
|
89
|
+
# Gitlab.group_board_list(5, 1, 1)
|
|
90
|
+
#
|
|
91
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
92
|
+
# @param [Integer] board_id The ID of the group issue board.
|
|
93
|
+
# @param [Integer] list_id The ID of a boards list.
|
|
94
|
+
# @return [Gitlab::ObjectifiedHash] Returns information about a single group issue board list
|
|
95
|
+
def group_board_list(group, board_id, id)
|
|
96
|
+
get("/groups/#{url_encode group}/boards/#{board_id}/lists/#{id}")
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Creates a new group issue board list.
|
|
100
|
+
#
|
|
101
|
+
# @example
|
|
102
|
+
# Gitlab.create_group_board_list(5, 1)
|
|
103
|
+
#
|
|
104
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
105
|
+
# @param [Integer] board_id The ID of the group issue board.
|
|
106
|
+
# @param [Integer] label_id The ID of a label.
|
|
107
|
+
# @return [Gitlab::ObjectifiedHash] Information about created group issue board list.
|
|
108
|
+
def create_group_board_list(group, board_id, label_id)
|
|
109
|
+
body = { label_id: label_id }
|
|
110
|
+
post("/groups/#{url_encode group}/boards/#{board_id}/lists", body: body)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Updates an existing group issue board list. This call is used to change list position.
|
|
114
|
+
#
|
|
115
|
+
# @example
|
|
116
|
+
# Gitlab.edit_group_board_list(5, 1, 1, { position: 1 })
|
|
117
|
+
#
|
|
118
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
119
|
+
# @param [Integer] board_id The ID of the group issue board.
|
|
120
|
+
# @param [Integer] list_id The ID of a boards list.
|
|
121
|
+
# @param [Hash] options A customizable set of options.
|
|
122
|
+
# @option options [String] :position(required) The position of the list.
|
|
123
|
+
# @return [Gitlab::ObjectifiedHash] Information about updated group issue board list.
|
|
124
|
+
def edit_group_board_list(group, board_id, id, options = {})
|
|
125
|
+
put("/groups/#{url_encode group}/boards/#{board_id}/lists/#{id}", body: options)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Deletes a group issue board list.
|
|
129
|
+
#
|
|
130
|
+
# @example
|
|
131
|
+
# Gitlab.delete_group_board_list(5, 1, 1)
|
|
132
|
+
#
|
|
133
|
+
# @param [Integer, String] group The ID or name of a group.
|
|
134
|
+
# @param [Integer] board_id The ID of the group issue board.
|
|
135
|
+
# @param [Integer] list_id The ID of a boards list.
|
|
136
|
+
# @return [void] This API call returns an empty response body.
|
|
137
|
+
def delete_group_board_list(group, board_id, id)
|
|
138
|
+
delete("/groups/#{url_encode group}/boards/#{board_id}/lists/#{id}")
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|