danger-packwerk 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/danger-packwerk/check/default_formatter.rb +110 -0
  4. data/lib/danger-packwerk/check/offenses_formatter.rb +23 -0
  5. data/lib/danger-packwerk/danger_deprecated_references_yml_changes.rb +7 -5
  6. data/lib/danger-packwerk/danger_packwerk.rb +7 -5
  7. data/lib/danger-packwerk/packwerk_wrapper.rb +2 -2
  8. data/lib/danger-packwerk/private/ownership_information.rb +60 -0
  9. data/lib/danger-packwerk/private.rb +1 -1
  10. data/lib/danger-packwerk/update/default_formatter.rb +67 -0
  11. data/lib/danger-packwerk/update/offenses_formatter.rb +23 -0
  12. data/lib/danger-packwerk/version.rb +1 -1
  13. data/lib/danger-packwerk.rb +4 -0
  14. data/sorbet/config +1 -0
  15. data/sorbet/rbi/gems/actionview@7.0.4.rbi +11543 -0
  16. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +12959 -0
  17. data/sorbet/rbi/gems/addressable@2.8.1.rbi +1505 -0
  18. data/sorbet/rbi/gems/ast@2.4.2.rbi +522 -0
  19. data/sorbet/rbi/gems/better_html@2.0.1.rbi +286 -0
  20. data/sorbet/rbi/gems/builder@3.2.4.rbi +8 -0
  21. data/sorbet/rbi/gems/claide-plugins@0.9.2.rbi +791 -0
  22. data/sorbet/rbi/gems/claide@1.1.0.rbi +1132 -0
  23. data/sorbet/rbi/gems/code_ownership@1.29.1.rbi +336 -0
  24. data/sorbet/rbi/gems/code_teams@1.0.0.rbi +120 -0
  25. data/sorbet/rbi/gems/coderay@1.1.3.rbi +2256 -0
  26. data/sorbet/rbi/gems/colored2@3.1.2.rbi +130 -0
  27. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +8695 -0
  28. data/sorbet/rbi/gems/cork@0.3.0.rbi +248 -0
  29. data/sorbet/rbi/gems/crass@1.0.6.rbi +436 -0
  30. data/sorbet/rbi/gems/danger-plugin-api@1.0.0.rbi +8 -0
  31. data/sorbet/rbi/gems/danger@9.0.0.rbi +4722 -0
  32. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +862 -0
  33. data/sorbet/rbi/gems/erubi@1.11.0.rbi +102 -0
  34. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +266 -0
  35. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.0.rbi +209 -0
  36. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +212 -0
  37. data/sorbet/rbi/gems/faraday-http-cache@2.4.1.rbi +805 -0
  38. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +221 -0
  39. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +266 -0
  40. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +216 -0
  41. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +206 -0
  42. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +212 -0
  43. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +225 -0
  44. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +222 -0
  45. data/sorbet/rbi/gems/faraday@1.10.2.rbi +1862 -0
  46. data/sorbet/rbi/gems/git@1.12.0.rbi +1936 -0
  47. data/sorbet/rbi/gems/i18n@1.12.0.rbi +1643 -0
  48. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +8 -0
  49. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +2168 -0
  50. data/sorbet/rbi/gems/loofah@2.19.0.rbi +646 -0
  51. data/sorbet/rbi/gems/method_source@1.0.0.rbi +199 -0
  52. data/sorbet/rbi/gems/minitest@5.16.3.rbi +997 -0
  53. data/sorbet/rbi/gems/multipart-post@2.2.3.rbi +165 -0
  54. data/sorbet/rbi/gems/nap@1.1.0.rbi +351 -0
  55. data/sorbet/rbi/gems/no_proxy_fix@0.1.2.rbi +8 -0
  56. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +4916 -0
  57. data/sorbet/rbi/gems/octokit@5.6.1.rbi +8939 -0
  58. data/sorbet/rbi/gems/open4@1.3.4.rbi +8 -0
  59. data/sorbet/rbi/gems/{packwerk@2.1.1.rbi → packwerk@2.2.1.rbi} +602 -51
  60. data/sorbet/rbi/gems/parallel@1.22.1.rbi +163 -0
  61. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +5988 -0
  62. data/sorbet/rbi/gems/pry@0.14.1.rbi +6969 -0
  63. data/sorbet/rbi/gems/public_suffix@5.0.0.rbi +779 -0
  64. data/sorbet/rbi/gems/racc@1.6.0.rbi +92 -0
  65. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +8 -0
  66. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +493 -0
  67. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +227 -0
  68. data/sorbet/rbi/gems/rake@13.0.6.rbi +1865 -0
  69. data/sorbet/rbi/gems/rbi@0.0.14.rbi +2337 -0
  70. data/sorbet/rbi/gems/rchardet@1.8.0.rbi +587 -0
  71. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +1851 -0
  72. data/sorbet/rbi/gems/rexml@3.2.5.rbi +3852 -0
  73. data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +7725 -0
  74. data/sorbet/rbi/gems/rspec-expectations@3.11.0.rbi +6201 -0
  75. data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +3625 -0
  76. data/sorbet/rbi/gems/rspec-support@3.11.0.rbi +1176 -0
  77. data/sorbet/rbi/gems/rspec@3.11.0.rbi +40 -0
  78. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +4193 -0
  79. data/sorbet/rbi/gems/rubocop-sorbet@0.6.8.rbi +677 -0
  80. data/sorbet/rbi/gems/rubocop@1.36.0.rbi +37914 -0
  81. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +732 -0
  82. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
  83. data/sorbet/rbi/gems/sawyer@0.9.2.rbi +513 -0
  84. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +326 -0
  85. data/sorbet/rbi/gems/spoom@1.1.11.rbi +1600 -0
  86. data/sorbet/rbi/gems/tapioca@0.8.0.rbi +1959 -0
  87. data/sorbet/rbi/gems/terminal-table@3.0.2.rbi +438 -0
  88. data/sorbet/rbi/gems/thor@1.2.1.rbi +2921 -0
  89. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +4879 -0
  90. data/sorbet/rbi/gems/unicode-display_width@2.3.0.rbi +27 -0
  91. data/sorbet/rbi/gems/unparser@0.6.5.rbi +2789 -0
  92. data/sorbet/rbi/gems/webrick@1.7.0.rbi +1802 -0
  93. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +288 -0
  94. data/sorbet/rbi/gems/yard@0.9.27.rbi +12668 -0
  95. data/sorbet/rbi/todo.rbi +122 -0
  96. metadata +104 -8
  97. data/lib/danger-packwerk/private/default_offenses_formatter.rb +0 -37
  98. data/sorbet/rbi/gems/danger@8.5.0.rbi +0 -122
