gitlab-license 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e600286328afecad44667c1a380d86af1ca51fb2
4
- data.tar.gz: 311f32e1169d3c29420b20c44a0184ee3c6451e2
2
+ SHA256:
3
+ metadata.gz: 383fa8e8886da54f66d4e605027ff68ce9b32427d9924d659e58c3c5035e6338
4
+ data.tar.gz: 502a4ea974f4299d9cd2d1a0c0a02780a79d15f56bdc8332806181227b3ef072
5
5
  SHA512:
6
- metadata.gz: 9b2bce8a31af79ad4fe1cd51735b90ac3c33b847cd3ae6dc70de5ebdfe1c2b16e305dd8aa0e4e8688adba86a08190a53b12c152e8b0384b3a4121622439649c5
7
- data.tar.gz: 77a65ca5a2db684afb50bfa1d18c35470c702f53f2b7e11301a6d94597e657617faada7a7ea6c3c67e56be5243bb550916092545979be175fdf59b23c915c621
6
+ metadata.gz: a4a4f59660c0aed25f811fa584a281dac4f14cd60ebbec4fdb6ecc47e6ec31f4e35ba5ac0000b20b418761dbdaf20f1a3a2b7a221a2b91480d94f87a57a97862
7
+ data.tar.gz: 29b852faadaf76f0d9064c414e954f425290b83618882a7a3bfd47b10babcd8ce7a8a76ebe8990a35688d24a3a9314f69f9a1faec1179d0c5490fde09370de01
@@ -0,0 +1,22 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require: rubocop-rspec
4
+
5
+ Metrics/BlockLength:
6
+ ExcludedMethods: ['describe', 'context']
7
+
8
+ Style/Alias:
9
+ EnforcedStyle: prefer_alias_method
10
+ Enabled: true
11
+
12
+ Style/HashEachMethods:
13
+ Enabled: true
14
+
15
+ Style/HashTransformKeys:
16
+ Enabled: true
17
+
18
+ Style/HashTransformValues:
19
+ Enabled: true
20
+
21
+ RSpec/MultipleExpectations:
22
+ Enabled: false
@@ -0,0 +1,84 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-03-02 14:37:54 -0500 using RuboCop version 0.80.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 6
10
+ Metrics/AbcSize:
11
+ Max: 36
12
+
13
+ # Offense count: 1
14
+ # Configuration parameters: CountComments.
15
+ Metrics/ClassLength:
16
+ Max: 129
17
+
18
+ # Offense count: 3
19
+ Metrics/CyclomaticComplexity:
20
+ Max: 16
21
+
22
+ # Offense count: 5
23
+ # Configuration parameters: CountComments, ExcludedMethods.
24
+ Metrics/MethodLength:
25
+ Max: 38
26
+
27
+ # Offense count: 3
28
+ Metrics/PerceivedComplexity:
29
+ Max: 16
30
+
31
+ # Offense count: 3
32
+ Style/Documentation:
33
+ Exclude:
34
+ - 'spec/**/*'
35
+ - 'test/**/*'
36
+ - 'lib/gitlab/license.rb'
37
+ - 'lib/gitlab/license/boundary.rb'
38
+ - 'lib/gitlab/license/encryptor.rb'
39
+
40
+ # Offense count: 12
41
+ # Cop supports --auto-correct.
42
+ # Configuration parameters: EnforcedStyle.
43
+ # SupportedStyles: always, always_true, never
44
+ Style/FrozenStringLiteralComment:
45
+ Exclude:
46
+ - 'Gemfile'
47
+ - 'Rakefile'
48
+ - 'bin/console'
49
+ - 'gitlab-license.gemspec'
50
+ - 'lib/gitlab/license.rb'
51
+ - 'lib/gitlab/license/boundary.rb'
52
+ - 'lib/gitlab/license/encryptor.rb'
53
+ - 'lib/gitlab/license/version.rb'
54
+ - 'spec/gitlab/license/boundary_spec.rb'
55
+ - 'spec/gitlab/license/encryptor_spec.rb'
56
+ - 'spec/gitlab/license_spec.rb'
57
+ - 'spec/spec_helper.rb'
58
+
59
+ # Offense count: 1
60
+ # Configuration parameters: MinBodyLength.
61
+ Style/GuardClause:
62
+ Exclude:
63
+ - 'lib/gitlab/license.rb'
64
+
65
+ # Offense count: 1
66
+ # Cop supports --auto-correct.
67
+ # Configuration parameters: EnforcedStyle.
68
+ # SupportedStyles: short, verbose
69
+ Style/PreferredHashMethods:
70
+ Exclude:
71
+ - 'lib/gitlab/license.rb'
72
+
73
+ # Offense count: 1
74
+ # Cop supports --auto-correct.
75
+ Style/RescueModifier:
76
+ Exclude:
77
+ - 'lib/gitlab/license.rb'
78
+
79
+ # Offense count: 14
80
+ # Cop supports --auto-correct.
81
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
82
+ # URISchemes: http, https
83
+ Layout/LineLength:
84
+ Max: 104
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "gitlab/license"
3
+ require 'bundler/setup'
4
+ require 'gitlab/license'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "gitlab/license"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
@@ -1,24 +1,28 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'gitlab/license/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "gitlab-license"
6
+ spec.name = 'gitlab-license'
8
7
  spec.version = Gitlab::License::VERSION
