gitlab-license 2.0.0 → 2.2.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
2
  SHA256:
3
- metadata.gz: 517b48dd59c73e6c06a3141dbbff736b6ac5aec0db0575e81e8eaa9efca214c3
4
- data.tar.gz: a3ae2f4b90f8ab04f042e420e81b268bd0250ff76234d29424fa22badd127ff9
3
+ metadata.gz: e97f77de6b6b6e0b4910b0b892cc038dcf0c9103b65fc80a2fb27298a6be1140
4
+ data.tar.gz: 5c2a31361536c8a6eb4b87511ed41bdd889bf56239f28cdee43d2287c924b41e
5
5
  SHA512:
6
- metadata.gz: 7c0b2e7c189d8abad15856eea602aefa67eb772a44609278a7600365389c706aa7b0594a51fed2ea7ade3307162ecbe053d5b17ca3bc7ed0054a104988e1d88d
7
- data.tar.gz: 4dbaf5ea37ae26de84edd087269b10676879164abc0bee0578c3a6b6af88c832fe0aba70f22ee489de46eeeea2023b33c997ae999b51deeffbb0b05939662d04
6
+ metadata.gz: f4724c22299fcfd99440b0f653db6cf58e884bdf52335733136793e716aaa830cc2c25a393d4d809af46e5f098c02b3432afaa4407180b523f9e8f2f400f35dc
7
+ data.tar.gz: 99989f3f28e4fd3c04b866780c5565458620dd9bb15ba6407cd41f586dae70b198271f66f7cb40853b026d8a02ca68c4db1f2a32eac14eb1e919a7c20fb0b5a8
data/README.md CHANGED
@@ -18,6 +18,17 @@ Or install it yourself as:
18
18
 
19
19
  $ gem install gitlab-license
20
20
 
