fs-gitlab 4.18.1
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/CHANGELOG.md +270 -0
- data/LICENSE.txt +24 -0
- data/README.md +260 -0
- data/exe/gitlab +11 -0
- data/lib/gitlab/api.rb +24 -0
- data/lib/gitlab/cli.rb +89 -0
- data/lib/gitlab/cli_helpers.rb +243 -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 +85 -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 +358 -0
- data/lib/gitlab/client/issue_links.rb +48 -0
- data/lib/gitlab/client/issues.rb +231 -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 +386 -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 +147 -0
- data/lib/gitlab/client/pipeline_triggers.rb +103 -0
- data/lib/gitlab/client/pipelines.rb +105 -0
- 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 +708 -0
- data/lib/gitlab/client/protected_tags.rb +59 -0
- data/lib/gitlab/client/remote_mirrors.rb +51 -0
- data/lib/gitlab/client/repositories.rb +113 -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 +211 -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 +397 -0
- data/lib/gitlab/client/versions.rb +18 -0
- data/lib/gitlab/client/wikis.rb +79 -0
- data/lib/gitlab/client.rb +95 -0
- data/lib/gitlab/configuration.rb +57 -0
- data/lib/gitlab/error.rb +170 -0
- data/lib/gitlab/file_response.rb +48 -0
- data/lib/gitlab/help.rb +94 -0
- data/lib/gitlab/objectified_hash.rb +51 -0
- data/lib/gitlab/page_links.rb +35 -0
- data/lib/gitlab/paginated_response.rb +110 -0
- data/lib/gitlab/request.rb +109 -0
- data/lib/gitlab/shell.rb +83 -0
- data/lib/gitlab/shell_history.rb +57 -0
- data/lib/gitlab/version.rb +5 -0
- data/lib/gitlab.rb +56 -0
- metadata +204 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to Protected Tags.
|
5
|
+
# @see https://docs.gitlab.com/ce/api/protected_tags.html
|
6
|
+
module ProtectedTags
|
7
|
+
# Gets a list of protected tags from a project
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.protected_tags(1)
|
11
|
+
#
|
12
|
+
# @param [Integer, String] project(required) The ID or name of a project.
|
13
|
+
# @option options [Integer] :page The page number.
|
14
|
+
# @option options [Integer] :per_page The number of results per page.
|
15
|
+
# @return [Array<Gitlab::ObjectifiedHash>] List of all protected tags requested
|
16
|
+
def protected_tags(project, options = {})
|
17
|
+
get("/projects/#{url_encode project}/protected_tags", query: options)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Gets a single protected tag or wildcard protected tag.
|
21
|
+
#
|
22
|
+
# @example
|
23
|
+
# Gitlab.protected_tag(1, 'release-1-0')
|
24
|
+
#
|
25
|
+
# @param [Integer, String] project(required) The ID or name of a project.
|
26
|
+
# @param [String] name(required) The name of the tag or wildcard
|
27
|
+
# @return <Gitlab::ObjectifiedHash] Information about the requested protected tag
|
28
|
+
def protected_tag(project, name)
|
29
|
+
get("/projects/#{url_encode project}/protected_tags/#{name}")
|
30
|
+
end
|
31
|
+
|
32
|
+
# Protects a single repository tag or several project repository tags using a wildcard protected tag.
|
33
|
+
#
|
34
|
+
# @example
|
35
|
+
# Gitlab.protect_repository_tag(1, 'release-1-0')
|
36
|
+
# Gitlab.protect_repository_tag(1, 'release-1-0', create_access_level: 30)
|
37
|
+
#
|
38
|
+
# @param [Integer, String] project(required) The ID or name of a project.
|
39
|
+
# @param [String] name(required) The name of the tag or wildcard
|
40
|
+
# @option options [Integer] :create_access_level Access levels allowed to create (defaults: 40, maintainer access level)
|
41
|
+
# @return <Gitlab::ObjectifiedHash] Information about the protected repository tag
|
42
|
+
def protect_repository_tag(project, name, options = {})
|
43
|
+
body = { name: name }.merge(options)
|
44
|
+
post("/projects/#{url_encode project}/protected_tags", body: body)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Unprotects the given protected tag or wildcard protected tag.
|
48
|
+
#
|
49
|
+
# @example
|
50
|
+
# Gitlab.unprotect_repository_tag(1, 'release-1-0')
|
51
|
+
#
|
52
|
+
# @param [Integer, String] project(required) The ID or name of a project.
|
53
|
+
# @param [String] name(required) The name of the tag or wildcard
|
54
|
+
# @return [nil] This API call returns an empty response body.
|
55
|
+
def unprotect_repository_tag(project, name)
|
56
|
+
delete("/projects/#{url_encode project}/protected_tags/#{name}")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to remote mirrors.
|
5
|
+
# @see https://docs.gitlab.com/ee/api/remote_mirrors.html
|
6
|
+
module RemoteMirrors
|
7
|
+
# List a project's remote mirrors
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.remote_mirrors(42)
|
11
|
+
# Gitlab.remote_mirrors('gitlab-org/gitlab')
|
12
|
+
#
|
13
|
+
# @param [Integer, String] project The ID or name of a project.
|
14
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
15
|
+
def remote_mirrors(project)
|
16
|
+
get("/projects/#{url_encode project}/remote_mirrors")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Create a remote mirror
|
20
|
+
#
|
21
|
+
# @example
|
22
|
+
# Gitlab.create_remote_mirror(42, 'https://mirror-bot@gitlab.com/gitlab-org/gitlab.git', enabled: true)
|
23
|
+
#
|
24
|
+
# @param [Integer, String] project The ID or name of a project.
|
25
|
+
# @param [String] url The full URL of the remote repository.
|
26
|
+
# @param [Hash] options A customizable set of options.
|
27
|
+
# @option options [Boolean] :enabled Determines if the mirror is enabled.
|
28
|
+
# @option options [Boolean] :only_protected_branches Determines if only protected branches are mirrored.
|
29
|
+
# @option options [Boolean] :keep_divergent_refs Determines if divergent refs are skipped.
|
30
|
+
# @return [Gitlab::ObjectifiedHash]
|
31
|
+
def create_remote_mirror(project, url, options = {})
|
32
|
+
post("/projects/#{url_encode project}/remote_mirrors", body: options.merge(url: url))
|
33
|
+
end
|
34
|
+
|
35
|
+
# Update a remote mirror's attributes
|
36
|
+
#
|
37
|
+
# @example
|
38
|
+
# Gitlab.edit_remote_mirror(42, 66, only_protected_branches: true)
|
39
|
+
#
|
40
|
+
# @param [Integer, String] project The ID or name of a project.
|
41
|
+
# @param [Integer] id The ID of the remote mirror.
|
42
|
+
# @param [Hash] options A customizable set of options.
|
43
|
+
# @option options [Boolean] :enabled Determines if the mirror is enabled.
|
44
|
+
# @option options [Boolean] :only_protected_branches Determines if only protected branches are mirrored.
|
45
|
+
# @option options [Boolean] :keep_divergent_refs Determines if divergent refs are skipped.
|
46
|
+
# @return [Gitlab::ObjectifiedHash]
|
47
|
+
def edit_remote_mirror(project, id, options = {})
|
48
|
+
put("/projects/#{url_encode project}/remote_mirrors/#{id}", body: options)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to repositories.
|
5
|
+
# @see https://docs.gitlab.com/ce/api/repositories.html
|
6
|
+
module Repositories
|
7
|
+
# Get file tree project (root level).
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.tree(42)
|
11
|
+
# Gitlab.tree(42, { path: 'Gemfile' })
|
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 [String] :path The path inside repository.
|
16
|
+
# @option options [String] :ref The name of a repository branch or tag.
|
17
|
+
# @option options [Integer] :per_page Number of results to show per page (default = 20)
|
18
|
+
# @return [Gitlab::ObjectifiedHash]
|
19
|
+
def tree(project, options = {})
|
20
|
+
get("/projects/#{url_encode project}/repository/tree", query: options)
|
21
|
+
end
|
22
|
+
alias repo_tree tree
|
23
|
+
|
24
|
+
# Get project repository archive
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# Gitlab.repo_archive(42)
|
28
|
+
# Gitlab.repo_archive(42, 'deadbeef')
|
29
|
+
#
|
30
|
+
# @param [Integer, String] project The ID or name of a project.
|
31
|
+
# @param [String] ref The commit sha, branch, or tag to download.
|
32
|
+
# @param [String] format The archive format. Options are: tar.gz (default), tar.bz2, tbz, tbz2, tb2, bz2, tar, and zip
|
33
|
+
# @return [Gitlab::FileResponse]
|
34
|
+
def repo_archive(project, ref = 'master', format = 'tar.gz')
|
35
|
+
get("/projects/#{url_encode project}/repository/archive.#{format}",
|
36
|
+
format: nil,
|
37
|
+
headers: { Accept: 'application/octet-stream' },
|
38
|
+
query: { sha: ref },
|
39
|
+
parser: proc { |body, _|
|
40
|
+
if body.encoding == Encoding::ASCII_8BIT # binary response
|
41
|
+
::Gitlab::FileResponse.new StringIO.new(body, 'rb+')
|
42
|
+
else # error with json response
|
43
|
+
::Gitlab::Request.parse(body)
|
44
|
+
end
|
45
|
+
})
|
46
|
+
end
|
47
|
+
|
48
|
+
# Compares branches, tags or commits.
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# Gitlab.compare(42, 'master', 'feature/branch')
|
52
|
+
# Gitlab.repo_compare(42, 'master', 'feature/branch')
|
53
|
+
#
|
54
|
+
# @param [Integer] project The ID of a project.
|
55
|
+
# @param [String] from The commit SHA or branch name of from branch.
|
56
|
+
# @param [String] to The commit SHA or branch name of to branch.
|
57
|
+
# @return [Gitlab::ObjectifiedHash]
|
58
|
+
def compare(project, from, to)
|
59
|
+
get("/projects/#{url_encode project}/repository/compare", query: { from: from, to: to })
|
60
|
+
end
|
61
|
+
alias repo_compare compare
|
62
|
+
|
63
|
+
# Get the common ancestor for 2 refs (commit SHAs, branch names or tags).
|
64
|
+
#
|
65
|
+
# @example
|
66
|
+
# Gitlab.merge_base(42, ['master', 'feature/branch'])
|
67
|
+
# Gitlab.merge_base(42, ['master', 'feature/branch'])
|
68
|
+
#
|
69
|
+
# @param [Integer, String] project The ID or URL-encoded path of the project.
|
70
|
+
# @param [Array] refs Array containing 2 commit SHAs, branch names, or tags.
|
71
|
+
# @return [Gitlab::ObjectifiedHash]
|
72
|
+
def merge_base(project, refs)
|
73
|
+
get("/projects/#{url_encode project}/repository/merge_base", query: { refs: refs })
|
74
|
+
end
|
75
|
+
|
76
|
+
# Get project repository contributors.
|
77
|
+
#
|
78
|
+
# @example
|
79
|
+
# Gitlab.contributors(42)
|
80
|
+
# Gitlab.contributors(42, { order: 'name' })
|
81
|
+
#
|
82
|
+
# @param [Integer, String] project The ID or name of a project.
|
83
|
+
# @param [Hash] options A customizable set of options.
|
84
|
+
# @option options [String] :order_by Order by name, email or commits (default = commits).
|
85
|
+
# @option options [String] :sort Sort order asc or desc (default = asc).
|
86
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
87
|
+
def contributors(project, options = {})
|
88
|
+
get("/projects/#{url_encode project}/repository/contributors", query: options)
|
89
|
+
end
|
90
|
+
alias repo_contributors contributors
|
91
|
+
|
92
|
+
# Generate changelog data
|
93
|
+
#
|
94
|
+
# @example
|
95
|
+
# Gitlab.generate_changelog(42, 'v1.0.0')
|
96
|
+
# Gitlab.generate_changelog(42, 'v1.0.0', branch: 'main')
|
97
|
+
#
|
98
|
+
# @param [Integer, String] project The ID or name of a project
|
99
|
+
# @param [String] version The version to generate the changelog for
|
100
|
+
# @param [Hash] options A customizable set of options
|
101
|
+
# @option options [String] :from The start of the range of commits (SHA)
|
102
|
+
# @option options [String] :to The end of the range of commits (as a SHA) to use for the changelog
|
103
|
+
# @option options [String] :date The date and time of the release, defaults to the current time
|
104
|
+
# @option options [String] :branch The branch to commit the changelog changes to
|
105
|
+
# @option options [String] :trailer The Git trailer to use for including commits
|
106
|
+
# @option options [String] :file The file to commit the changes to
|
107
|
+
# @option options [String] :message The commit message to produce when committing the changes
|
108
|
+
# @return [bool]
|
109
|
+
def generate_changelog(project, version, options = {})
|
110
|
+
post("/projects/#{url_encode project}/repository/changelog", body: options.merge(version: version))
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'base64'
|
4
|
+
|
5
|
+
class Gitlab::Client
|
6
|
+
# Defines methods related to repository files.
|
7
|
+
# @see https://docs.gitlab.com/ce/api/repository_files.html
|
8
|
+
module RepositoryFiles
|
9
|
+
# Get the contents of a file
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Gitlab.file_contents(42, 'Gemfile')
|
13
|
+
# Gitlab.repo_file_contents(3, 'Gemfile', 'ed899a2f4b50b4370feeea94676502b42383c746')
|
14
|
+
#
|
15
|
+
# @param [Integer, String] project The ID or name of a project.
|
16
|
+
# @param [String] filepath The relative path of the file in the repository
|
17
|
+
# @param [String] ref The name of a repository branch or tag or if not given the default branch.
|
18
|
+
# @return [String]
|
19
|
+
def file_contents(project, filepath, ref = 'master')
|
20
|
+
get "/projects/#{url_encode project}/repository/files/#{url_encode filepath}/raw",
|
21
|
+
query: { ref: ref },
|
22
|
+
format: nil,
|
23
|
+
headers: { Accept: 'text/plain' },
|
24
|
+
parser: ::Gitlab::Request::Parser
|
25
|
+
end
|
26
|
+
alias repo_file_contents file_contents
|
27
|
+
|
28
|
+
# Get file blame from repository
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# Gitlab.get_file_blame(42, "README.md", "master")
|
32
|
+
#
|
33
|
+
# @param [Integer, String] project The ID or name of a project.
|
34
|
+
# @param [String] file_path The full path of the file.
|
35
|
+
# @param [String] ref The name of branch, tag or commit.
|
36
|
+
# @return [Gitlab::ObjectifiedHash]
|
37
|
+
#
|
38
|
+
def get_file_blame(project, file_path, ref)
|
39
|
+
get("/projects/#{url_encode project}/repository/files/#{url_encode file_path}/blame", query: {
|
40
|
+
ref: ref
|
41
|
+
})
|
42
|
+
end
|
43
|
+
|
44
|
+
# Gets a repository file.
|
45
|
+
#
|
46
|
+
# @example
|
47
|
+
# Gitlab.get_file(42, "README.md", "master")
|
48
|
+
#
|
49
|
+
# @param [Integer, String] project The ID or name of a project.
|
50
|
+
# @param [String] file_path The full path of the file.
|
51
|
+
# @param [String] ref The name of branch, tag or commit.
|
52
|
+
# @return [Gitlab::ObjectifiedHash]
|
53
|
+
def get_file(project, file_path, ref)
|
54
|
+
get("/projects/#{url_encode project}/repository/files/#{url_encode file_path}", query: {
|
55
|
+
ref: ref
|
56
|
+
})
|
57
|
+
end
|
58
|
+
|
59
|
+
# Creates a new repository file.
|
60
|
+
#
|
61
|
+
# @example
|
62
|
+
# Gitlab.create_file(42, "path", "branch", "content", "commit message")
|
63
|
+
#
|
64
|
+
# @param [Integer, String] project The ID or name of a project.
|
65
|
+
# @param [String] path full path to new file.
|
66
|
+
# @param [String] branch the name of the branch.
|
67
|
+
# @param [String] content file content.
|
68
|
+
# @param [String] commit_message ...commit message.
|
69
|
+
# @param [Hash] options Optional additional details for commit
|
70
|
+
# @option options [String] :author_name Commit author's name
|
71
|
+
# @option options [String] :author_email Commit author's email address
|
72
|
+
# @return [Gitlab::ObjectifiedHash]
|
73
|
+
def create_file(project, path, branch, content, commit_message, options = {})
|
74
|
+
post("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: {
|
75
|
+
branch: branch,
|
76
|
+
commit_message: commit_message
|
77
|
+
}.merge(options).merge(encoded_content_attributes(content)))
|
78
|
+
end
|
79
|
+
|
80
|
+
# Edits an existing repository file.
|
81
|
+
#
|
82
|
+
# @example
|
83
|
+
# Gitlab.edit_file(42, "path", "branch", "content", "commit message")
|
84
|
+
#
|
85
|
+
# @param [Integer, String] project The ID or name of a project.
|
86
|
+
# @param [String] path full path of file to update.
|
87
|
+
# @param [String] branch the name of the branch to commit changes to.
|
88
|
+
# @param [String] content new file content.
|
89
|
+
# @param [String] commit_message ...commit message.
|
90
|
+
# @param [Hash] options Optional additional details for commit
|
91
|
+
# @option options [String] :author_name Commit author's name
|
92
|
+
# @option options [String] :author_email Commit author's email address
|
93
|
+
# @return [Gitlab::ObjectifiedHash]
|
94
|
+
def edit_file(project, path, branch, content, commit_message, options = {})
|
95
|
+
put("/projects/#{url_encode project}/repository/files/#{url_encode path}", body: {
|
96
|
+
branch: branch,
|
97
|
+
commit_message: commit_message
|
98
|
+
}.merge(options).merge(encoded_content_attributes(content)))
|
99
|
+
end
|
100
|
+
|
101
|
+
# Removes an existing repository file.
|
102
|
+
#
|
103
|
+
# @example
|
104
|
+
# Gitlab.remove_file(42, "path", "branch", "commit message")
|
105
|
+
#
|
106
|
+
# @param [Integer, String] project The ID or name of a project.
|
107
|
+
# @param [String] path full path of file to delete.
|
108
|
+
# @param [String] branch the name of the branch to commit the deletion to.
|
109
|
+
# @param [String] commit_message ...a commit message ;)
|
110
|
+
# @param [Hash] options Optional additional details for commit
|
111
|
+
# @option options [String] :author_name Commit author's name
|
112
|
+
# @option options [String] :author_email Commit author's email address
|
113
|
+
# @return [Gitlab::ObjectifiedHash]
|
114
|
+
def remove_file(project, path, branch, commit_message, options = {})
|
115
|
+
delete("/projects/#{url_encode project}/repository/files/#{url_encode path}",
|
116
|
+
body: {
|
117
|
+
branch: branch,
|
118
|
+
commit_message: commit_message
|
119
|
+
}.merge(options))
|
120
|
+
end
|
121
|
+
|
122
|
+
private
|
123
|
+
|
124
|
+
def encoded_content_attributes(content)
|
125
|
+
{
|
126
|
+
encoding: 'base64',
|
127
|
+
content: Base64.encode64(content)
|
128
|
+
}
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to repository submodules.
|
5
|
+
# @see https://docs.gitlab.com/ce/api/repository_submodules.html
|
6
|
+
module RepositorySubmodules
|
7
|
+
# Edits an existing repository submodule.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.edit_file(42, "submodule", {
|
11
|
+
# branch: "branch",
|
12
|
+
# commit_sha: "3ddec28ea23acc5caa5d8331a6ecb2a65fc03e88",
|
13
|
+
# commit_message: "commit message"
|
14
|
+
# })
|
15
|
+
#
|
16
|
+
# @param [Integer, String] project The ID or name of a project.
|
17
|
+
# @param [String] submodule full path of submodule to update.
|
18
|
+
# @param [Hash] options A customizable set of options.
|
19
|
+
# @param options [String] :branch the name of the branch to commit changes to.
|
20
|
+
# @param options [String] :commit_sha commit SHA to update the submodule to.
|
21
|
+
# @param options [String] :commit_message commit message text.
|
22
|
+
# @return [Gitlab::ObjectifiedHash]
|
23
|
+
def edit_submodule(project, submodule, options = {})
|
24
|
+
put("/projects/#{url_encode project}/repository/submodules/#{url_encode submodule}", body: options)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to resource label events.
|
5
|
+
# @see https://docs.gitlab.com/ee/api/resource_label_events.html
|
6
|
+
module ResourceLabelEvents
|
7
|
+
# Gets a list of all label events for a single issue.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.issue_label_events(5, 42)
|
11
|
+
#
|
12
|
+
# @param [Integer, String] project The ID or name of a project.
|
13
|
+
# @param [Integer] issue_iid The IID of an issue.
|
14
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
15
|
+
def issue_label_events(project, issue_iid)
|
16
|
+
get("/projects/#{url_encode project}/issues/#{issue_iid}/resource_label_events")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns a single label event for a specific project issue
|
20
|
+
#
|
21
|
+
# @example
|
22
|
+
# Gitlab.issue_label_event(5, 42, 1)
|
23
|
+
#
|
24
|
+
# @param [Integer, String] project The ID or name of a project.
|
25
|
+
# @param [Integer] issue_iid The IID of an issue.
|
26
|
+
# @param [Integer] id The ID of a label event.
|
27
|
+
# @return Gitlab::ObjectifiedHash
|
28
|
+
def issue_label_event(project, issue_iid, id)
|
29
|
+
get("/projects/#{url_encode project}/issues/#{issue_iid}/resource_label_events/#{id}")
|
30
|
+
end
|
31
|
+
|
32
|
+
# Gets a list of all label events for a single epic.
|
33
|
+
#
|
34
|
+
# @example
|
35
|
+
# Gitlab.epic_label_events(5, 42)
|
36
|
+
#
|
37
|
+
# @param [Integer, String] group The ID or name of a group.
|
38
|
+
# @param [Integer] epic_id The ID of an epic.
|
39
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
40
|
+
def epic_label_events(group, epic_id)
|
41
|
+
get("/groups/#{url_encode group}/epics/#{epic_id}/resource_label_events")
|
42
|
+
end
|
43
|
+
|
44
|
+
# Returns a single label event for a specific group epic
|
45
|
+
#
|
46
|
+
# @example
|
47
|
+
# Gitlab.epic_label_event(5, 42, 1)
|
48
|
+
#
|
49
|
+
# @param [Integer, String] group The ID or name of a group.
|
50
|
+
# @param [Integer] epic_id The ID of an epic.
|
51
|
+
# @param [Integer] id The ID of a label event.
|
52
|
+
# @return Gitlab::ObjectifiedHash
|
53
|
+
def epic_label_event(group, epic_id, id)
|
54
|
+
get("/groups/#{url_encode group}/epics/#{epic_id}/resource_label_events/#{id}")
|
55
|
+
end
|
56
|
+
|
57
|
+
# Gets a list of all label events for a single merge request.
|
58
|
+
#
|
59
|
+
# @example
|
60
|
+
# Gitlab.merge_request_label_events(5, 42)
|
61
|
+
#
|
62
|
+
# @param [Integer, String] project The ID or name of a project.
|
63
|
+
# @param [Integer] merge_request_iid The IID of a merge request.
|
64
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
65
|
+
def merge_request_label_events(project, merge_request_iid)
|
66
|
+
get("/projects/#{url_encode project}/merge_requests/#{merge_request_iid}/resource_label_events")
|
67
|
+
end
|
68
|
+
|
69
|
+
# Returns a single label event for a specific project merge request
|
70
|
+
#
|
71
|
+
# @example
|
72
|
+
# Gitlab.merge_request_label_event(5, 42, 1)
|
73
|
+
#
|
74
|
+
# @param [Integer, String] project The ID or name of a project.
|
75
|
+
# @param [Integer] merge_request_iid The IID of an merge request.
|
76
|
+
# @param [Integer] id The ID of a label event.
|
77
|
+
# @return Gitlab::ObjectifiedHash
|
78
|
+
def merge_request_label_event(project, merge_request_iid, id)
|
79
|
+
get("/projects/#{url_encode project}/merge_requests/#{merge_request_iid}/resource_label_events/#{id}")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Gitlab::Client
|
4
|
+
# Defines methods related to resource state events.
|
5
|
+
# @see https://docs.gitlab.com/ee/api/resource_state_events.html
|
6
|
+
module ResourceStateEvents
|
7
|
+
# Gets a list of all state events for a single issue.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Gitlab.issue_state_events(5, 42)
|
11
|
+
#
|
12
|
+
# @param [Integer, String] project The ID or name of a project.
|
13
|
+
# @param [Integer] issue_iid The IID of an issue.
|
14
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
15
|
+
def issue_state_events(project, issue_iid)
|
16
|
+
get("/projects/#{url_encode project}/issues/#{issue_iid}/resource_state_events")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns a single state event for a specific project issue
|
20
|
+
#
|
21
|
+
# @example
|
22
|
+
# Gitlab.issue_state_event(5, 42, 1)
|
23
|
+
#
|
24
|
+
# @param [Integer, String] project The ID or name of a project.
|
25
|
+
# @param [Integer] issue_iid The IID of an issue.
|
26
|
+
# @param [Integer] id The ID of a resource event.
|
27
|
+
# @return Gitlab::ObjectifiedHash
|
28
|
+
def issue_state_event(project, issue_iid, id)
|
29
|
+
get("/projects/#{url_encode project}/issues/#{issue_iid}/resource_state_events/#{id}")
|
30
|
+
end
|
31
|
+
|
32
|
+
# Gets a list of all state events for a single merge request.
|
33
|
+
#
|
34
|
+
# @example
|
35
|
+
# Gitlab.merge_request_state_events(5, 42)
|
36
|
+
#
|
37
|
+
# @param [Integer, String] project The ID or name of a project.
|
38
|
+
# @param [Integer] merge_request_iid The IID of a merge request.
|
39
|
+
# @return [Array<Gitlab::ObjectifiedHash>]
|
40
|
+
def merge_request_state_events(project, merge_request_iid)
|
41
|
+
get("/projects/#{url_encode project}/merge_requests/#{merge_request_iid}/resource_state_events")
|
42
|
+
end
|
43
|
+
|
44
|
+
# Returns a single state event for a specific project merge request
|
45
|
+
#
|
46
|
+
# @example
|
47
|
+
# Gitlab.merge_request_state_event(5, 42, 1)
|
48
|
+
#
|
49
|
+
# @param [Integer, String] project The ID or name of a project.
|
50
|
+
# @param [Integer] merge_request_iid The IID of an merge request.
|
51
|
+
# @param [Integer] id The ID of a state event.
|
52
|
+
# @return Gitlab::ObjectifiedHash
|
53
|
+
def merge_request_state_event(project, merge_request_iid, id)
|
54
|
+
get("/projects/#{url_encode project}/merge_requests/#{merge_request_iid}/resource_state_events/#{id}")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|