9
- spec.authors = ["Douwe Maan"]
10
- spec.email = ["douwe@gitlab.com"]
8
+ spec.authors = ['Douwe Maan', 'Stan Hu', 'Tyler Amos']
9
+ spec.email = ['douwe@gitlab.com', 'stanhu@gitlab.com', 'tamos@gitlab.com']
11
10
 
12
- spec.summary = %q{gitlab-license helps you generate, verify and enforce software licenses.}
13
- spec.homepage = "https://gitlab.com/gitlab-org/gitlab-license"
14
- spec.license = "MIT"
11
+ spec.summary = 'gitlab-license helps you generate, verify and enforce software licenses.'
12
+ spec.homepage = 'https://dev.gitlab.org/gitlab/gitlab-license'
13
+ spec.license = 'MIT'
15
14
 
16
15
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.bindir = "exe"
16
+ spec.bindir = 'exe'
18
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
- spec.require_paths = ["lib"]
18
+ spec.require_paths = ['lib']
20
19
 
21
- spec.add_development_dependency "bundler", "~> 1.9"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "byebug"
20
+ spec.required_ruby_version = '>= 2.3.0'
21
+
22
+ spec.add_development_dependency 'bundler', '~> 1.9'
23
+ spec.add_development_dependency 'byebug'
24
+ spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'rspec', '~> 3.9'
26
+ spec.add_development_dependency 'rubocop', '~> 0.80.1'
27
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.38.1'
24
28
  end
@@ -1,11 +1,11 @@
1
- require "openssl"
2
- require "date"
3
- require "json"
4
- require "base64"
1
+ require 'openssl'
2
+ require 'date'
3
+ require 'json'
4
+ require 'base64'
5
5
 
6
- require "gitlab/license/version"
7
- require "gitlab/license/encryptor"
8
- require "gitlab/license/boundary"
6
+ require 'gitlab/license/version'
7
+ require 'gitlab/license/encryptor'
8
+ require 'gitlab/license/boundary'
9
9
 
10
10
  module Gitlab
11
11
  class License
@@ -18,35 +18,31 @@ module Gitlab
18
18
  @encryption_key = nil
19
19
 
20
20
  def encryption_key=(key)
21
- if key && !key.is_a?(OpenSSL::PKey::RSA)
22
- raise ArgumentError, "No RSA encryption key provided."
23
- end
21
+ raise ArgumentError, 'No RSA encryption key provided.' if key && !key.is_a?(OpenSSL::PKey::RSA)
24
22
 
