code_ownership 1.32.14 → 1.32.15

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: c54909c0c5a072df5080509fc4668dc9770fd83d77af60b7469e9cfb0560266d
4
- data.tar.gz: 6854819e28031063796f639714943a8f61eacb31cf8d665c06f4434e01530f20
3
+ metadata.gz: a8705b2519d1dda2e50bc2051864d8f41b16111b3ab3a47923ff2b1e1c22024e
4
+ data.tar.gz: 2dd240f0854303fbbfd080a23f3c37ee38c5c6912f04e445ce9bc6fd08d6996e
5
5
  SHA512:
6
- metadata.gz: 9fe8a85e433ee7eded9c939f23e112304e06e7c90debe840d4ba5810ba274f7d021df890e9da1c83eded7c8999eb0377be82513470ca8e2ef3a6e2bb5a505a2e
7
- data.tar.gz: f33c0630d6f3014a07caa9b042897e8aab71fed3ec649566b6c189d2b20ad02e973162542efb6828a91616cf911756d353c1544ccd3e9c88c56f988e0c493967
6
+ metadata.gz: c0de295ef841c8d50edffa5d8dedfeace747160d0c368b0b919d2aa76f4d3b540d80cd91b8eeea8578230b596613705cd6ed2dc72d524d240de5bd48162184bc
7
+ data.tar.gz: 0f9da2508a46330de7a75a8bf8b7ee1117f4a7449a53cf3516bd5e608b07f07b59e207a109ea40c14af22b575f75fdc02c2ee93eca427072eef13d29f76974d2
data/README.md CHANGED
@@ -125,7 +125,7 @@ CodeOwnership comes with a validation function to ensure the following things ar
125
125
  1) Only one mechanism is defining file ownership. That is -- you can't have a file annotation on a file owned via package-based or glob-based ownership. This helps make ownership behavior more clear by avoiding concerns about precedence.
126
126
  2) All teams referenced as an owner for any file or package is a valid team (i.e. it's in the list of `CodeTeams.all`).
127
127
  3) All files have ownership. You can specify in `unowned_globs` to represent a TODO list of files to add ownership to.
128
- 3) The `.github/CODEOWNERS` file is up to date. This is automatically corrected and staged unless specified otherwise with `bin/codeownership validate --skip-autocorrect --skip-stage`. You can turn this validation off by setting `skip_codeowners_validation: true` in `code_ownership.yml`.
128
+ 3) The `.github/CODEOWNERS` file is up to date. This is automatically corrected and staged unless specified otherwise with `bin/codeownership validate --skip-autocorrect --skip-stage`. You can turn this validation off by setting `skip_codeowners_validation: true` in `config/code_ownership.yml`.
129
129
 
130
130
  CodeOwnership also allows you to specify which globs and file extensions should be considered ownable.
131
131
 
@@ -18,6 +18,28 @@ module CodeOwnership
18
18
  raw_github['do_not_add_to_codeowners_file'] || false
19
19
  )
20
20
  end
21
+
22
+ sig { override.params(teams: T::Array[CodeTeams::Team]).returns(T::Array[String]) }
23
+ def self.validation_errors(teams)
24
+ all_github_teams = teams.flat_map { |team| self.for(team).github.team }
25
+
26
+ teams_used_more_than_once = all_github_teams.tally.select do |_team, count|
27
+ count > 1
28
+ end
29
+
30
+ errors = T.let([], T::Array[String])
31
+
32
+ if teams_used_more_than_once.any?
33
+ errors << <<~ERROR
34
+ The following teams are specified multiple times:
35
+ Each code team must have a unique GitHub team in order to write the CODEOWNERS file correctly.
36
+
37
+ #{teams_used_more_than_once.keys.join("\n")}
38
+ ERROR
39
+ end
40
+
41
+ errors
42
+ end
21
43
  end
22
44
  end
23
45
  end
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.32.14
4
+ version: 1.32.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers