code_ownership 1.32.15 → 1.32.17

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: a8705b2519d1dda2e50bc2051864d8f41b16111b3ab3a47923ff2b1e1c22024e
4
- data.tar.gz: 2dd240f0854303fbbfd080a23f3c37ee38c5c6912f04e445ce9bc6fd08d6996e
3
+ metadata.gz: aea9ab810bdf433b824ae72f06c4f33773139e6a5613a67ac29b5ff92e38ba70
4
+ data.tar.gz: 898b6d683ca5f3a4100eae345f2ff06ffff8024b63e8985b49ce86644d5401e3
5
5
  SHA512:
6
- metadata.gz: c0de295ef841c8d50edffa5d8dedfeace747160d0c368b0b919d2aa76f4d3b540d80cd91b8eeea8578230b596613705cd6ed2dc72d524d240de5bd48162184bc
7
- data.tar.gz: 0f9da2508a46330de7a75a8bf8b7ee1117f4a7449a53cf3516bd5e608b07f07b59e207a109ea40c14af22b575f75fdc02c2ee93eca427072eef13d29f76974d2
6
+ metadata.gz: 1294593e12fccc2cdbbc9946652dd5e80c75fd862cfbc2fc1fc0b5d7fb5632d1870da55cb639ea969efb7ff8fa9202c06b82d0c257ef4eda83f40c972d791cd4
7
+ data.tar.gz: 5160484ffc1919619082c13793cea928155743b6319fe69606f8a4f7447fbebc62bca78f714d947ee9a293b1543cf5dbfc719e861c4a14d43d68eba5dea86a9b
@@ -47,10 +47,21 @@ module CodeOwnership
47
47
  override.params(cache: GlobsToOwningTeamMap, files: T::Array[String]).returns(GlobsToOwningTeamMap)
48
48
  end
49
49
  def update_cache(cache, files)
50
- cache.merge!(globs_to_owner(files))
50
+ # We map files to nil owners so that files whose annotation have been removed will be properly
51
+ # overwritten (i.e. removed) from the cache.
52
+ fileset = Set.new(files)
53
+ updated_cache_for_files = globs_to_owner(files)
54
+ cache.merge!(updated_cache_for_files)
55
+
51
56
  invalid_files = cache.keys.select do |file|
52
- !Private.file_tracked?(file)
57
+ # If a file is not tracked, it should be removed from the cache
58
+ !Private.file_tracked?(file) ||
59
+ # If a file no longer has a file annotation (i.e. `globs_to_owner` doesn't map it)
60
+ # it should be removed from the cache
61
+ # We make sure to only apply this to the input files since otherwise `updated_cache_for_files.key?(file)` would always return `false` when files == []
62
+ (fileset.include?(file) && !updated_cache_for_files.key?(file))
53
63
  end
64
+
54
65
  invalid_files.each do |invalid_file|
55
66
  cache.delete(invalid_file)
56
67
  end
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.32.15
4
+ version: 1.32.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-17 00:00:00.000000000 Z
11
+ date: 2023-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: code_teams