25
23
  @encryption_key = key
26
24
  @encryptor = nil
27
25
  end
28
26
 
29
27
  def encryptor
30
- @encryptor ||= Encryptor.new(self.encryption_key)
28
+ @encryptor ||= Encryptor.new(encryption_key)
31
29
  end
32
30
 
33
31
  def import(data)
34
- if data.nil?
35
- raise ImportError, "No license data."
36
- end
32
+ raise ImportError, 'No license data.' if data.nil?
37
33
 
38
34
  data = Boundary.remove_boundary(data)
39
35
 
40
36
  begin
41
37
  license_json = encryptor.decrypt(data)
42
38
  rescue Encryptor::Error
43
- raise ImportError, "License data could not be decrypted."
39
+ raise ImportError, 'License data could not be decrypted.'
44
40
  end
45
41
 
46
42
  begin
47
43
  attributes = JSON.parse(license_json)
48
44
  rescue JSON::ParseError
49
- raise ImportError, "License data is invalid JSON."
45
+ raise ImportError, 'License data is invalid JSON.'
50
46
  end
51
47
 
52
48
  new(attributes)
@@ -66,7 +62,7 @@ module Gitlab
66
62
  end
67
63
 
68
64
  def valid?
69
- return false if !licensee || !licensee.is_a?(Hash) || licensee.length == 0
65
+ return false if !licensee || !licensee.is_a?(Hash) || licensee.empty?
70
66
  return false if !starts_at || !starts_at.is_a?(Date)
71
67
  return false if expires_at && !expires_at.is_a?(Date)
72
68
  return false if notify_admins_at && !notify_admins_at.is_a?(Date)
@@ -78,39 +74,39 @@ module Gitlab
78
74
  end
79
75
 
80
76
  def validate!
81
- raise ValidationError, "License is invalid" unless valid?
77
+ raise ValidationError, 'License is invalid' unless valid?
82
78
  end
83
79
 
84
80
  def will_expire?
85
- self.expires_at
81
+ expires_at
86
82
  end
87
83
 
88
84
  def will_notify_admins?
89
- self.notify_admins_at
85
+ notify_admins_at
90
86
  end
91
87
 
92
88
  def will_notify_users?
93
- self.notify_users_at
89
+ notify_users_at
94
90
  end
95
91
 
96
92
  def will_block_changes?
97
- self.block_changes_at
93
+ block_changes_at
98
94
  end
99
95
 
100
96
  def expired?
101
- will_expire? && Date.today >= self.expires_at
97
+ will_expire? && Date.today >= expires_at
102
98
  end
103
99
 
104
100
  def notify_admins?
105
- will_notify_admins? && Date.today >= self.notify_admins_at
101
+ will_notify_admins? && Date.today >= notify_admins_at
106
102
  end
107
103
 
108
104
  def notify_users?
109
- will_notify_users? && Date.today >= self.notify_users_at
105
+ will_notify_users? && Date.today >= notify_users_at
110
106
  end
111
107
 
112
108
  def block_changes?
113
- will_block_changes? && Date.today >= self.block_changes_at
109
+ will_block_changes? && Date.today >= block_changes_at
114
110
  end
115
111
 
116
112
  def restricted?(key = nil)
@@ -124,35 +120,33 @@ module Gitlab
124
120
  def attributes
125
121
  hash = {}
126
122
 
127
- hash["version"] = self.version
128
- hash["licensee"] = self.licensee
123
+ hash['version'] = version
124
+ hash['licensee'] = licensee
129
125
 
130
126
  # `issued_at` is the legacy name for starts_at.
131
127
  # TODO: Move to starts_at in a next version.
