gitlab 4.16.1 → 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 +4 -4
- data/README.md +1 -1
- data/lib/gitlab/api.rb +2 -0
- data/lib/gitlab/cli.rb +6 -5
- data/lib/gitlab/cli_helpers.rb +2 -2
- data/lib/gitlab/client/build_variables.rb +3 -2
- data/lib/gitlab/client/commits.rb +24 -3
- data/lib/gitlab/client/container_registry.rb +1 -1
- data/lib/gitlab/client/group_badges.rb +88 -0
- data/lib/gitlab/client/group_labels.rb +1 -1
- data/lib/gitlab/client/groups.rb +65 -0
- data/lib/gitlab/client/jobs.rb +77 -8
- data/lib/gitlab/client/keys.rb +11 -0
- data/lib/gitlab/client/labels.rb +1 -1
- data/lib/gitlab/client/merge_request_approvals.rb +84 -0
- data/lib/gitlab/client/merge_requests.rb +34 -1
- data/lib/gitlab/client/pipeline_schedules.rb +16 -4
- data/lib/gitlab/client/pipelines.rb +12 -0
- data/lib/gitlab/client/projects.rb +101 -2
- data/lib/gitlab/client/remote_mirrors.rb +51 -0
- data/lib/gitlab/client/repositories.rb +21 -0
- data/lib/gitlab/client/resource_state_events.rb +57 -0
- data/lib/gitlab/client/runners.rb +59 -21
- data/lib/gitlab/client/users.rb +103 -0
- data/lib/gitlab/client.rb +4 -1
- data/lib/gitlab/error.rb +11 -0
- data/lib/gitlab/help.rb +7 -8
- data/lib/gitlab/paginated_response.rb +2 -2
- data/lib/gitlab/request.rb +18 -8
- data/lib/gitlab/shell_history.rb +2 -2
- data/lib/gitlab/version.rb +1 -1
- data/lib/gitlab.rb +12 -5
- metadata +8 -17
data/lib/gitlab/help.rb
CHANGED
@@ -45,14 +45,13 @@ module Gitlab::Help
|
|
45
45
|
#
|
46
46
|
# @return [Hash<Array>]
|
47
47
|
def help_map
|
48
|
-
@help_map ||=
|
48
|
+
@help_map ||=
|
49
49
|
actions.each_with_object({}) do |action, hsh|
|
50
50
|
key = client.method(action)
|
51
51
|
.owner.to_s.gsub(/Gitlab::(?:Client::)?/, '')
|
52
52
|
hsh[key] ||= []
|
53
53
|
hsh[key] << action.to_s
|
54
54
|
end
|
55
|
-
end
|
56
55
|
end
|
57
56
|
|
58
57
|
# Table with available commands.
|
@@ -74,22 +73,22 @@ module Gitlab::Help
|
|
74
73
|
# Returns full namespace of a command (e.g. Gitlab::Client::Branches.cmd)
|
75
74
|
def namespace(cmd)
|
76
75
|
method_owners.select { |method| method[:name] == cmd }
|
77
|
-
.map { |method| method[:owner]
|
76
|
+
.map { |method| "#{method[:owner]}.#{method[:name]}" }
|
78
77
|
.shift
|
79
78
|
end
|
80
79
|
|
81
80
|
# Massage output from 'ri'.
|
82
81
|
def change_help_output!(cmd, output_str)
|
83
82
|
output_str = +output_str
|
84
|
-
output_str.gsub!(/#{cmd}\(
|
85
|
-
output_str.gsub!(/,\s*/, ' ')
|
83
|
+
output_str.gsub!(/#{cmd}(\(.*?\))/m, "#{cmd}\\1")
|
84
|
+
output_str.gsub!(/,\s*/, ', ')
|
86
85
|
|
87
86
|
# Ensure @option descriptions are on a single line
|
88
87
|
output_str.gsub!(/\n\[/, " \[")
|
89
88
|
output_str.gsub!(/\s(@)/, "\n@")
|
90
|
-
output_str.gsub!(/(\])\n(:)/, '
|
91
|
-
output_str.gsub!(/(:.*)(\n)(.*\.)/, '
|
92
|
-
output_str.gsub!(/\{(.+)\}/, '"{
|
89
|
+
output_str.gsub!(/(\])\n(:)/, '\\1 \\2')
|
90
|
+
output_str.gsub!(/(:.*)(\n)(.*\.)/, '\\1 \\3')
|
91
|
+
output_str.gsub!(/\{(.+)\}/, '"{\\1}"')
|
93
92
|
end
|
94
93
|
end
|
95
94
|
end
|
@@ -47,13 +47,13 @@ module Gitlab
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def auto_paginate(&block)
|
50
|
-
return lazy_paginate.to_a unless
|
50
|
+
return lazy_paginate.to_a unless block
|
51
51
|
|
52
52
|
lazy_paginate.each(&block)
|
53
53
|
end
|
54
54
|
|
55
55
|
def paginate_with_limit(limit, &block)
|
56
|
-
return lazy_paginate.take(limit).to_a unless
|
56
|
+
return lazy_paginate.take(limit).to_a unless block
|
57
57
|
|
58
58
|
lazy_paginate.take(limit).each(&block)
|
59
59
|
end
|
data/lib/gitlab/request.rb
CHANGED
@@ -8,6 +8,7 @@ module Gitlab
|
|
8
8
|
class Request
|
9
9
|
include HTTParty
|
10
10
|
format :json
|
11
|
+
maintain_method_across_redirects true
|
11
12
|
headers 'Accept' => 'application/json', 'Content-Type' => 'application/x-www-form-urlencoded'
|
12
13
|
parser(proc { |body, _| parse(body) })
|
13
14
|
|
@@ -25,8 +26,6 @@ module Gitlab
|
|
25
26
|
true
|
26
27
|
elsif !body
|
27
28
|
false
|
28
|
-
elsif body.nil?
|
29
|
-
false
|
30
29
|
else
|
31
30
|
raise Error::Parsing, "Couldn't parse a response body"
|
32
31
|
end
|
@@ -50,7 +49,18 @@ module Gitlab
|
|
50
49
|
params[:headers].merge!(authorization_header)
|
51
50
|
end
|
52
51
|
|
53
|
-
|
52
|
+
retries_left = params[:ratelimit_retries] || 3
|
53
|
+
begin
|
54
|
+
response = self.class.send(method, endpoint + path, params)
|
55
|
+
validate response
|
56
|
+
rescue Gitlab::Error::TooManyRequests => e
|
57
|
+
retries_left -= 1
|
58
|
+
raise e if retries_left.zero?
|
59
|
+
|
60
|
+
wait_time = response.headers['Retry-After'] || 2
|
61
|
+
sleep(wait_time.to_i)
|
62
|
+
retry
|
63
|
+
end
|
54
64
|
end
|
55
65
|
end
|
56
66
|
|
@@ -69,7 +79,7 @@ module Gitlab
|
|
69
79
|
# Sets a base_uri and default_params for requests.
|
70
80
|
# @raise [Error::MissingCredentials] if endpoint not set.
|
71
81
|
def request_defaults(sudo = nil)
|
72
|
-
raise Error::MissingCredentials, 'Please set an endpoint to API' unless
|
82
|
+
raise Error::MissingCredentials, 'Please set an endpoint to API' unless endpoint
|
73
83
|
|
74
84
|
self.class.default_params sudo: sudo
|
75
85
|
self.class.default_params.delete(:sudo) if sudo.nil?
|
@@ -81,12 +91,12 @@ module Gitlab
|
|
81
91
|
#
|
82
92
|
# @raise [Error::MissingCredentials] if private_token and auth_token are not set.
|
83
93
|
def authorization_header
|
84
|
-
raise Error::MissingCredentials, 'Please provide a private_token or auth_token for user' unless
|
94
|
+
raise Error::MissingCredentials, 'Please provide a private_token or auth_token for user' unless private_token
|
85
95
|
|
86
|
-
if
|
87
|
-
{ 'PRIVATE-TOKEN' =>
|
96
|
+
if private_token.size < 21
|
97
|
+
{ 'PRIVATE-TOKEN' => private_token }
|
88
98
|
else
|
89
|
-
{ 'Authorization' => "Bearer #{
|
99
|
+
{ 'Authorization' => "Bearer #{private_token}" }
|
90
100
|
end
|
91
101
|
end
|
92
102
|
|
data/lib/gitlab/shell_history.rb
CHANGED
@@ -42,10 +42,10 @@ class Gitlab::Shell
|
|
42
42
|
File.expand_path(@file_path)
|
43
43
|
end
|
44
44
|
|
45
|
-
def read_from_file
|
45
|
+
def read_from_file(&block)
|
46
46
|
path = history_file_path
|
47
47
|
|
48
|
-
File.foreach(path
|
48
|
+
File.foreach(path, &block) if File.exist?(path)
|
49
49
|
rescue StandardError => e
|
50
50
|
warn "History file not loaded: #{e.message}"
|
51
51
|
end
|
data/lib/gitlab/version.rb
CHANGED
data/lib/gitlab.rb
CHANGED
@@ -21,11 +21,18 @@ module Gitlab
|
|
21
21
|
Gitlab::Client.new(options)
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
if Gem::Version.new(RUBY_VERSION).release >= Gem::Version.new('3.0.0')
|
25
|
+
def self.method_missing(method, *args, **keywargs, &block)
|
26
|
+
return super unless client.respond_to?(method)
|
27
|
+
|
28
|
+
client.send(method, *args, **keywargs, &block)
|
29
|
+
end
|
30
|
+
else
|
31
|
+
def self.method_missing(method, *args, &block)
|
32
|
+
return super unless client.respond_to?(method)
|
33
|
+
|
34
|
+
client.send(method, *args, &block)
|
35
|
+
end
|
29
36
|
end
|
30
37
|
|
31
38
|
# Delegate to Gitlab::Client
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nihad Abbasov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-12-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -17,27 +17,18 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '0.
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.14.0
|
20
|
+
version: '0.18'
|
24
21
|
type: :runtime
|
25
22
|
prerelease: false
|
26
23
|
version_requirements: !ruby/object:Gem::Requirement
|
27
24
|
requirements:
|
28
25
|
- - "~>"
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: '0.
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.14.0
|
27
|
+
version: '0.18'
|
34
28
|
- !ruby/object:Gem::Dependency
|
35
29
|
name: terminal-table
|
36
30
|
requirement: !ruby/object:Gem::Requirement
|
37
31
|
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.5'
|
41
32
|
- - ">="
|
42
33
|
- !ruby/object:Gem::Version
|
43
34
|
version: 1.5.1
|
@@ -45,9 +36,6 @@ dependencies:
|
|
45
36
|
prerelease: false
|
46
37
|
version_requirements: !ruby/object:Gem::Requirement
|
47
38
|
requirements:
|
48
|
-
- - "~>"
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '1.5'
|
51
39
|
- - ">="
|
52
40
|
- !ruby/object:Gem::Version
|
53
41
|
version: 1.5.1
|
@@ -128,6 +116,7 @@ files:
|
|
128
116
|
- lib/gitlab/client/epics.rb
|
129
117
|
- lib/gitlab/client/events.rb
|
130
118
|
- lib/gitlab/client/features.rb
|
119
|
+
- lib/gitlab/client/group_badges.rb
|
131
120
|
- lib/gitlab/client/group_boards.rb
|
132
121
|
- lib/gitlab/client/group_labels.rb
|
133
122
|
- lib/gitlab/client/group_milestones.rb
|
@@ -153,10 +142,12 @@ files:
|
|
153
142
|
- lib/gitlab/client/project_releases.rb
|
154
143
|
- lib/gitlab/client/projects.rb
|
155
144
|
- lib/gitlab/client/protected_tags.rb
|
145
|
+
- lib/gitlab/client/remote_mirrors.rb
|
156
146
|
- lib/gitlab/client/repositories.rb
|
157
147
|
- lib/gitlab/client/repository_files.rb
|
158
148
|
- lib/gitlab/client/repository_submodules.rb
|
159
149
|
- lib/gitlab/client/resource_label_events.rb
|
150
|
+
- lib/gitlab/client/resource_state_events.rb
|
160
151
|
- lib/gitlab/client/runners.rb
|
161
152
|
- lib/gitlab/client/search.rb
|
162
153
|
- lib/gitlab/client/services.rb
|
@@ -200,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
191
|
- !ruby/object:Gem::Version
|
201
192
|
version: '0'
|
202
193
|
requirements: []
|
203
|
-
rubygems_version: 3.1.
|
194
|
+
rubygems_version: 3.1.6
|
204
195
|
signing_key:
|
205
196
|
specification_version: 4
|
206
197
|
summary: A Ruby wrapper and CLI for the GitLab API
|