code_ownership 1.30.0 → 1.31.0

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: 9810b0bbef35bf354841da08d53391f864e213540ebb61fa5117b98df3b20ba9
4
- data.tar.gz: 70dd498844898d361494a86a0c57da788d69cbd7c03eb7e3883c0d4520781089
3
+ metadata.gz: 292664613750d5a5413984bac92ade17caa9a7f1796123455d16dd6f76ae6410
4
+ data.tar.gz: 306f65f710f7462acc3b001232e73e3561a63faa260153b7f759adc3dbf0a28e
5
5
  SHA512:
6
- metadata.gz: d17b0680d21a907fb5581fa98adc16255984580ac2336a2170d69ab1d11b281d9d180e68e2866435ed5aab8dec1dab90f5849d8431311ddaa3d9014c6a961e9d
7
- data.tar.gz: 3e1d9cf9e16234c199085f1de858590af922c7416a219a84fbc3c55c274a1eff59c7b6dba95e66b46f141328dcbd82005cbdaa55cb45b5d0dac32d2778156602
6
+ metadata.gz: 196be6927310bda4e577f94ea9553d832abf85f2dbc65e2d2efc0c55016001a9d8b6d6c64674aeb846ae41f1500bd0f5254c6e486017653cb03c620be9be0865
7
+ data.tar.gz: bdf65c513ab30773eed96cb934d1212d4599e0f54f0f0fcc1729b54bd6a007aefc6edc7dd647c2348c3020c2afe04d79017b84013d51cb1b6fb3284577653a5f
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ # typed: true
4
+
5
+ module CodeOwnership
6
+ module Private
7
+ module OwnershipMappers
8
+ class TeamYmlOwnership
9
+ extend T::Sig
10
+ include Interface
11
+
12
+ @@map_files_to_owners = T.let(@map_files_to_owners, T.nilable(T::Hash[String, T.nilable(::CodeTeams::Team)])) # rubocop:disable Style/ClassVars
13
+ @@map_files_to_owners = {} # rubocop:disable Style/ClassVars
14
+ @@codeowners_lines_to_owners = T.let(@codeowners_lines_to_owners, T.nilable(T::Hash[String, T.nilable(::CodeTeams::Team)])) # rubocop:disable Style/ClassVars
15
+ @@codeowners_lines_to_owners = {} # rubocop:disable Style/ClassVars
16
+
17
+ sig do
18
+ override.
19
+ params(files: T::Array[String]).
20
+ returns(T::Hash[String, T.nilable(::CodeTeams::Team)])
21
+ end
22
+ def map_files_to_owners(files) # rubocop:disable Lint/UnusedMethodArgument
23
+ return @@map_files_to_owners if @@map_files_to_owners&.keys && @@map_files_to_owners.keys.count > 0
24
+
25
+ @@map_files_to_owners = CodeTeams.all.each_with_object({}) do |team, map| # rubocop:disable Style/ClassVars
26
+ map[team.config_yml] = team
27
+ end
28
+ end
29
+
30
+ sig do
31
+ override.params(file: String).
32
+ returns(T.nilable(::CodeTeams::Team))
33
+ end
34
+ def map_file_to_owner(file)
35
+ map_files_to_owners([file])[file]
36
+ end
37
+
38
+ sig do
39
+ override.returns(T::Hash[String, T.nilable(::CodeTeams::Team)])
40
+ end
41
+ def codeowners_lines_to_owners
42
+ return @@codeowners_lines_to_owners if @@codeowners_lines_to_owners&.keys && @@codeowners_lines_to_owners.keys.count > 0
43
+
44
+ @@codeowners_lines_to_owners = CodeTeams.all.each_with_object({}) do |team, map| # rubocop:disable Style/ClassVars
45
+ map[team.config_yml] = team
46
+ end
47
+ end
48
+
49
+ sig { override.void }
50
+ def bust_caches!
51
+ @@codeowners_lines_to_owners = {} # rubocop:disable Style/ClassVars
52
+ @@map_files_to_owners = {} # rubocop:disable Style/ClassVars
53
+ end
54
+
55
+ sig { override.returns(String) }
56
+ def description
57
+ 'Team YML ownership'
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -16,6 +16,7 @@ require 'code_ownership/private/ownership_mappers/file_annotations'
16
16
  require 'code_ownership/private/ownership_mappers/team_globs'
17
17
  require 'code_ownership/private/ownership_mappers/package_ownership'
18
18
  require 'code_ownership/private/ownership_mappers/js_package_ownership'
19
+ require 'code_ownership/private/ownership_mappers/team_yml_ownership'
19
20
 
20
21
  module CodeOwnership
21
22
  module Private
@@ -64,6 +65,7 @@ module CodeOwnership
64
65
  Private::OwnershipMappers::TeamGlobs.new,
65
66
  Private::OwnershipMappers::PackageOwnership.new,
66
67
  Private::OwnershipMappers::JsPackageOwnership.new,
68
+ Private::OwnershipMappers::TeamYmlOwnership.new,
67
69
  ]
68
70
  end
69
71
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_ownership
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.30.0
4
+ version: 1.31.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
@@ -141,6 +141,7 @@ files:
141
141
  - lib/code_ownership/private/ownership_mappers/js_package_ownership.rb
142
142
  - lib/code_ownership/private/ownership_mappers/package_ownership.rb
143
143
  - lib/code_ownership/private/ownership_mappers/team_globs.rb
144
+ - lib/code_ownership/private/ownership_mappers/team_yml_ownership.rb
144
145
  - lib/code_ownership/private/parse_js_packages.rb
145
146
  - lib/code_ownership/private/team_plugins/github.rb
146
147
  - lib/code_ownership/private/team_plugins/ownership.rb