21
+ ## Release
22
+
23
+ To release a new version of this gem, follow these steps:
24
+
25
+ 1. Bump the `VERSION` constant in [`lib/gitlab/license/version.rb`](https://dev.gitlab.org/gitlab/gitlab-license/-/blob/master/lib/gitlab/license/version.rb#L3). This is typically merged as part of the feature MR.
26
+ 1. Create a [new release](https://dev.gitlab.org/gitlab/gitlab-license/-/releases) in the project (e.g. `v2.1.0`). For more details on creating a new release, refer to the [documentation](https://dev.gitlab.org/help/user/project/releases/index.md#create-a-release).
27
+ 1. [Build the gem](https://guides.rubygems.org/command-reference/#gem-build) to be published: `gem build gitlab-license.gemspec`
28
+ 1. [Publish the gem](https://guides.rubygems.org/publishing) to Rubygems: `gem push gitlab-license-2.1.0.gem`
29
+ - Note you will need to be added as an owner in Rubygems in order to publish.
30
+ - Once this is published, the new version of the gem can be installed in other projects like CustomersDot or GitLab via bundler or using `gem install` directly.
31
+
21
32
  ## Usage
22
33
 
23
34
  ```ruby
@@ -48,17 +59,17 @@ license.licensee = {
48
59
  "Email" => "douwe@gitlab.com"
49
60
  }
50
61
 
51
- # The date the license starts.
62
+ # The date the license starts.
52
63
  # Required.
53
64
  license.starts_at = Date.new(2015, 4, 24)
54
- # The date the license expires.
65
+ # The date the license expires.
55
66
  # Not required, to allow lifetime licenses.
56
67
  license.expires_at = Date.new(2016, 4, 23)
57
68
 
58
69
  # The below dates are hardcoded in the license so that you can play with the
59
70
  # period after which there are "repercussions" to license expiration.
60
71
 
61
- # The date admins will be notified about the license's pending expiration.
72
+ # The date admins will be notified about the license's pending expiration.
62
73
  # Not required.
63
74
  license.notify_admins_at = Date.new(2016, 4, 19)
64
75
 
@@ -66,7 +77,7 @@ license.notify_admins_at = Date.new(2016, 4, 19)
66
77
  # Not required.
67
78
  license.notify_users_at = Date.new(2016, 4, 23)
68
79
 
69
- # The date "changes" like code pushes, issue or merge request creation
80
+ # The date "changes" like code pushes, issue or merge request creation
70
81
  # or modification and project creation will be blocked.
71
82
  # Not required.
72
83
  license.block_changes_at = Date.new(2016, 5, 7)
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  class License
3
- VERSION = '2.0.0'.freeze
3
+ VERSION = '2.2.1'.freeze
4
4
  end
5
5
  end
@@ -52,9 +52,9 @@ module Gitlab
52
52
  attr_reader :version
53
53
  attr_accessor :licensee, :starts_at, :expires_at, :notify_admins_at,
54
54
  :notify_users_at, :block_changes_at, :last_synced_at, :next_sync_at,
55
- :activated_at, :restrictions, :cloud_licensing_enabled, :auto_renew_enabled,
56
- :seat_reconciliation_enabled, :operational_metrics_enabled,
57
- :generated_from_customers_dot
55
+ :activated_at, :restrictions, :cloud_licensing_enabled,
56
+ :offline_cloud_licensing_enabled, :auto_renew_enabled, :seat_reconciliation_enabled,
57
+ :operational_metrics_enabled, :generated_from_customers_dot
58
58
 
59
59
  alias_method :issued_at, :starts_at
60
60
  alias_method :issued_at=, :starts_at=
@@ -68,6 +68,8 @@ module Gitlab
68
68
  false
69
69
  elsif !starts_at || !starts_at.is_a?(Date)
70
70
  false
71
+ elsif !expires_at && !gl_team_license? && !jh_team_license?
72
+ false
71
73
  elsif expires_at && !expires_at.is_a?(Date)
72
74
  false
73
75
  elsif notify_admins_at && !notify_admins_at.is_a?(Date)
@@ -84,6 +86,8 @@ module Gitlab
84
86
  false
85
87
  elsif restrictions && !restrictions.is_a?(Hash)
86
88
  false
89
+ elsif !cloud_licensing? && offline_cloud_licensing?
90
+ false
87
91
  else
88
92
  true
89
93
  end
@@ -137,6 +141,10 @@ module Gitlab
137
141
  cloud_licensing_enabled == true
138
142
  end
139
143
 
144
+ def offline_cloud_licensing?
145
+ offline_cloud_licensing_enabled == true
146
+ end
147
+
140
148
  def auto_renew?
141
149
  auto_renew_enabled == true
142
150
  end
@@ -153,6 +161,14 @@ module Gitlab
153
161
  generated_from_customers_dot == true
154
162
  end
155
163
 
164
+ def gl_team_license?
165
+ licensee['Company'].to_s.match?(/GitLab/i) && licensee['Email'].to_s.end_with?('@gitlab.com')
166
+ end
167
+
168
+ def jh_team_license?
169
+ licensee['Company'].to_s.match?(/GitLab/i) && licensee['Email'].to_s.end_with?('@jihulab.com')
170
+ end
171
+
156
172
  def restricted?(key = nil)
157
173
  if key
158
174
  restricted? && restrictions.has_key?(key)
@@ -181,6 +197,7 @@ module Gitlab
181
197
  hash['activated_at'] = activated_at if activated?
182
198
 
183
199
  hash['cloud_licensing_enabled'] = cloud_licensing?
200
+ hash['offline_cloud_licensing_enabled'] = offline_cloud_licensing?
184
201
  hash['auto_renew_enabled'] = auto_renew?
185
202
  hash['seat_reconciliation_enabled'] = seat_reconciliation?
186
203
  hash['operational_metrics_enabled'] = operational_metrics?
@@ -209,7 +226,7 @@ module Gitlab
209
226
  private
210
227
 
211
228
  def load_attributes(attributes)
212
- attributes = Hash[attributes.map { |k, v| [k.to_s, v] }]
229
+ attributes = attributes.transform_keys(&:to_s)
213
230
 
214
231
  version = attributes['version'] || 1
215
232
  raise ArgumentError, 'Version is too new' unless version && version == 1
@@ -230,6 +247,7 @@ module Gitlab
230
247
 
231
248
  %w[
232
249
  cloud_licensing_enabled
250
+ offline_cloud_licensing_enabled
233
251
  auto_renew_enabled
234
252
  seat_reconciliation_enabled
235
253
  operational_metrics_enabled
@@ -240,7 +258,7 @@ module Gitlab
240
258
 
241
259
  restrictions = attributes['restrictions']
242
260
  if restrictions&.is_a?(Hash)
243
- restrictions = Hash[restrictions.map { |k, v| [k.to_sym, v] }]
261
+ restrictions = restrictions.transform_keys(&:to_sym)
244
262
  @restrictions = restrictions
245
263
  end
246
264
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-license
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douwe Maan
8
8
  - Stan Hu
9
9
  - Tyler Amos
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2021-06-23 00:00:00.000000000 Z
13
+ date: 2022-08-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -96,7 +96,7 @@ dependencies:
96
96
  - - "~>"
97
97
  - !ruby/object:Gem::Version
98
98
  version: 1.38.1
99
- description:
99
+ description:
100
100
  email:
101
101
  - douwe@gitlab.com
102
102
  - stanhu@gitlab.com
@@ -125,7 +125,7 @@ homepage: https://dev.gitlab.org/gitlab/gitlab-license
125
125
  licenses:
126
126
  - MIT
127
127
  metadata: {}
128
- post_install_message:
128
+ post_install_message:
129
129
  rdoc_options: []
130
130
  require_paths:
131
131
  - lib
@@ -140,8 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
140
  - !ruby/object:Gem::Version
141
141
  version: '0'
142
142
  requirements: []
143
- rubygems_version: 3.0.3
144
- signing_key:
143
+ rubygems_version: 3.2.33
144
+ signing_key:
145
145
  specification_version: 4
146
146
  summary: gitlab-license helps you generate, verify and enforce software licenses.
147
147
  test_files: []