132
- hash["issued_at"] = self.starts_at
133
- hash["expires_at"] = self.expires_at if self.will_expire?
128
+ hash['issued_at'] = starts_at
129
+ hash['expires_at'] = expires_at if will_expire?
134
130
 
135
- hash["notify_admins_at"] = self.notify_admins_at if self.will_notify_admins?
136
- hash["notify_users_at"] = self.notify_users_at if self.will_notify_users?
137
- hash["block_changes_at"] = self.block_changes_at if self.will_block_changes?
131
+ hash['notify_admins_at'] = notify_admins_at if will_notify_admins?
132
+ hash['notify_users_at'] = notify_users_at if will_notify_users?
133
+ hash['block_changes_at'] = block_changes_at if will_block_changes?
138
134
 
139
- hash["restrictions"] = self.restrictions if self.restricted?
135
+ hash['restrictions'] = restrictions if restricted?
140
136
 
141
137
  hash
142
138
  end
143
139
 
144
- def to_json
145
- JSON.dump(self.attributes)
140
+ def to_json(*_args)
141
+ JSON.dump(attributes)
146
142
  end
147
143
 
148
144
  def export(boundary: nil)
149
145
  validate!
150
146
 
151
- data = self.class.encryptor.encrypt(self.to_json)
147
+ data = self.class.encryptor.encrypt(to_json)
152
148
 
153
- if boundary
154
- data = Boundary.add_boundary(data, boundary)
155
- end
149
+ data = Boundary.add_boundary(data, boundary) if boundary
156
150
 
157
151
  data
158
152
  end
@@ -162,18 +156,16 @@ module Gitlab
162
156
  def load_attributes(attributes)
163
157
  attributes = Hash[attributes.map { |k, v| [k.to_s, v] }]
164
158
 
165
- version = attributes["version"] || 1
166
- unless version && version == 1
167
- raise ArgumentError, "Version is too new"
168
- end
159
+ version = attributes['version'] || 1
160
+ raise ArgumentError, 'Version is too new' unless version && version == 1
169
161
 
170
162
  @version = version
171
163
 
172
- @licensee = attributes["licensee"]
164
+ @licensee = attributes['licensee']
173
165
 
174
166
  # `issued_at` is the legacy name for starts_at.
175
167
  # TODO: Move to starts_at in a next version.
176
- %w(issued_at expires_at notify_admins_at notify_users_at block_changes_at).each do |attr|
168
+ %w[issued_at expires_at notify_admins_at notify_users_at block_changes_at].each do |attr|
177
169
  value = attributes[attr]
178
170
  value = Date.parse(value) rescue nil if value.is_a?(String)
179
171
 
@@ -182,8 +174,8 @@ module Gitlab
182
174
  send("#{attr}=", value)
183
175
  end
184
176
 
185
- restrictions = attributes["restrictions"]
186
- if restrictions && restrictions.is_a?(Hash)
177
+ restrictions = attributes['restrictions']
178
+ if restrictions&.is_a?(Hash)
187
179
  restrictions = Hash[restrictions.map { |k, v| [k.to_sym, v] }]
188
180
  @restrictions = restrictions
189
181
  end
@@ -15,9 +15,9 @@ module Gitlab
15
15
 
16
16
  padding = total_padding / 2.0
17
17
  [
18
- "-" * padding.ceil,
18
+ '-' * padding.ceil,
19
19
  message,
20
- "-" * padding.floor
20
+ '-' * padding.floor
21
21
  ].join
22
22
  end
23
23
 
@@ -8,17 +8,13 @@ module Gitlab
8
8
  attr_accessor :key
9
9
 
10
10
  def initialize(key)
11
- if key && !key.is_a?(OpenSSL::PKey::RSA)
12
- raise KeyError, "No RSA encryption key provided."
13
- end
11
+ raise KeyError, 'No RSA encryption key provided.' if key && !key.is_a?(OpenSSL::PKey::RSA)
14
12
 
15
13
  @key = key
16
14
  end
