code_ownership 1.38.0 → 1.38.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: 7883f0d73587e099adf43101b91f0a2f296912cfa3e994e2f1c70472de918e4b
4
- data.tar.gz: 1e11b8c1ce41986fa40325b3edf10369b00a7ed8a42f47e2ed4fe9694f565642
3
+ metadata.gz: 8319ea8a2a73ecec20a28193627b25b877ae9983b206dae6ff9422d5be157625
4
+ data.tar.gz: 13228207fa0b9042fe5f87e53c80234e862a476ef4a3888bce7f4bbdfb64e970
5
5
  SHA512:
6
- metadata.gz: 5a381fc3a9867de019b70ada03aca768c427b05198449c4d6478f245f79fefd8e2bd56ab5df06fbe62577d12ce6f6bf80a6509f8347f65831ab8251075b1047f
7
- data.tar.gz: 5ea28b28bbf41f5620fbf07d6d4083f8dcfea577648612fd8f05d4e128007ff73d6cec2e1a433ef84cf35a1e4b2c8b4a2d4fca0a8bbaeafedca948be293aaaba
6
+ metadata.gz: a80e615b1d6e7cc8ec795a7b2ffdb20f0ffb8b0e8027cd70e8361542ff5650f195fca4fdf4ece8e0f1331e987dcef9e2d1106c7125925a43d16403e6e9ed0a78
7
+ data.tar.gz: 8fabc79d074c2491c49a3cdc1b0caf24f009dbab3e81b7cdcb84ac4b6d563d6ac7e32c83ec6494a3df81d8293afa01c7674e87b0b05878515177e757a4df0fe3
@@ -73,7 +73,26 @@ module CodeOwnership
73
73
 
74
74
  next if ownership_entries.none?
75
75
 
76
- codeowners_file_lines += ['', "# #{mapper_description}", *ownership_entries.sort]
76
+ # When we have a special character at the beginning of a folder name, then this character
77
+ # may be prioritized over *. However, we want the most specific folder to be listed last
78
+ # in the CODEOWNERS file, so we should prioritize any character above an asterisk in the
79
+ # same position.
80
+ if mapper_description == OwnershipMappers::FileAnnotations::DESCRIPTION
81
+ # individually owned files definitely won't have globs so we don't need to do special sorting
82
+ sorted_ownership_entries = ownership_entries.sort
83
+ else
84
+ sorted_ownership_entries = ownership_entries.sort do |entry1, entry2|
85
+ if entry2.start_with?(entry1.split('**').first)
86
+ -1
87
+ elsif entry1.start_with?(entry2.split('**').first)
88
+ 1
89
+ else
90
+ entry1 <=> entry2
91
+ end
92
+ end
93
+ end
94
+
95
+ codeowners_file_lines += ['', "# #{mapper_description}", *sorted_ownership_entries]
77
96
  end
78
97
 
79
98
  [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_ownership
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.38.0
4
+ version: 1.38.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-06 00:00:00.000000000 Z
11
+ date: 2024-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: code_teams