@@ -0,0 +1,336 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `code_ownership` gem.
5
+ # Please instead update this file by running `bin/tapioca gem code_ownership`.
6
+
7
+ module CodeOwnership
8
+ extend ::CodeOwnership
9
+
10
+ requires_ancestor { Kernel }
11
+
12
+ sig do
13
+ params(
14
+ backtrace: T.nilable(T::Array[::String]),
15
+ excluded_teams: T::Array[::CodeTeams::Team]
16
+ ).returns(T.nilable(::CodeTeams::Team))
17
+ end
18
+ def for_backtrace(backtrace, excluded_teams: T.unsafe(nil)); end
19
+
20
+ sig { params(klass: T.nilable(T.any(::Class, ::Module))).returns(T.nilable(::CodeTeams::Team)) }
21
+ def for_class(klass); end
22
+
23
+ sig { params(file: ::String).returns(T.nilable(::CodeTeams::Team)) }
24
+ def for_file(file); end
25
+
26
+ sig { params(package: ::ParsePackwerk::Package).returns(T.nilable(::CodeTeams::Team)) }
27
+ def for_package(package); end
28
+
29
+ sig { params(team: T.any(::CodeTeams::Team, ::String)).returns(::String) }
30
+ def for_team(team); end
31
+
32
+ sig { params(files: T::Array[::String], autocorrect: T::Boolean, stage_changes: T::Boolean).void }
33
+ def validate!(files: T.unsafe(nil), autocorrect: T.unsafe(nil), stage_changes: T.unsafe(nil)); end
34
+
35
+ class << self
36
+ sig { void }
37
+ def bust_caches!; end
38
+
39
+ sig { params(filename: ::String).void }
40
+ def remove_file_annotation!(filename); end
41
+ end
42
+ end
43
+
44
+ class CodeOwnership::Cli
45
+ class << self
46
+ def for_file(argv); end
47
+ def for_team(argv); end
48
+ def run!(argv); end
49
+
50
+ private
51
+
52
+ def validate!(argv); end
53
+ end
54
+ end
55
+
56
+ class CodeOwnership::InvalidCodeOwnershipConfigurationError < ::StandardError; end
57
+
58
+ module CodeOwnership::Private
59
+ class << self
60
+ sig { void }
61
+ def bust_caches!; end
62
+
63
+ sig { returns(::CodeOwnership::Private::Configuration) }
64
+ def configuration; end
65
+
66
+ sig { returns(::CodeOwnership::Private::OwnershipMappers::FileAnnotations) }
67
+ def file_annotations_mapper; end
68
+
69
+ sig { params(files: T::Array[::String]).returns(T::Hash[::String, T::Array[::String]]) }
70
+ def files_by_mapper(files); end
71
+
72
+ sig { params(team_name: ::String, location_of_reference: ::String).returns(::CodeTeams::Team) }
73
+ def find_team!(team_name, location_of_reference); end
74
+
75
+ sig { returns(T::Array[::CodeOwnership::Private::OwnershipMappers::Interface]) }
76
+ def mappers; end
77
+
78
+ sig { params(klass: T.nilable(T.any(::Class, ::Module))).returns(T.nilable(::String)) }
79
+ def path_from_klass(klass); end
80
+
81
+ sig { returns(T::Array[::String]) }
82
+ def tracked_files; end
83
+
84
+ sig { params(files: T::Array[::String], autocorrect: T::Boolean, stage_changes: T::Boolean).void }
85
+ def validate!(files:, autocorrect: T.unsafe(nil), stage_changes: T.unsafe(nil)); end
86
+ end
87
+ end
88
+
89
+ class CodeOwnership::Private::Configuration < ::T::Struct
90
+ const :js_package_paths, T::Array[::String]
91
+ const :owned_globs, T::Array[::String]
92
+ const :skip_codeowners_validation, T::Boolean
93
+ const :unowned_globs, T::Array[::String]
94
+
95
+ class << self
96
+ sig { returns(::CodeOwnership::Private::Configuration) }
97
+ def fetch; end
98
+
99
+ def inherited(s); end
100
+
101
+ sig { params(config_hash: T::Hash[T.untyped, T.untyped]).returns(T::Array[::String]) }
102
+ def js_package_paths(config_hash); end
103
+ end
104
+ end
105
+
106
+ CodeOwnership::Private::Configuration::DEFAULT_JS_PACKAGE_PATHS = T.let(T.unsafe(nil), Array)
107
+ module CodeOwnership::Private::OwnershipMappers; end
108
+
109
+ class CodeOwnership::Private::OwnershipMappers::FileAnnotations
110
+ include ::CodeOwnership::Private::OwnershipMappers::Interface
111
+
112
+ sig { override.void }
113
+ def bust_caches!; end
114
+
115
+ sig { override.returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
116
+ def codeowners_lines_to_owners; end
117
+
118
+ sig { override.returns(::String) }
119
+ def description; end
120
+
121
+ sig { params(filename: ::String).returns(T.nilable(::CodeTeams::Team)) }
122
+ def file_annotation_based_owner(filename); end
123
+
124
+ sig { override.params(file: ::String).returns(T.nilable(::CodeTeams::Team)) }
125
+ def map_file_to_owner(file); end
126
+
127
+ sig { override.params(files: T::Array[::String]).returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
128
+ def map_files_to_owners(files); end
129
+
130
+ sig { params(filename: ::String).void }
131
+ def remove_file_annotation!(filename); end
132
+ end
133
+
134
+ CodeOwnership::Private::OwnershipMappers::FileAnnotations::TEAM_PATTERN = T.let(T.unsafe(nil), Regexp)
135
+
136
+ module CodeOwnership::Private::OwnershipMappers::Interface
137
+ interface!
138
+
139
+ sig { abstract.void }
140
+ def bust_caches!; end
141
+
142
+ sig { abstract.returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
143
+ def codeowners_lines_to_owners; end
144
+
145
+ sig { abstract.returns(::String) }
146
+ def description; end
147
+
148
+ sig { abstract.params(file: ::String).returns(T.nilable(::CodeTeams::Team)) }
149
+ def map_file_to_owner(file); end
150
+
151
+ sig { abstract.params(files: T::Array[::String]).returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
152
+ def map_files_to_owners(files); end
153
+ end
154
+
155
+ class CodeOwnership::Private::OwnershipMappers::JsPackageOwnership
156
+ include ::CodeOwnership::Private::OwnershipMappers::Interface
157
+
158
+ sig { override.void }
159
+ def bust_caches!; end
160
+
161
+ sig { override.returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
162
+ def codeowners_lines_to_owners; end
163
+
164
+ sig { override.returns(::String) }
165
+ def description; end
166
+
167
+ sig { override.params(file: ::String).returns(T.nilable(::CodeTeams::Team)) }
168
+ def map_file_to_owner(file); end
169
+
170
+ sig { override.params(files: T::Array[::String]).returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
171
+ def map_files_to_owners(files); end
172
+
173
+ sig { params(package: ::CodeOwnership::Private::ParseJsPackages::Package).returns(T.nilable(::CodeTeams::Team)) }
174
+ def owner_for_package(package); end
175
+
176
+ private
177
+
178
+ sig { params(file: ::String).returns(T.nilable(::CodeOwnership::Private::ParseJsPackages::Package)) }
179
+ def map_file_to_relevant_package(file); end
180
+ end
181
+
182
+ class CodeOwnership::Private::OwnershipMappers::PackageOwnership
183
+ include ::CodeOwnership::Private::OwnershipMappers::Interface
184
+
185
+ sig { override.void }
186
+ def bust_caches!; end
187
+
188
+ sig { override.returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
189
+ def codeowners_lines_to_owners; end
190
+
191
+ sig { override.returns(::String) }
192
+ def description; end
193
+
194
+ sig { override.params(file: ::String).returns(T.nilable(::CodeTeams::Team)) }
195
+ def map_file_to_owner(file); end
196
+
197
+ sig { override.params(files: T::Array[::String]).returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
198
+ def map_files_to_owners(files); end
199
+
200
+ sig { params(package: ::ParsePackwerk::Package).returns(T.nilable(::CodeTeams::Team)) }
201
+ def owner_for_package(package); end
202
+ end
203
+
204
+ class CodeOwnership::Private::OwnershipMappers::TeamGlobs
205
+ include ::CodeOwnership::Private::OwnershipMappers::Interface
206
+
207
+ sig { override.void }
208
+ def bust_caches!; end
209
+
210
+ sig { override.returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
211
+ def codeowners_lines_to_owners; end
212
+
213
+ sig { override.returns(::String) }
214
+ def description; end
215
+
216
+ sig { override.params(file: ::String).returns(T.nilable(::CodeTeams::Team)) }
217
+ def map_file_to_owner(file); end
218
+
219
+ sig { override.params(files: T::Array[::String]).returns(T::Hash[::String, T.nilable(::CodeTeams::Team)]) }
220
+ def map_files_to_owners(files); end
221
+ end
222
+
223
+ module CodeOwnership::Private::ParseJsPackages
224
+ class << self
225
+ sig { returns(T::Array[::CodeOwnership::Private::ParseJsPackages::Package]) }
226
+ def all; end
227
+ end
228
+ end
229
+
230
+ CodeOwnership::Private::ParseJsPackages::METADATA = T.let(T.unsafe(nil), String)
231
+ CodeOwnership::Private::ParseJsPackages::PACKAGE_JSON_NAME = T.let(T.unsafe(nil), String)
232
+
233
+ class CodeOwnership::Private::ParseJsPackages::Package < ::T::Struct
234
+ const :metadata, T::Hash[::String, T.untyped]
235
+ const :name, ::String
236
+
237
+ sig { returns(::Pathname) }
238
+ def directory; end
239
+
240
+ class << self
241
+ sig { params(pathname: ::Pathname).returns(::CodeOwnership::Private::ParseJsPackages::Package) }
242
+ def from(pathname); end
243
+
244
+ def inherited(s); end
245
+ end
246
+ end
247
+
248
+ CodeOwnership::Private::ParseJsPackages::ROOT_PACKAGE_NAME = T.let(T.unsafe(nil), String)
249
+ module CodeOwnership::Private::TeamPlugins; end
250
+
251
+ class CodeOwnership::Private::TeamPlugins::Github < ::CodeTeams::Plugin
252
+ sig { returns(::CodeOwnership::Private::TeamPlugins::Github::GithubStruct) }
253
+ def github; end
254
+ end
255
+
256
+ class CodeOwnership::Private::TeamPlugins::Github::GithubStruct < ::Struct
257
+ def do_not_add_to_codeowners_file; end
258
+ def do_not_add_to_codeowners_file=(_); end
259
+ def team; end
260
+ def team=(_); end
261
+
262
+ class << self
263
+ def [](*_arg0); end
264
+ def inspect; end
265
+ def members; end
266
+ def new(*_arg0); end
267
+ end
268
+ end
269
+
270
+ class CodeOwnership::Private::TeamPlugins::Ownership < ::CodeTeams::Plugin
271
+ sig { returns(T::Array[::String]) }
272
+ def owned_globs; end
273
+ end
274
+
275
+ module CodeOwnership::Private::Validations; end
276
+
277
+ class CodeOwnership::Private::Validations::FilesHaveOwners
278
+ include ::CodeOwnership::Private::Validations::Interface
279
+
280
+ sig do
281
+ override
282
+ .params(
283
+ files: T::Array[::String],
284
+ autocorrect: T::Boolean,
285
+ stage_changes: T::Boolean
286
+ ).returns(T::Array[::String])
287
+ end
288
+ def validation_errors(files:, autocorrect: T.unsafe(nil), stage_changes: T.unsafe(nil)); end
289
+ end
290
+
291
+ class CodeOwnership::Private::Validations::FilesHaveUniqueOwners
292
+ include ::CodeOwnership::Private::Validations::Interface
293
+
294
+ sig do
295
+ override
296
+ .params(
297
+ files: T::Array[::String],
298
+ autocorrect: T::Boolean,
299
+ stage_changes: T::Boolean
300
+ ).returns(T::Array[::String])
301
+ end
302
+ def validation_errors(files:, autocorrect: T.unsafe(nil), stage_changes: T.unsafe(nil)); end
303
+ end
304
+
305
+ class CodeOwnership::Private::Validations::GithubCodeownersUpToDate
306
+ include ::CodeOwnership::Private::Validations::Interface
307
+
308
+ sig do
309
+ override
310
+ .params(
311
+ files: T::Array[::String],
312
+ autocorrect: T::Boolean,
313
+ stage_changes: T::Boolean
314
+ ).returns(T::Array[::String])
315
+ end
316
+ def validation_errors(files:, autocorrect: T.unsafe(nil), stage_changes: T.unsafe(nil)); end
317
+
318
+ private
319
+
320
+ sig { returns(T::Array[::String]) }
321
+ def codeowners_file_lines; end
322
+ end
323
+
324
+ module CodeOwnership::Private::Validations::Interface
325
+ interface!
326
+
327
+ sig do
328
+ abstract
329
+ .params(
330
+ files: T::Array[::String],
331
+ autocorrect: T::Boolean,
332
+ stage_changes: T::Boolean
333
+ ).returns(T::Array[::String])
334
+ end
335
+ def validation_errors(files:, autocorrect: T.unsafe(nil), stage_changes: T.unsafe(nil)); end
336
+ end
@@ -0,0 +1,120 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `code_teams` gem.
5
+ # Please instead update this file by running `bin/tapioca gem code_teams`.
6
+
7
+ module CodeTeams
8
+ class << self
9
+ sig { returns(T::Array[::CodeTeams::Team]) }
10
+ def all; end
11
+
12
+ sig { void }
13
+ def bust_caches!; end
14
+
15
+ sig { params(name: ::String).returns(T.nilable(::CodeTeams::Team)) }
16
+ def find(name); end
17
+
18
+ sig { params(dir: ::String).returns(T::Array[::CodeTeams::Team]) }
19
+ def for_directory(dir); end
20
+
21
+ sig { params(string: ::String).returns(::String) }
22
+ def tag_value_for(string); end
23
+
24
+ sig { params(teams: T::Array[::CodeTeams::Team]).returns(T::Array[::String]) }
25
+ def validation_errors(teams); end
26
+ end
27
+ end
28
+
29
+ class CodeTeams::IncorrectPublicApiUsageError < ::StandardError; end
30
+
31
+ class CodeTeams::Plugin
32
+ abstract!
33
+
34
+ sig { params(team: ::CodeTeams::Team).void }
35
+ def initialize(team); end
36
+
37
+ class << self
38
+ sig { returns(T::Array[T.class_of(CodeTeams::Plugin)]) }
39
+ def all_plugins; end
40
+
41
+ sig { params(team: ::CodeTeams::Team).returns(T.attached_class) }
42
+ def for(team); end
43
+
44
+ sig { params(base: T.untyped).void }
45
+ def inherited(base); end
46
+
47
+ sig { params(team: ::CodeTeams::Team, key: ::String).returns(::String) }
48
+ def missing_key_error_message(team, key); end
49
+
50
+ sig { params(teams: T::Array[::CodeTeams::Team]).returns(T::Array[::String]) }
51
+ def validation_errors(teams); end
52
+
53
+ private
54
+
55
+ sig { params(team: ::CodeTeams::Team).returns(T.attached_class) }
56
+ def register_team(team); end
57
+
58
+ sig { returns(T::Hash[T.nilable(::String), T::Hash[::Class, ::CodeTeams::Plugin]]) }
59
+ def registry; end
60
+ end
61
+ end
62
+
63
+ module CodeTeams::Plugins; end
64
+
65
+ class CodeTeams::Plugins::Identity < ::CodeTeams::Plugin
66
+ sig { returns(::CodeTeams::Plugins::Identity::IdentityStruct) }
67
+ def identity; end
68
+
69
+ class << self
70
+ sig { override.params(teams: T::Array[::CodeTeams::Team]).returns(T::Array[::String]) }
71
+ def validation_errors(teams); end
72
+ end
73
+ end
74
+
75
+ class CodeTeams::Plugins::Identity::IdentityStruct < ::Struct
76
+ def name; end
77
+ def name=(_); end
78
+
79
+ class << self
80
+ def [](*_arg0); end
81
+ def inspect; end
82
+ def members; end
83
+ def new(*_arg0); end
84
+ end
85
+ end
86
+
87
+ class CodeTeams::Team
88
+ sig { params(config_yml: T.nilable(::String), raw_hash: T::Hash[T.untyped, T.untyped]).void }
89
+ def initialize(config_yml:, raw_hash:); end
90
+
91
+ sig { params(other: ::Object).returns(T::Boolean) }
92
+ def ==(other); end
93
+
94
+ sig { returns(T.nilable(::String)) }
95
+ def config_yml; end
96
+
97
+ def eql?(*args, &blk); end
98
+
99
+ sig { returns(::Integer) }
100
+ def hash; end
101
+
102
+ sig { returns(::String) }
103
+ def name; end
104
+
105
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
106
+ def raw_hash; end
107
+
108
+ sig { returns(::String) }
109
+ def to_tag; end
110
+
111
+ class << self
112
+ sig { params(raw_hash: T::Hash[T.untyped, T.untyped]).returns(::CodeTeams::Team) }
113
+ def from_hash(raw_hash); end
114
+
115
+ sig { params(config_yml: ::String).returns(::CodeTeams::Team) }
116
+ def from_yml(config_yml); end
117
+ end
118
+ end
119
+
120
+ CodeTeams::UNKNOWN_TEAM_STRING = T.let(T.unsafe(nil), String)