gitlab 4.2.0 → 4.18.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 +5 -5
- data/CHANGELOG.md +4 -2
- data/LICENSE.txt +1 -1
- data/README.md +96 -25
- data/exe/gitlab +5 -1
- data/lib/gitlab/api.rb +8 -3
- data/lib/gitlab/cli.rb +15 -15
- data/lib/gitlab/cli_helpers.rb +63 -61
- 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 +5 -3
- data/lib/gitlab/client/boards.rb +62 -4
- data/lib/gitlab/client/branches.rb +53 -14
- data/lib/gitlab/client/broadcast_messages.rb +75 -0
- data/lib/gitlab/client/build_variables.rb +78 -9
- data/lib/gitlab/client/builds.rb +13 -11
- data/lib/gitlab/client/commits.rb +89 -19
- data/lib/gitlab/client/container_registry.rb +85 -0
- data/lib/gitlab/client/deployments.rb +34 -0
- data/lib/gitlab/client/environments.rb +5 -3
- 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 +197 -17
- data/lib/gitlab/client/issue_links.rb +48 -0
- data/lib/gitlab/client/issues.rb +98 -4
- data/lib/gitlab/client/jobs.rb +96 -8
- data/lib/gitlab/client/keys.rb +13 -0
- data/lib/gitlab/client/labels.rb +7 -5
- 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 +237 -9
- data/lib/gitlab/client/milestones.rb +19 -5
- data/lib/gitlab/client/namespaces.rb +4 -2
- data/lib/gitlab/client/notes.rb +58 -12
- data/lib/gitlab/client/pipeline_schedules.rb +147 -0
- data/lib/gitlab/client/pipeline_triggers.rb +12 -10
- data/lib/gitlab/client/pipelines.rb +40 -3
- data/lib/gitlab/client/project_badges.rb +85 -0
- data/lib/gitlab/client/project_clusters.rb +83 -0
- data/lib/gitlab/client/project_release_links.rb +76 -0
- data/lib/gitlab/client/project_releases.rb +79 -0
- data/lib/gitlab/client/projects.rb +280 -47
- data/lib/gitlab/client/protected_tags.rb +59 -0
- data/lib/gitlab/client/remote_mirrors.rb +51 -0
- data/lib/gitlab/client/repositories.rb +60 -6
- data/lib/gitlab/client/repository_files.rb +23 -5
- 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 +111 -15
- data/lib/gitlab/client/search.rb +66 -0
- data/lib/gitlab/client/services.rb +4 -1
- data/lib/gitlab/client/sidekiq.rb +39 -0
- data/lib/gitlab/client/snippets.rb +8 -4
- data/lib/gitlab/client/system_hooks.rb +9 -7
- data/lib/gitlab/client/tags.rb +15 -14
- data/lib/gitlab/client/templates.rb +100 -0
- data/lib/gitlab/client/todos.rb +7 -5
- data/lib/gitlab/client/user_snippets.rb +114 -0
- data/lib/gitlab/client/users.rb +166 -30
- data/lib/gitlab/client/versions.rb +18 -0
- data/lib/gitlab/client/wikis.rb +79 -0
- data/lib/gitlab/client.rb +49 -12
- data/lib/gitlab/configuration.rb +8 -6
- data/lib/gitlab/error.rb +74 -5
- data/lib/gitlab/file_response.rb +5 -3
- data/lib/gitlab/help.rb +19 -20
- data/lib/gitlab/objectified_hash.rb +27 -10
- data/lib/gitlab/page_links.rb +11 -9
- data/lib/gitlab/paginated_response.rb +37 -24
- data/lib/gitlab/request.rb +42 -53
- data/lib/gitlab/shell.rb +11 -12
- data/lib/gitlab/shell_history.rb +11 -13
- data/lib/gitlab/version.rb +3 -1
- data/lib/gitlab.rb +19 -8
- metadata +50 -395
- data/.gitignore +0 -22
- data/.travis.yml +0 -8
- data/CONTRIBUTING.md +0 -195
- data/Gemfile +0 -4
- data/Rakefile +0 -9
- data/bin/console +0 -10
- data/bin/setup +0 -6
- data/gitlab.gemspec +0 -31
- data/spec/fixtures/board_list.json +0 -1
- data/spec/fixtures/board_lists.json +0 -1
- data/spec/fixtures/boards.json +0 -1
- data/spec/fixtures/branch.json +0 -1
- data/spec/fixtures/branch_delete.json +0 -3
- data/spec/fixtures/branches.json +0 -1
- data/spec/fixtures/build.json +0 -38
- data/spec/fixtures/build_artifacts.json +0 -0
- data/spec/fixtures/build_cancel.json +0 -24
- data/spec/fixtures/build_erase.json +0 -24
- data/spec/fixtures/build_retry.json +0 -24
- data/spec/fixtures/builds.json +0 -78
- data/spec/fixtures/builds_commits.json +0 -64
- data/spec/fixtures/compare_merge_request_diff.json +0 -31
- data/spec/fixtures/empty.json +0 -0
- data/spec/fixtures/environment.json +0 -6
- data/spec/fixtures/environments.json +0 -14
- data/spec/fixtures/error_already_exists.json +0 -1
- data/spec/fixtures/error_project_not_found.json +0 -1
- data/spec/fixtures/get_repository_file.json +0 -1
- data/spec/fixtures/group.json +0 -60
- data/spec/fixtures/group_create.json +0 -1
- data/spec/fixtures/group_create_with_description.json +0 -1
- data/spec/fixtures/group_delete.json +0 -1
- data/spec/fixtures/group_member.json +0 -1
- data/spec/fixtures/group_member_delete.json +0 -1
- data/spec/fixtures/group_member_edit.json +0 -1
- data/spec/fixtures/group_members.json +0 -1
- data/spec/fixtures/group_projects.json +0 -44
- data/spec/fixtures/group_search.json +0 -2
- data/spec/fixtures/groups.json +0 -2
- data/spec/fixtures/issue.json +0 -1
- data/spec/fixtures/issue_award_emoji.json +0 -16
- data/spec/fixtures/issue_award_emojis.json +0 -34
- data/spec/fixtures/issues.json +0 -1
- data/spec/fixtures/job.json +0 -43
- data/spec/fixtures/job_trace.json +0 -1
- data/spec/fixtures/jobs.json +0 -91
- data/spec/fixtures/key.json +0 -1
- data/spec/fixtures/keys.json +0 -1
- data/spec/fixtures/label.json +0 -1
- data/spec/fixtures/label_unsubscribe.json +0 -1
- data/spec/fixtures/labels.json +0 -1
- data/spec/fixtures/merge_request.json +0 -1
- data/spec/fixtures/merge_request_award_emoji.json +0 -16
- data/spec/fixtures/merge_request_award_emojis.json +0 -34
- data/spec/fixtures/merge_request_changes.json +0 -1
- data/spec/fixtures/merge_request_closes_issues.json +0 -1
- data/spec/fixtures/merge_request_comment.json +0 -1
- data/spec/fixtures/merge_request_comments.json +0 -1
- data/spec/fixtures/merge_request_commits.json +0 -1
- data/spec/fixtures/merge_requests.json +0 -1
- data/spec/fixtures/milestone.json +0 -1
- data/spec/fixtures/milestone_issues.json +0 -1
- data/spec/fixtures/milestone_merge_requests.json +0 -1
- data/spec/fixtures/milestones.json +0 -1
- data/spec/fixtures/namespaces.json +0 -1
- data/spec/fixtures/note.json +0 -1
- data/spec/fixtures/note_award_emoji.json +0 -16
- data/spec/fixtures/note_award_emojis.json +0 -18
- data/spec/fixtures/notes.json +0 -1
- data/spec/fixtures/pipeline.json +0 -23
- data/spec/fixtures/pipeline_cancel.json +0 -23
- data/spec/fixtures/pipeline_create.json +0 -23
- data/spec/fixtures/pipeline_jobs.json +0 -91
- data/spec/fixtures/pipeline_retry.json +0 -23
- data/spec/fixtures/pipelines.json +0 -48
- data/spec/fixtures/project.json +0 -1
- data/spec/fixtures/project_commit.json +0 -13
- data/spec/fixtures/project_commit_comment.json +0 -1
- data/spec/fixtures/project_commit_comments.json +0 -1
- data/spec/fixtures/project_commit_create.json +0 -22
- data/spec/fixtures/project_commit_diff.json +0 -10
- data/spec/fixtures/project_commit_status.json +0 -42
- data/spec/fixtures/project_commits.json +0 -1
- data/spec/fixtures/project_edit.json +0 -21
- data/spec/fixtures/project_events.json +0 -1
- data/spec/fixtures/project_for_user.json +0 -1
- data/spec/fixtures/project_fork.json +0 -50
- data/spec/fixtures/project_fork_link.json +0 -1
- data/spec/fixtures/project_forked_for_user.json +0 -50
- data/spec/fixtures/project_hook.json +0 -1
- data/spec/fixtures/project_hooks.json +0 -1
- data/spec/fixtures/project_issues.json +0 -1
- data/spec/fixtures/project_key.json +0 -6
- data/spec/fixtures/project_keys.json +0 -6
- data/spec/fixtures/project_runner_enable.json +0 -7
- data/spec/fixtures/project_runners.json +0 -16
- data/spec/fixtures/project_search.json +0 -1
- data/spec/fixtures/project_star.json +0 -44
- data/spec/fixtures/project_tag_annotated.json +0 -1
- data/spec/fixtures/project_tag_lightweight.json +0 -1
- data/spec/fixtures/project_tags.json +0 -1
- data/spec/fixtures/project_unstar.json +0 -44
- data/spec/fixtures/project_update_commit_status.json +0 -20
- data/spec/fixtures/projects.json +0 -1
- data/spec/fixtures/push_rule.json +0 -1
- data/spec/fixtures/raw_file.json +0 -2
- data/spec/fixtures/release_create.json +0 -1
- data/spec/fixtures/release_update.json +0 -1
- data/spec/fixtures/repository_file.json +0 -1
- data/spec/fixtures/run_trigger.json +0 -1
- data/spec/fixtures/runner.json +0 -26
- data/spec/fixtures/runner_delete.json +0 -7
- data/spec/fixtures/runner_edit.json +0 -26
- data/spec/fixtures/runners.json +0 -16
- data/spec/fixtures/runners_all.json +0 -30
- data/spec/fixtures/service.json +0 -1
- data/spec/fixtures/session.json +0 -1
- data/spec/fixtures/shell_history.json +0 -2
- data/spec/fixtures/snippet.json +0 -1
- data/spec/fixtures/snippet_award_emoji.json +0 -16
- data/spec/fixtures/snippet_award_emojis.json +0 -34
- data/spec/fixtures/snippet_content.json +0 -3
- data/spec/fixtures/snippets.json +0 -1
- data/spec/fixtures/system_hook.json +0 -1
- data/spec/fixtures/system_hooks.json +0 -1
- data/spec/fixtures/tag.json +0 -1
- data/spec/fixtures/tag_create.json +0 -1
- data/spec/fixtures/tag_create_with_description.json +0 -1
- data/spec/fixtures/tag_delete.json +0 -1
- data/spec/fixtures/tags.json +0 -1
- data/spec/fixtures/team_member.json +0 -1
- data/spec/fixtures/team_members.json +0 -1
- data/spec/fixtures/todo.json +0 -73
- data/spec/fixtures/todos.json +0 -148
- data/spec/fixtures/tree.json +0 -1
- data/spec/fixtures/trigger.json +0 -10
- data/spec/fixtures/triggers.json +0 -12
- data/spec/fixtures/user.json +0 -1
- data/spec/fixtures/user_block_unblock.json +0 -1
- data/spec/fixtures/user_email.json +0 -1
- data/spec/fixtures/user_emails.json +0 -1
- data/spec/fixtures/user_search.json +0 -1
- data/spec/fixtures/users.json +0 -1
- data/spec/fixtures/variable.json +0 -4
- data/spec/fixtures/variables.json +0 -10
- data/spec/gitlab/cli_helpers_spec.rb +0 -57
- data/spec/gitlab/cli_spec.rb +0 -119
- data/spec/gitlab/client/award_emojis_spec.rb +0 -391
- data/spec/gitlab/client/boards_spec.rb +0 -94
- data/spec/gitlab/client/branches_spec.rb +0 -116
- data/spec/gitlab/client/build_variables_spec.rb +0 -86
- data/spec/gitlab/client/builds_spec.rb +0 -148
- data/spec/gitlab/client/client_spec.rb +0 -11
- data/spec/gitlab/client/commits_spec.rb +0 -168
- data/spec/gitlab/client/environments_spec.rb +0 -132
- data/spec/gitlab/client/groups_spec.rb +0 -195
- data/spec/gitlab/client/issues_spec.rb +0 -186
- data/spec/gitlab/client/jobs_spec.rb +0 -135
- data/spec/gitlab/client/keys_spec.rb +0 -19
- data/spec/gitlab/client/labels_spec.rb +0 -100
- data/spec/gitlab/client/merge_requests_spec.rb +0 -224
- data/spec/gitlab/client/milestones_spec.rb +0 -98
- data/spec/gitlab/client/namespaces_spec.rb +0 -22
- data/spec/gitlab/client/notes_spec.rb +0 -333
- data/spec/gitlab/client/pipeline_triggers_spec.rb +0 -157
- data/spec/gitlab/client/pipelines_spec.rb +0 -95
- data/spec/gitlab/client/projects_spec.rb +0 -613
- data/spec/gitlab/client/repositories_spec.rb +0 -94
- data/spec/gitlab/client/repository_files_spec.rb +0 -95
- data/spec/gitlab/client/runners_spec.rb +0 -185
- data/spec/gitlab/client/services_spec.rb +0 -55
- data/spec/gitlab/client/snippets_spec.rb +0 -100
- data/spec/gitlab/client/system_hooks_spec.rb +0 -69
- data/spec/gitlab/client/tags_spec.rb +0 -109
- data/spec/gitlab/client/todos_spec.rb +0 -45
- data/spec/gitlab/client/users_spec.rb +0 -418
- data/spec/gitlab/error_spec.rb +0 -45
- data/spec/gitlab/file_response_spec.rb +0 -33
- data/spec/gitlab/help_spec.rb +0 -46
- data/spec/gitlab/objectified_hash_spec.rb +0 -48
- data/spec/gitlab/page_links_spec.rb +0 -16
- data/spec/gitlab/paginated_response_spec.rb +0 -60
- data/spec/gitlab/request_spec.rb +0 -73
- data/spec/gitlab/shell_history_spec.rb +0 -53
- data/spec/gitlab/shell_spec.rb +0 -80
- data/spec/gitlab_spec.rb +0 -97
- data/spec/spec_helper.rb +0 -74
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to Award Emojis.
|
|
5
|
+
# @see https://docs.gitlab.com/ce/api/access_requests.html
|
|
6
|
+
module AccessRequests
|
|
7
|
+
# Gets a list of access requests for a project viewable by the authenticated user.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.project_access_requests(1)
|
|
11
|
+
#
|
|
12
|
+
# @param [Integer, String] :project(required) The ID or name of a project.
|
|
13
|
+
# @return [Array<Gitlab::ObjectifiedHash>] List of project access requests
|
|
14
|
+
def project_access_requests(project)
|
|
15
|
+
get("/projects/#{url_encode project}/access_requests")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Gets a list of access requests for a group viewable by the authenticated user.
|
|
19
|
+
#
|
|
20
|
+
# @example
|
|
21
|
+
# Gitlab.group_access_requests(1)
|
|
22
|
+
#
|
|
23
|
+
# @param [Integer, String] :group(required) The ID or name of a group.
|
|
24
|
+
# @return [Array<Gitlab::ObjectifiedHash>] List of group access requests
|
|
25
|
+
def group_access_requests(group)
|
|
26
|
+
get("/groups/#{url_encode group}/access_requests")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Requests access for the authenticated user to a project.
|
|
30
|
+
#
|
|
31
|
+
# @example
|
|
32
|
+
# Gitlab.request_project_access(1)
|
|
33
|
+
#
|
|
34
|
+
# @param [Integer, String] :project(required) The ID or name of a project.
|
|
35
|
+
# @return <Gitlab::ObjectifiedHash] Information about the requested project access
|
|
36
|
+
def request_project_access(project)
|
|
37
|
+
post("/projects/#{url_encode project}/access_requests")
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Requests access for the authenticated user to a group.
|
|
41
|
+
#
|
|
42
|
+
# @example
|
|
43
|
+
# Gitlab.request_group_access(1)
|
|
44
|
+
#
|
|
45
|
+
# @param [Integer, String] :group(required) The ID or name of a group.
|
|
46
|
+
# @return <Gitlab::ObjectifiedHash] Information about the requested group access
|
|
47
|
+
def request_group_access(group)
|
|
48
|
+
post("/groups/#{url_encode group}/access_requests")
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Approves a project access request for the given user.
|
|
52
|
+
#
|
|
53
|
+
# @example
|
|
54
|
+
# Gitlab.approve_project_access_request(1, 1)
|
|
55
|
+
# Gitlab.approve_project_access_request(1, 1, {access_level: '30'})
|
|
56
|
+
#
|
|
57
|
+
# @param [Integer, String] :project(required) The ID or name of a project.
|
|
58
|
+
# @param [Integer] :user_id(required) The user ID of the access requester
|
|
59
|
+
# @option options [Integer] :access_level(optional) A valid access level (defaults: 30, developer access level)
|
|
60
|
+
# @return <Gitlab::ObjectifiedHash] Information about the approved project access request
|
|
61
|
+
def approve_project_access_request(project, user_id, options = {})
|
|
62
|
+
put("/projects/#{url_encode project}/access_requests/#{user_id}/approve", body: options)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Approves a group access request for the given user.
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# Gitlab.approve_group_access_request(1, 1)
|
|
69
|
+
# Gitlab.approve_group_access_request(1, 1, {access_level: '30'})
|
|
70
|
+
#
|
|
71
|
+
# @param [Integer, String] :group(required) The ID or name of a group.
|
|
72
|
+
# @param [Integer] :user_id(required) The user ID of the access requester
|
|
73
|
+
# @option options [Integer] :access_level(optional) A valid access level (defaults: 30, developer access level)
|
|
74
|
+
# @return <Gitlab::ObjectifiedHash] Information about the approved group access request
|
|
75
|
+
def approve_group_access_request(group, user_id, options = {})
|
|
76
|
+
put("/groups/#{url_encode group}/access_requests/#{user_id}/approve", body: options)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Denies a project access request for the given user.
|
|
80
|
+
#
|
|
81
|
+
# @example
|
|
82
|
+
# Gitlab.deny_project_access_request(1, 1)
|
|
83
|
+
#
|
|
84
|
+
# @param [Integer, String] :project(required) The ID or name of a project.
|
|
85
|
+
# @param [Integer] :user_id(required) The user ID of the access requester
|
|
86
|
+
# @return [void] This API call returns an empty response body.
|
|
87
|
+
def deny_project_access_request(project, user_id)
|
|
88
|
+
delete("/projects/#{url_encode project}/access_requests/#{user_id}")
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Denies a group access request for the given user.
|
|
92
|
+
#
|
|
93
|
+
# @example
|
|
94
|
+
# Gitlab.deny_group_access_request(1, 1)
|
|
95
|
+
#
|
|
96
|
+
# @param [Integer, String] :group(required) The ID or name of a group.
|
|
97
|
+
# @param [Integer] :user_id(required) The user ID of the access requester
|
|
98
|
+
# @return [void] This API call returns an empty response body.
|
|
99
|
+
def deny_group_access_request(group, user_id)
|
|
100
|
+
delete("/groups/#{url_encode group}/access_requests/#{user_id}")
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to application settings.
|
|
5
|
+
# @see https://docs.gitlab.com/ee/api/settings.html
|
|
6
|
+
module ApplicationSettings
|
|
7
|
+
# Retrives the application settings of Gitlab.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.application_settings
|
|
11
|
+
#
|
|
12
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
13
|
+
def application_settings
|
|
14
|
+
get('/application/settings')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Edit the applications settings of Gitlab.
|
|
18
|
+
#
|
|
19
|
+
# @example
|
|
20
|
+
# Gitlab.edit_application_settings({ signup_enabled: false })
|
|
21
|
+
#
|
|
22
|
+
# @param [Hash] options A customizable set of options.
|
|
23
|
+
# @option options [String] :admin_notification_email
|
|
24
|
+
# @option options [String] :after_sign_out_path
|
|
25
|
+
# @option options [String] :after_sign_up_text
|
|
26
|
+
# @option options [String] :akismet_api_key
|
|
27
|
+
# @option options [Boolean] :akismet_enabled
|
|
28
|
+
# @option options [Boolean] :allow_group_owners_to_manage_ldap
|
|
29
|
+
# @option options [Boolean] :allow_local_requests_from_hooks_and_services
|
|
30
|
+
# @option options [Boolean] :authorized_keys_enabled
|
|
31
|
+
# @option options [String] :auto_devops_domain
|
|
32
|
+
# @option options [Boolean] :auto_devops_enabled
|
|
33
|
+
# @option options [Boolean] :check_namespace_plan
|
|
34
|
+
# @option options [String] :clientside_sentry_dsn
|
|
35
|
+
# @option options [Boolean] :clientside_sentry_enabled
|
|
36
|
+
# @option options [Integer] :container_registry_token_expire_delay
|
|
37
|
+
# @option options [String] :default_artifacts_expire_in
|
|
38
|
+
# @option options [Integer] :default_branch_protection
|
|
39
|
+
# @option options [String] :default_group_visibility
|
|
40
|
+
# @option options [String] :default_project_visibility
|
|
41
|
+
# @option options [Integer] :default_projects_limit
|
|
42
|
+
# @option options [String] :default_snippet_visibility
|
|
43
|
+
# @option options [Array<String>] :disabled_oauth_sign_in_sources
|
|
44
|
+
# @option options [Array<String>] :domain_blacklist
|
|
45
|
+
# @option options [Boolean] :domain_blacklist_enabled
|
|
46
|
+
# @option options [Array<String>] :domain_whitelist
|
|
47
|
+
# @option options [Integer] :dsa_key_restriction
|
|
48
|
+
# @option options [Integer] :ecdsa_key_restriction
|
|
49
|
+
# @option options [Integer] :ed25519_key_restriction
|
|
50
|
+
# @option options [Boolean] :elasticsearch_aws
|
|
51
|
+
# @option options [String] :elasticsearch_aws_access_key
|
|
52
|
+
# @option options [String] :elasticsearch_aws_region
|
|
53
|
+
# @option options [String] :elasticsearch_aws_secret_access_key
|
|
54
|
+
# @option options [Boolean] :elasticsearch_experimental_indexer
|
|
55
|
+
# @option options [Boolean] :elasticsearch_indexing
|
|
56
|
+
# @option options [Boolean] :elasticsearch_search
|
|
57
|
+
# @option options [String] :elasticsearch_url
|
|
58
|
+
# @option options [Boolean] :elasticsearch_limit_indexing
|
|
59
|
+
# @option options [Array<Integer>] :elasticsearch_project_ids
|
|
60
|
+
# @option options [Array<Integer>] :elasticsearch_namespace_ids
|
|
61
|
+
# @option options [String] :email_additional_text
|
|
62
|
+
# @option options [Boolean] :email_author_in_body
|
|
63
|
+
# @option options [String] :enabled_git_access_protocol
|
|
64
|
+
# @option options [Boolean] :enforce_terms
|
|
65
|
+
# @option options [String] :external_auth_client_cert
|
|
66
|
+
# @option options [String] :external_auth_client_key
|
|
67
|
+
# @option options [String] :external_auth_client_key_pass
|
|
68
|
+
# @option options [Boolean] :external_authorization_service_enabled
|
|
69
|
+
# @option options [String] :external_authorization_service_default_label
|
|
70
|
+
# @option options [Float] :external_authorization_service_timeout float
|
|
71
|
+
# @option options [String] :external_authorization_service_url
|
|
72
|
+
# @option options [Integer] :file_template_project_id
|
|
73
|
+
# @option options [Integer] :first_day_of_week
|
|
74
|
+
# @option options [Integer] :geo_status_timeout
|
|
75
|
+
# @option options [Integer] :gitaly_timeout_default
|
|
76
|
+
# @option options [Integer] :gitaly_timeout_fast
|
|
77
|
+
# @option options [Integer] :gitaly_timeout_medium
|
|
78
|
+
# @option options [Boolean] :gravatar_enabled
|
|
79
|
+
# @option options [Boolean] :hashed_storage_enabled
|
|
80
|
+
# @option options [Boolean] :help_page_hide_commercial_content
|
|
81
|
+
# @option options [String] :help_page_support_url
|
|
82
|
+
# @option options [String] :help_page_text
|
|
83
|
+
# @option options [String] :help_text
|
|
84
|
+
# @option options [Boolean] :hide_third_party_offers
|
|
85
|
+
# @option options [String] :home_page_url
|
|
86
|
+
# @option options [Boolean] :housekeeping_bitmaps_enabled
|
|
87
|
+
# @option options [Boolean] :housekeeping_enabled
|
|
88
|
+
# @option options [Integer] :housekeeping_full_repack_period
|
|
89
|
+
# @option options [Integer] :housekeeping_gc_period
|
|
90
|
+
# @option options [Integer] :housekeeping_incremental_repack_period
|
|
91
|
+
# @option options [Boolean] :html_emails_enabled
|
|
92
|
+
# @option options [Boolean] :instance_statistics_visibility_private
|
|
93
|
+
# @option options [Array<String>] :import_sources
|
|
94
|
+
# @option options [Integer] :max_artifacts_size
|
|
95
|
+
# @option options [Integer] :max_attachment_size
|
|
96
|
+
# @option options [Integer] :max_pages_size
|
|
97
|
+
# @option options [Boolean] :metrics_enabled
|
|
98
|
+
# @option options [String] :metrics_host
|
|
99
|
+
# @option options [Integer] :metrics_method_call_threshold
|
|
100
|
+
# @option options [Integer] :metrics_packet_size
|
|
101
|
+
# @option options [Integer] :metrics_pool_size
|
|
102
|
+
# @option options [Integer] :metrics_port
|
|
103
|
+
# @option options [Integer] :metrics_sample_interval
|
|
104
|
+
# @option options [Integer] :metrics_timeout
|
|
105
|
+
# @option options [Boolean] :mirror_available
|
|
106
|
+
# @option options [Integer] :mirror_capacity_threshold
|
|
107
|
+
# @option options [Integer] :mirror_max_capacity
|
|
108
|
+
# @option options [Integer] :mirror_max_delay
|
|
109
|
+
# @option options [Boolean] :pages_domain_verification_enabled
|
|
110
|
+
# @option options [Boolean] :password_authentication_enabled_for_git
|
|
111
|
+
# @option options [Boolean] :password_authentication_enabled_for_web
|
|
112
|
+
# @option options [String] :performance_bar_allowed_group_id
|
|
113
|
+
# @option options [String] :performance_bar_allowed_group_path
|
|
114
|
+
# @option options [Boolean] :performance_bar_enabled
|
|
115
|
+
# @option options [Boolean] :plantuml_enabled
|
|
116
|
+
# @option options [String] :plantuml_url
|
|
117
|
+
# @option options [Float] :polling_interval_multiplier
|
|
118
|
+
# @option options [Boolean] :project_export_enabled
|
|
119
|
+
# @option options [Boolean] :prometheus_metrics_enabled
|
|
120
|
+
# @option options [Boolean] :pseudonymizer_enabled
|
|
121
|
+
# @option options [Boolean] :recaptcha_enabled
|
|
122
|
+
# @option options [String] :recaptcha_private_key
|
|
123
|
+
# @option options [String] :recaptcha_site_key
|
|
124
|
+
# @option options [Boolean] :repository_checks_enabled
|
|
125
|
+
# @option options [Integer] :repository_size_limit
|
|
126
|
+
# @option options [Array<String>] :repository_storages
|
|
127
|
+
# @option options [Boolean] :require_two_factor_authentication
|
|
128
|
+
# @option options [Array<String>] :restricted_visibility_levels
|
|
129
|
+
# @option options [Integer] :rsa_key_restriction
|
|
130
|
+
# @option options [Boolean] :send_user_confirmation_email
|
|
131
|
+
# @option options [String] :sentry_dsn
|
|
132
|
+
# @option options [Boolean] :sentry_enabled
|
|
133
|
+
# @option options [Integer] :session_expire_delay
|
|
134
|
+
# @option options [Boolean] :shared_runners_enabled
|
|
135
|
+
# @option options [Integer] :shared_runners_minutes
|
|
136
|
+
# @option options [String] :shared_runners_text
|
|
137
|
+
# @option options [String] :sign_in_text
|
|
138
|
+
# @option options [String] :signin_enabled
|
|
139
|
+
# @option options [Boolean] :signup_enabled
|
|
140
|
+
# @option options [Boolean] :slack_app_enabled
|
|
141
|
+
# @option options [String] :slack_app_id
|
|
142
|
+
# @option options [String] :slack_app_secret
|
|
143
|
+
# @option options [String] :slack_app_verification_token
|
|
144
|
+
# @option options [Integer] :terminal_max_session_time
|
|
145
|
+
# @option options [String] :terms
|
|
146
|
+
# @option options [Boolean] :throttle_authenticated_api_enabled
|
|
147
|
+
# @option options [Integer] :throttle_authenticated_api_period_in_seconds
|
|
148
|
+
# @option options [Integer] :throttle_authenticated_api_requests_per_period
|
|
149
|
+
# @option options [Boolean] :throttle_authenticated_web_enabled
|
|
150
|
+
# @option options [Integer] :throttle_authenticated_web_period_in_seconds
|
|
151
|
+
# @option options [Integer] :throttle_authenticated_web_requests_per_period
|
|
152
|
+
# @option options [Boolean] :throttle_unauthenticated_enabled
|
|
153
|
+
# @option options [Integer] :throttle_unauthenticated_period_in_seconds
|
|
154
|
+
# @option options [Integer] :throttle_unauthenticated_requests_per_period
|
|
155
|
+
# @option options [Integer] :two_factor_grace_period
|
|
156
|
+
# @option options [Boolean] :unique_ips_limit_enabled
|
|
157
|
+
# @option options [Integer] :unique_ips_limit_per_user
|
|
158
|
+
# @option options [Integer] :unique_ips_limit_time_window
|
|
159
|
+
# @option options [Boolean] :usage_ping_enabled
|
|
160
|
+
# @option options [Boolean] :user_default_external
|
|
161
|
+
# @option options [Boolean] :user_oauth_applications
|
|
162
|
+
# @option options [Boolean] :user_show_add_ssh_key_message
|
|
163
|
+
# @option options [Boolean] :version_check_enabled
|
|
164
|
+
# @option options [Integer] :local_markdown_version
|
|
165
|
+
# @option options [String] :geo_node_allowed_ips
|
|
166
|
+
#
|
|
167
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
168
|
+
def edit_application_settings(options = {})
|
|
169
|
+
put('/application/settings', body: options)
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to avatar.
|
|
5
|
+
# @see https://docs.gitlab.com/ce/api/avatar.html
|
|
6
|
+
module Avatar
|
|
7
|
+
# Get a single avatar URL for a user with the given email address.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.avatar(email: 'admin@example.com')
|
|
11
|
+
# Gitlab.avatar(email: 'admin@example.com', size: 32)
|
|
12
|
+
#
|
|
13
|
+
# @param [Hash] options A customizable set of options.
|
|
14
|
+
# @option options [String] :email(required) Public email address of the user.
|
|
15
|
+
# @option options [Integer] :size(optional) Single pixel dimension (since images are squares). Only used for avatar lookups at Gravatar or at the configured Libravatar server.
|
|
16
|
+
# @return <Gitlab::ObjectifiedHash>
|
|
17
|
+
def avatar(options = {})
|
|
18
|
+
get('/avatar', query: options)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
class Gitlab::Client
|
|
2
4
|
# Defines methods related to Award Emojis.
|
|
3
5
|
# @see https://docs.gitlab.com/ce/api/award_emoji.html
|
|
@@ -79,7 +81,7 @@ class Gitlab::Client
|
|
|
79
81
|
# @param [String] emoji_name The name of the emoji, without colons.
|
|
80
82
|
# @return [Gitlab::ObjectifiedHash]
|
|
81
83
|
def create_award_emoji(project, awardable_id, awardable_type, emoji_name)
|
|
82
|
-
post("/projects/#{url_encode project}/#{awardable_type}s/#{awardable_id}/award_emoji", body: {name: emoji_name})
|
|
84
|
+
post("/projects/#{url_encode project}/#{awardable_type}s/#{awardable_id}/award_emoji", body: { name: emoji_name })
|
|
83
85
|
end
|
|
84
86
|
|
|
85
87
|
# Awards a new emoji to a note on an awardable(issue, merge request or snippet)
|
|
@@ -96,7 +98,7 @@ class Gitlab::Client
|
|
|
96
98
|
# @param [String] emoji_name The name of the emoji, without colons.
|
|
97
99
|
# @return [Gitlab::ObjectifiedHash]
|
|
98
100
|
def create_note_award_emoji(project, awardable_id, awardable_type, note_id, emoji_name)
|
|
99
|
-
post("/projects/#{url_encode project}/#{awardable_type}s/#{awardable_id}/notes/#{note_id}/award_emoji", body: {name: emoji_name})
|
|
101
|
+
post("/projects/#{url_encode project}/#{awardable_type}s/#{awardable_id}/notes/#{note_id}/award_emoji", body: { name: emoji_name })
|
|
100
102
|
end
|
|
101
103
|
|
|
102
104
|
# Deletes a single award emoji from an awardable(issue, merge request or snippet)
|
|
@@ -132,4 +134,4 @@ class Gitlab::Client
|
|
|
132
134
|
delete("/projects/#{url_encode project}/#{awardable_type}s/#{awardable_id}/notes/#{note_id}/award_emoji/#{award_id}")
|
|
133
135
|
end
|
|
134
136
|
end
|
|
135
|
-
end
|
|
137
|
+
end
|
data/lib/gitlab/client/boards.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
class Gitlab::Client
|
|
2
4
|
# Defines methods related to issue boards.
|
|
3
5
|
# @see https://docs.gitlab.com/ce/api/boards.html
|
|
@@ -13,10 +15,66 @@ class Gitlab::Client
|
|
|
13
15
|
# @option options [Integer] :page The page number.
|
|
14
16
|
# @option options [Integer] :per_page The number of results per page.
|
|
15
17
|
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
16
|
-
def boards(project, options={})
|
|
18
|
+
def boards(project, options = {})
|
|
17
19
|
get("/projects/#{url_encode project}/boards", query: options)
|
|
18
20
|
end
|
|
19
21
|
|
|
22
|
+
# Get a single board.
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Gitlab.board(5, 1)
|
|
26
|
+
#
|
|
27
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
28
|
+
# @param [Integer] id The ID of a board.
|
|
29
|
+
# @return [Gitlab::ObjectifiedHash] Returns information about the board
|
|
30
|
+
def board(project, id)
|
|
31
|
+
get("/projects/#{url_encode project}/boards/#{id}")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Creates a new board.
|
|
35
|
+
#
|
|
36
|
+
# @example
|
|
37
|
+
# Gitlab.create_board(5, 'newboard')
|
|
38
|
+
#
|
|
39
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
40
|
+
# @param [String] name The name of the new board.
|
|
41
|
+
# @return [Gitlab::ObjectifiedHash] Information about created board.
|
|
42
|
+
def create_board(project, name)
|
|
43
|
+
body = { name: name }
|
|
44
|
+
post("/projects/#{url_encode project}/boards", body: body)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Updates a board.
|
|
48
|
+
#
|
|
49
|
+
# @example
|
|
50
|
+
# Gitlab.edit_board(5, 1, name: 'new_name')
|
|
51
|
+
# Gitlab.edit_board(5, 1, name: 'new_name', assignee_id: 1, milestone_id: 1)
|
|
52
|
+
#
|
|
53
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
54
|
+
# @param [Integer] id The ID of a board.
|
|
55
|
+
# @param [Hash] options A customizable set of options.
|
|
56
|
+
# @option options [String] :name(optional) The new name of the board.
|
|
57
|
+
# @option options [Integer] :assignee_id(optional) The assignee the board should be scoped to.
|
|
58
|
+
# @option options [Integer] :milestone_id(optional) The milestone the board should be scoped to.
|
|
59
|
+
# @option options [String] :labels(optional) Comma-separated list of label names which the board should be scoped to.
|
|
60
|
+
# @option options [Integer] :weight(optional) The weight range from 0 to 9, to which the board should be scoped to.
|
|
61
|
+
# @return [Gitlab::ObjectifiedHash] Information about updated board.
|
|
62
|
+
def edit_board(project, id, options = {})
|
|
63
|
+
put("/projects/#{url_encode project}/boards/#{id}", body: options)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Deletes a board.
|
|
67
|
+
#
|
|
68
|
+
# @example
|
|
69
|
+
# Gitlab.delete_board(5, 1)
|
|
70
|
+
#
|
|
71
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
72
|
+
# @param [Integer] id The ID of a board.
|
|
73
|
+
# @return [void] This API call returns an empty response body.
|
|
74
|
+
def delete_board(project, id)
|
|
75
|
+
delete("/projects/#{url_encode project}/boards/#{id}")
|
|
76
|
+
end
|
|
77
|
+
|
|
20
78
|
# Gets a board lists
|
|
21
79
|
#
|
|
22
80
|
# @example
|
|
@@ -28,6 +86,7 @@ class Gitlab::Client
|
|
|
28
86
|
def board_lists(project, id)
|
|
29
87
|
get("/projects/#{url_encode project}/boards/#{id}/lists")
|
|
30
88
|
end
|
|
89
|
+
|
|
31
90
|
#
|
|
32
91
|
# Gets a single board list
|
|
33
92
|
#
|
|
@@ -53,7 +112,7 @@ class Gitlab::Client
|
|
|
53
112
|
# @param [Integer] label_id The ID of a label.
|
|
54
113
|
# @return [Gitlab::ObjectifiedHash] Information about created list.
|
|
55
114
|
def create_board_list(project, board_id, label_id)
|
|
56
|
-
post("/projects/#{url_encode project}/boards/#{board_id}/lists", body: {label_id: label_id})
|
|
115
|
+
post("/projects/#{url_encode project}/boards/#{board_id}/lists", body: { label_id: label_id })
|
|
57
116
|
end
|
|
58
117
|
|
|
59
118
|
# Updates a board list.
|
|
@@ -67,7 +126,7 @@ class Gitlab::Client
|
|
|
67
126
|
# @param [Integer] id The ID of a list.
|
|
68
127
|
# @return [Gitlab::ObjectifiedHash] Information about updated board list.
|
|
69
128
|
def edit_board_list(project, board_id, id, position)
|
|
70
|
-
put("/projects/#{url_encode project}/boards/#{board_id}/lists/#{id}", body: {position: position})
|
|
129
|
+
put("/projects/#{url_encode project}/boards/#{board_id}/lists/#{id}", body: { position: position })
|
|
71
130
|
end
|
|
72
131
|
|
|
73
132
|
# Deletes a board list.
|
|
@@ -85,4 +144,3 @@ class Gitlab::Client
|
|
|
85
144
|
end
|
|
86
145
|
end
|
|
87
146
|
end
|
|
88
|
-
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
class Gitlab::Client
|
|
2
4
|
# Defines methods related to repositories.
|
|
3
5
|
# @see https://docs.gitlab.com/ce/api/branches.html
|
|
@@ -12,10 +14,10 @@ class Gitlab::Client
|
|
|
12
14
|
# @option options [Integer] :page The page number.
|
|
13
15
|
# @option options [Integer] :per_page The number of results per page.
|
|
14
16
|
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
15
|
-
def branches(project, options={})
|
|
17
|
+
def branches(project, options = {})
|
|
16
18
|
get("/projects/#{url_encode project}/repository/branches", query: options)
|
|
17
19
|
end
|
|
18
|
-
|
|
20
|
+
alias repo_branches branches
|
|
19
21
|
|
|
20
22
|
# Gets information about a repository branch.
|
|
21
23
|
#
|
|
@@ -27,9 +29,9 @@ class Gitlab::Client
|
|
|
27
29
|
# @param [String] branch The name of the branch.
|
|
28
30
|
# @return [Gitlab::ObjectifiedHash]
|
|
29
31
|
def branch(project, branch)
|
|
30
|
-
get("/projects/#{url_encode project}/repository/branches/#{branch}")
|
|
32
|
+
get("/projects/#{url_encode project}/repository/branches/#{url_encode branch}")
|
|
31
33
|
end
|
|
32
|
-
|
|
34
|
+
alias repo_branch branch
|
|
33
35
|
|
|
34
36
|
# Protects a repository branch.
|
|
35
37
|
#
|
|
@@ -47,9 +49,9 @@ class Gitlab::Client
|
|
|
47
49
|
# @option options [Boolean] :developers_can_merge True to allow developers to merge into the branch (default = false)
|
|
48
50
|
# @return [Gitlab::ObjectifiedHash] Details about the branch
|
|
49
51
|
def protect_branch(project, branch, options = {})
|
|
50
|
-
|
|
52
|
+
post("/projects/#{url_encode project}/protected_branches", body: { name: branch }.merge(options))
|
|
51
53
|
end
|
|
52
|
-
|
|
54
|
+
alias repo_protect_branch protect_branch
|
|
53
55
|
|
|
54
56
|
# Unprotects a repository branch.
|
|
55
57
|
#
|
|
@@ -61,24 +63,24 @@ class Gitlab::Client
|
|
|
61
63
|
# @param [String] branch The name of the branch.
|
|
62
64
|
# @return [Gitlab::ObjectifiedHash] Details about the branch
|
|
63
65
|
def unprotect_branch(project, branch)
|
|
64
|
-
|
|
66
|
+
delete("/projects/#{url_encode project}/protected_branches/#{url_encode branch}")
|
|
65
67
|
end
|
|
66
|
-
|
|
68
|
+
alias repo_unprotect_branch unprotect_branch
|
|
67
69
|
|
|
68
70
|
# Creates a repository branch. Requires Gitlab >= 6.8.x
|
|
69
71
|
#
|
|
70
72
|
# @example
|
|
71
|
-
# Gitlab.create_branch(3, 'api')
|
|
72
|
-
# Gitlab.repo_create_branch(5, 'master')
|
|
73
|
+
# Gitlab.create_branch(3, 'api', 'feat/new-api')
|
|
74
|
+
# Gitlab.repo_create_branch(5, 'master', 'develop')
|
|
73
75
|
#
|
|
74
76
|
# @param [Integer, String] project The ID or name of a project.
|
|
75
77
|
# @param [String] branch The name of the new branch.
|
|
76
78
|
# @param [String] ref Create branch from commit sha or existing branch
|
|
77
79
|
# @return [Gitlab::ObjectifiedHash] Details about the branch
|
|
78
80
|
def create_branch(project, branch, ref)
|
|
79
|
-
post("/projects/#{url_encode project}/repository/branches",
|
|
81
|
+
post("/projects/#{url_encode project}/repository/branches", query: { branch: branch, ref: ref })
|
|
80
82
|
end
|
|
81
|
-
|
|
83
|
+
alias repo_create_branch create_branch
|
|
82
84
|
|
|
83
85
|
# Deletes a repository branch. Requires Gitlab >= 6.8.x
|
|
84
86
|
#
|
|
@@ -89,8 +91,45 @@ class Gitlab::Client
|
|
|
89
91
|
# @param [Integer, String] project The ID or name of a project.
|
|
90
92
|
# @param [String] branch The name of the branch to delete
|
|
91
93
|
def delete_branch(project, branch)
|
|
92
|
-
delete("/projects/#{url_encode project}/repository/branches/#{branch}")
|
|
94
|
+
delete("/projects/#{url_encode project}/repository/branches/#{url_encode branch}")
|
|
95
|
+
end
|
|
96
|
+
alias repo_delete_branch delete_branch
|
|
97
|
+
|
|
98
|
+
# Delete all branches that are merged into the project default branch. Protected branches will not be deleted as part of this operation.
|
|
99
|
+
#
|
|
100
|
+
# @example
|
|
101
|
+
# Gitlab.delete_merged_branches(3)
|
|
102
|
+
#
|
|
103
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
104
|
+
# @return [nil] This API call returns an empty response body.
|
|
105
|
+
def delete_merged_branches(project)
|
|
106
|
+
delete("/projects/#{url_encode project}/repository/merged_branches")
|
|
107
|
+
end
|
|
108
|
+
alias repo_delete_merged_branches delete_merged_branches
|
|
109
|
+
|
|
110
|
+
# Gets a list of protected branches from a project.
|
|
111
|
+
#
|
|
112
|
+
# @example
|
|
113
|
+
# Gitlab.protected_branches(42)
|
|
114
|
+
#
|
|
115
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
116
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
117
|
+
def protected_branches(project)
|
|
118
|
+
get("/projects/#{url_encode project}/protected_branches")
|
|
119
|
+
end
|
|
120
|
+
alias repo_protected_branches protected_branches
|
|
121
|
+
|
|
122
|
+
# Gets a single protected branch or wildcard protected branch
|
|
123
|
+
#
|
|
124
|
+
# @example
|
|
125
|
+
# Gitlab.protected_branch(3, 'api')
|
|
126
|
+
#
|
|
127
|
+
# @param [Integer, String] project The ID or name of a project.
|
|
128
|
+
# @param [String] name The name of the branch or wildcard
|
|
129
|
+
# @return [Gitlab::ObjectifiedHash]
|
|
130
|
+
def protected_branch(project, branch)
|
|
131
|
+
get("/projects/#{url_encode project}/protected_branches/#{url_encode branch}")
|
|
93
132
|
end
|
|
94
|
-
|
|
133
|
+
alias repo_protected_branch protected_branch
|
|
95
134
|
end
|
|
96
135
|
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Gitlab::Client
|
|
4
|
+
# Defines methods related to broadcast messages (only accessible to administrators).
|
|
5
|
+
# @see https://docs.gitlab.com/ce/api/broadcast_messages.html
|
|
6
|
+
module BroadcastMessages
|
|
7
|
+
# Get all broadcast messages
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# Gitlab.broadcast_messages
|
|
11
|
+
#
|
|
12
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
|
13
|
+
def broadcast_messages
|
|
14
|
+
get('/broadcast_messages')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Get a specific broadcast message
|
|
18
|
+
#
|
|
19
|
+
# @example
|
|
20
|
+
# Gitlab.broadcast_message(3)
|
|
21
|
+
#
|
|
22
|
+
# @param [Integer] id The ID of broadcast message
|
|
23
|
+
# @return [Gitlab::ObjectifiedHash]
|
|
24
|
+
def broadcast_message(id)
|
|
25
|
+
get("/broadcast_messages/#{id}")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Create a broadcast message.
|
|
29
|
+
#
|
|
30
|
+
# @example
|
|
31
|
+
# Gitlab.create_broadcast_message('Mayday')
|
|
32
|
+
# Gitlab.create_broadcast_message('Mayday', {starts_at: Time.zone.now, ends_at: Time.zone.now + 30.minutes, color: '#cecece', font: '#FFFFFF'})
|
|
33
|
+
#
|
|
34
|
+
# @param [String] message Message to display
|
|
35
|
+
# @param [Hash] options A customizable set of options.
|
|
36
|
+
# @option options [DateTime] :starts_at(optional) Starting time (defaults to current time)
|
|
37
|
+
# @option options [DateTime] :ends_at(optional) Ending time (defaults to one hour from current time)
|
|
38
|
+
# @option options [String] :color(optional) Background color hex code
|
|
39
|
+
# @option options [String] :font(optional) Foreground color hex code
|
|
40
|
+
# @return [Gitlab::ObjectifiedHash] Information about created broadcast message.
|
|
41
|
+
def create_broadcast_message(message, options = {})
|
|
42
|
+
body = { message: message }.merge(options)
|
|
43
|
+
post('/broadcast_messages', body: body)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Update a broadcast message
|
|
47
|
+
#
|
|
48
|
+
# @example
|
|
49
|
+
# Gitlab.edit_broadcast_message(6, { message: 'No Mayday' })
|
|
50
|
+
# Gitlab.edit_broadcast_message(6, { font: '#FEFEFE' })
|
|
51
|
+
#
|
|
52
|
+
# @param [Integer] id The ID of a broadcast message
|
|
53
|
+
# @param [Hash] options A customizable set of options.
|
|
54
|
+
# @option options [String] :message(optional) Message to display
|
|
55
|
+
# @option options [DateTime] :starts_at(optional) Starting time (defaults to current time)
|
|
56
|
+
# @option options [DateTime] :ends_at(optional) Ending time (defaults to one hour from current time)
|
|
57
|
+
# @option options [String] :color(optional) Background color hex code
|
|
58
|
+
# @option options [String] :font(optional) Foreground color hex code
|
|
59
|
+
# @return [Gitlab::ObjectifiedHash] Information about updated broadcast message.
|
|
60
|
+
def edit_broadcast_message(id, options = {})
|
|
61
|
+
put("/broadcast_messages/#{id}", body: options)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Delete a broadcast message.
|
|
65
|
+
#
|
|
66
|
+
# @example
|
|
67
|
+
# Gitlab.delete_broadcast_message(3)
|
|
68
|
+
#
|
|
69
|
+
# @param [Integer] id The ID of a broadcast message.
|
|
70
|
+
# @return [nil] This API call returns an empty response body.
|
|
71
|
+
def delete_broadcast_message(id)
|
|
72
|
+
delete("/broadcast_messages/#{id}")
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|