code_ownership 1.38.0 → 1.38.2
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/lib/code_ownership/private/codeowners_file.rb +20 -1
- data/lib/code_ownership.rb +17 -7
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b40aef85c83e70ad2c2a8ba45030b3e894b184ec71e897443d47b859343a8636
|
4
|
+
data.tar.gz: 27741ae85077282dca91f42f274325d66ee25b8ed01eaab733aab581f23e6e4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d8c2765433571d6407ec67608554fb04dc9b14d84948ddf9b227874aca628e3fd4e927c6154a3d41ede65bdd8628f522e77c089fab9727ec6860339a03673e3
|
7
|
+
data.tar.gz: 0c8eeb737cbbcce93210c43f0f6c21d846761fa94daa97243796747db3343bf6fd40c033cd3337a628716dd91714354ed5d2af1a2eda1ea29ea716f9ef0687e7
|
@@ -73,7 +73,26 @@ module CodeOwnership
|
|
73
73
|
|
74
74
|
next if ownership_entries.none?
|
75
75
|
|
76
|
-
|
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
|
[
|
data/lib/code_ownership.rb
CHANGED
@@ -136,13 +136,23 @@ module CodeOwnership
|
|
136
136
|
#
|
137
137
|
# ./app/controllers/some_controller.rb:43:in `block (3 levels) in create'
|
138
138
|
#
|
139
|
-
backtrace_line =
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
139
|
+
backtrace_line = if RUBY_VERSION >= '3.4.0'
|
140
|
+
%r{\A(#{Pathname.pwd}/|\./)?
|
141
|
+
(?<file>.+) # Matches 'app/controllers/some_controller.rb'
|
142
|
+
:
|
143
|
+
(?<line>\d+) # Matches '43'
|
144
|
+
:in\s
|
145
|
+
'(?<function>.*)' # Matches "`block (3 levels) in create'"
|
146
|
+
\z}x
|
147
|
+
else
|
148
|
+
%r{\A(#{Pathname.pwd}/|\./)?
|
149
|
+
(?<file>.+) # Matches 'app/controllers/some_controller.rb'
|
150
|
+
:
|
151
|
+
(?<line>\d+) # Matches '43'
|
152
|
+
:in\s
|
153
|
+
`(?<function>.*)' # Matches "`block (3 levels) in create'"
|
154
|
+
\z}x
|
155
|
+
end
|
146
156
|
|
147
157
|
backtrace.lazy.filter_map do |line|
|
148
158
|
match = line.match(backtrace_line)
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: code_ownership
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.38.
|
4
|
+
version: 1.38.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gusto Engineers
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-01-16 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: code_teams
|
@@ -205,7 +204,6 @@ metadata:
|
|
205
204
|
source_code_uri: https://github.com/rubyatscale/code_ownership
|
206
205
|
changelog_uri: https://github.com/rubyatscale/code_ownership/releases
|
207
206
|
allowed_push_host: https://rubygems.org
|
208
|
-
post_install_message:
|
209
207
|
rdoc_options: []
|
210
208
|
require_paths:
|
211
209
|
- lib
|
@@ -220,8 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
220
218
|
- !ruby/object:Gem::Version
|
221
219
|
version: '0'
|
222
220
|
requirements: []
|
223
|
-
rubygems_version: 3.
|
224
|
-
signing_key:
|
221
|
+
rubygems_version: 3.6.2
|
225
222
|
specification_version: 4
|
226
223
|
summary: A gem to help engineering teams declare ownership of code
|
227
224
|
test_files: []
|