entitlements-app 1.1.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b65ef59f26ece50f2a7924ff8fb852ee89878bc88d6a7546d66928416da99029
4
- data.tar.gz: 3a9a391bc53f96ed3b09f0e206a9a4d6d0eeb5e0cff7013c3372c9f47e96a5fb
3
+ metadata.gz: f374fa7a4154693db9513b354103b917e1a12d58ab9644e75f52bbfb63156e61
4
+ data.tar.gz: a942f1ece43a9e3fc3552d9144ce3ce7c095276ecb0706d3e8de975fcfd5288b
5
5
  SHA512:
6
- metadata.gz: ea71dab3560473cf24819f74dc146eb8b357c96a6751f45f1bdef5c565cfb383afd0603a9deca5ede3cf6212fc82e2ade13b3ca70bf67486bcf067d111ac173f
7
- data.tar.gz: 2e8ee03e6577a7a798b13af0f66571792a32a6087194f0952691b6511ebea19cc268976083ce231fad67a01494ec0a2eb4fbb097241bec62001fc98aa5fbf8f5
6
+ metadata.gz: 50a19c9c040154f27ea8bdd86dfccf015a2eac1fc6c2f38796c60f6192a0e094e5afd78bcf65e3d5bebaa4e7966662c52e7eb1d135c599d723e23a27d1c08157
7
+ data.tar.gz: f4a2256185eaf9b0a1950450e62cee75679aa62e6d208ea50795bc4972bc30348c4877b6befd8f848f55d85702d865f3f3b1c285ea8ecd2e1c39c82384bcbee1
@@ -51,6 +51,8 @@ module Entitlements
51
51
  Entitlements.cache[:predictive_state][:by_ou][ou] ||= {}
52
52
  Entitlements.cache[:predictive_state][:by_ou][ou][identifier] = member_set
53
53
  Entitlements.cache[:predictive_state][:by_dn][dn] = { members: member_set, metadata: metadata }
54
+ rescue => e
55
+ raise "Failed to load predictive state cache file #{filename}: #{e.message}"
54
56
  end
55
57
 
56
58
  Entitlements.logger.debug "Loaded #{Entitlements.cache[:predictive_state][:by_ou].keys.size} OU(s) from cache"
@@ -34,6 +34,28 @@ module Entitlements
34
34
  parsed_data.fetch("description", "")
35
35
  end
36
36
 
37
+ # Standard interface: Get the schema version of this group.
38
+ #
39
+ # Takes no arguments.
40
+ # Examples: "entitlements/v1", "entitlements/v1.2.3", "entitlements/1.2.3"
41
+ # Format: namespace/major.minor.patch
42
+ #
43
+ # Returns a String with the schema version (k8s-style), or "entitlements/v1" if undefined.
44
+ Contract C::None => String
45
+ def schema_version
46
+ schema_version = parsed_data.fetch("schema_version", "entitlements/v1").to_s
47
+
48
+ namespace, version = schema_version.split("/")
49
+
50
+ unless namespace.match?(/\A[a-zA-Z0-9]+\z/) && version.match?(/\A(v?\d+(\.\d+){0,2})\z/)
51
+ raise "Invalid schema version format: #{schema_version} - Expected format is '<namespace>/<version>' " \
52
+ "- Examples: entitlements/v1, entitlements/v1.2.3, entitlements/1.2.3"
53
+ end
54
+
55
+ # rebuild the schema version string to ensure it's in the correct format and return it
56
+ return "#{namespace}/#{version}"
57
+ end
58
+
37
59
  # Files can support modifiers that act independently of rules.
38
60
  # This returns the modifiers from the file as a hash.
39
61
  #
data/lib/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Entitlements
4
4
  module Version
5
- VERSION = "1.1.0"
5
+ VERSION = "1.2.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: entitlements-app
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc. Security Ops
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-27 00:00:00.000000000 Z
11
+ date: 2025-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -526,7 +526,7 @@ homepage: https://github.com/github/entitlements-app
526
526
  licenses:
527
527
  - MIT
528
528
  metadata: {}
529
- post_install_message:
529
+ post_install_message:
530
530
  rdoc_options: []
531
531
  require_paths:
532
532
  - lib
@@ -542,7 +542,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
542
542
  version: '0'
543
543
  requirements: []
544
544
  rubygems_version: 3.5.9
545
- signing_key:
545
+ signing_key:
546
546
  specification_version: 4
547
547
  summary: git-managed LDAP group configurations
548
548
  test_files: []