@@ -20,17 +20,10 @@ def map_files_to_owners
20
20
return @@map_files_to_owners if @@map_files_to_owners &.keys && @@map_files_to_owners . keys . count . positive?
21
21
22
22
@@map_files_to_owners = CodeTeams . all . each_with_object ( { } ) do |team , map | # rubocop:disable Style/ClassVars
23
- TeamPlugins ::Ownership . for ( team ) . owned_globs . each do |glob |
24
- Dir . glob ( glob ) . each do |filename |
25
- map [ filename ] = team
26
- end
27
- end
23
+ code_team = TeamPlugins ::Ownership . for ( team )
28
24
29
- # Remove anything that is unowned
30
- TeamPlugins ::Ownership . for ( team ) . unowned_globs . each do |glob |
31
- Dir . glob ( glob ) . each do |filename |
32
- map . delete ( filename )
33
- end
25
+ ( Dir . glob ( code_team . owned_globs ) - Dir . glob ( code_team . unowned_globs ) ) . each do |filename |
26
+ map [ filename ] = team
34
27
end
35
28
end
36
29
end
@@ -62,18 +55,19 @@ def description
62
55
end
63
56
def find_overlapping_globs
64
57
mapped_files = T . let ( { } , T ::Hash [ String , T ::Array [ MappingContext ] ] )
65
- CodeTeams . all . each_with_object ( { } ) do |team , _map |
66
- TeamPlugins ::Ownership . for ( team ) . owned_globs . each do |glob |
67
- Dir . glob ( glob ) . each do |filename |
58
+ CodeTeams . all . each do |team |
59
+ code_team = TeamPlugins ::Ownership . for ( team )
60
+
61
+ code_team . owned_globs . each do |glob |
62
+ Dir . glob ( glob ) do |filename |
68
63
mapped_files [ filename ] ||= [ ]
69
64
T . must ( mapped_files [ filename ] ) << MappingContext . new ( glob : glob , team : team )
70
65
end
71
66
end
72
- # Remove anything that is unowned
73
- TeamPlugins ::Ownership . for ( team ) . unowned_globs . each do |glob |
74
- Dir . glob ( glob ) . each do |filename |
75
- mapped_files . reject! { |key , value | key == filename && value . any? { |context | context . team == team } }
76
- end
67
+
68
+ # Remove anything that is unowned, globbing them all at once
69
+ Dir . glob ( code_team . unowned_globs ) do |filename |
70
+ mapped_files . reject! { |key , value | key == filename && value . any? { |context | context . team == team } }
77
71
end
78
72
end
79
73
0 commit comments