17
15
 
18
16
  def encrypt(data)
19
- unless key.private?
20
- raise KeyError, "Provided key is not a private key."
21
- end
17
+ raise KeyError, 'Provided key is not a private key.' unless key.private?
22
18
 
23
19
  # Encrypt the data using symmetric AES encryption.
24
20
  cipher = OpenSSL::Cipher::AES128.new(:CBC)
@@ -29,12 +25,12 @@ module Gitlab
29
25
  encrypted_data = cipher.update(data) + cipher.final
30
26
 
31
27
  # Encrypt the AES key using asymmetric RSA encryption.
32
- encrypted_key = self.key.private_encrypt(aes_key)
28
+ encrypted_key = key.private_encrypt(aes_key)
33
29
 
34
30
  encryption_data = {
35
- "data" => Base64.encode64(encrypted_data),
36
- "key" => Base64.encode64(encrypted_key),
37
- "iv" => Base64.encode64(aes_iv)
31
+ 'data' => Base64.encode64(encrypted_data),
32
+ 'key' => Base64.encode64(encrypted_key),
33
+ 'iv' => Base64.encode64(aes_iv)
38
34
  }
39
35
 
40
36
  json_data = JSON.dump(encryption_data)
@@ -42,31 +38,29 @@ module Gitlab
42
38
  end
43
39
 
44
40
  def decrypt(data)
45
- unless key.public?
46
- raise KeyError, "Provided key is not a public key."
47
- end
41
+ raise KeyError, 'Provided key is not a public key.' unless key.public?
48
42
 
49
43
  json_data = Base64.decode64(data.chomp)
50
44
 
51
45
  begin
52
46
  encryption_data = JSON.parse(json_data)
53
47
  rescue JSON::ParserError
54
- raise DecryptionError, "Encryption data is invalid JSON."
48
+ raise DecryptionError, 'Encryption data is invalid JSON.'
55
49
  end
56
50
 
57
- unless %w(data key iv).all? { |key| encryption_data[key] }
58
- raise DecryptionError, "Required field missing from encryption data."
51
+ unless %w[data key iv].all? { |key| encryption_data[key] }
52
+ raise DecryptionError, 'Required field missing from encryption data.'
59
53
  end
60
54
 
61
- encrypted_data = Base64.decode64(encryption_data["data"])
62
- encrypted_key = Base64.decode64(encryption_data["key"])
63
- aes_iv = Base64.decode64(encryption_data["iv"])
55
+ encrypted_data = Base64.decode64(encryption_data['data'])
56
+ encrypted_key = Base64.decode64(encryption_data['key'])
57
+ aes_iv = Base64.decode64(encryption_data['iv'])
64
58
 
65
59
  begin
66
60
  # Decrypt the AES key using asymmetric RSA encryption.
67
61
  aes_key = self.key.public_decrypt(encrypted_key)
68
62
  rescue OpenSSL::PKey::RSAError
69
- raise DecryptionError, "AES encryption key could not be decrypted."
63
+ raise DecryptionError, 'AES encryption key could not be decrypted.'
70
64
  end
71
65
 
72
66
  # Decrypt the data using symmetric AES encryption.
@@ -74,21 +68,21 @@ module Gitlab
74
68
  cipher.decrypt
75
69
 
76
70
  begin
77
- cipher.key = aes_key
71
+ cipher.key = aes_key
78
72
  rescue OpenSSL::Cipher::CipherError
79
- raise DecryptionError, "AES encryption key is invalid."
73
+ raise DecryptionError, 'AES encryption key is invalid.'
80
74
  end
81
75
 
82
76
  begin
83
- cipher.iv = aes_iv
77
+ cipher.iv = aes_iv
84
78
  rescue OpenSSL::Cipher::CipherError
85
- raise DecryptionError, "AES IV is invalid."
79
+ raise DecryptionError, 'AES IV is invalid.'
86
80
  end
