code_ownership 1.32.14 → 1.32.15

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: 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