87
81
 
88
82
  begin
89
83
  data = cipher.update(encrypted_data) + cipher.final
90
84
  rescue OpenSSL::Cipher::CipherError
91
- raise DecryptionError, "Data could not be decrypted."
85
+ raise DecryptionError, 'Data could not be decrypted.'
92
86
  end
93
87
 
94
88
  data
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  class License
3
- VERSION = "1.0.0"
3
+ VERSION = '1.0.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-license
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douwe Maan
8
+ - Stan Hu
9
+ - Tyler Amos
8
10
  autorequire:
9
11
  bindir: exe
10
12
  cert_chain: []
11
- date: 2016-07-12 00:00:00.000000000 Z
13
+ date: 2020-07-30 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: bundler
@@ -24,6 +26,20 @@ dependencies:
24
26
  - - "~>"
25
27
  - !ruby/object:Gem::Version
26
28
  version: '1.9'
29
+ - !ruby/object:Gem::Dependency
30
+ name: byebug
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
27
43
  - !ruby/object:Gem::Dependency
28
44
  name: rake
29
45
  requirement: !ruby/object:Gem::Requirement
@@ -39,28 +55,60 @@ dependencies:
39
55
  - !ruby/object:Gem::Version
40
56
  version: '10.0'
41
57
  - !ruby/object:Gem::Dependency
42
- name: byebug
58
+ name: rspec
43
59
  requirement: !ruby/object:Gem::Requirement
44
60
  requirements:
45
- - - ">="
61
+ - - "~>"
46
62
  - !ruby/object:Gem::Version
47
- version: '0'
63
+ version: '3.9'
48
64
  type: :development
49
65
  prerelease: false
50
66
  version_requirements: !ruby/object:Gem::Requirement
51
67
  requirements:
52
- - - ">="
68
+ - - "~>"
53
69
  - !ruby/object:Gem::Version
54
- version: '0'
70
+ version: '3.9'
71
+ - !ruby/object:Gem::Dependency
72
+ name: rubocop
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 0.80.1
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: 0.80.1
85
+ - !ruby/object:Gem::Dependency
86
+ name: rubocop-rspec
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: 1.38.1
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: 1.38.1
55
99
  description:
56
100
  email:
57
101
  - douwe@gitlab.com
102
+ - stanhu@gitlab.com
103
+ - tamos@gitlab.com
58
104
  executables: []
59
105
  extensions: []
60
106
  extra_rdoc_files: []
61
107
  files:
62
108
  - ".gitignore"
63
109
  - ".rspec"
110
+ - ".rubocop.yml"
111
+ - ".rubocop_todo.yml"
64
112
  - ".travis.yml"
65
113
  - Gemfile
66
114
  - LICENSE.txt
@@ -73,7 +121,7 @@ files:
73
121
  - lib/gitlab/license/boundary.rb
74
122
  - lib/gitlab/license/encryptor.rb
75
123
  - lib/gitlab/license/version.rb
76
- homepage: https://gitlab.com/gitlab-org/gitlab-license
124
+ homepage: https://dev.gitlab.org/gitlab/gitlab-license
77
125
  licenses:
78
126
  - MIT
79
127
  metadata: {}
@@ -85,15 +133,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
133
  requirements:
86
134
  - - ">="
87
135
  - !ruby/object:Gem::Version
88
- version: '0'
136
+ version: 2.3.0
89
137
  required_rubygems_version: !ruby/object:Gem::Requirement
90
138
  requirements:
91
139
  - - ">="
92
140
  - !ruby/object:Gem::Version
93
141
  version: '0'
94
142
  requirements: []
95
- rubyforge_project:
96
- rubygems_version: 2.4.8
143
+ rubygems_version: 3.0.3
97
144
  signing_key:
98
145
  specification_version: 4
99
146
  summary: gitlab-license helps you generate, verify and enforce software licenses.