code_ownership 2.1.0 → 2.1.1
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 +4 -4
- data/Cargo.lock +8 -14
- data/ext/cargo-vendor/magnus-0.8.2/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/magnus-0.8.2/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/CHANGELOG.md +66 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.lock +243 -9
- data/ext/cargo-vendor/magnus-0.8.2/Cargo.toml +277 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.toml.orig +11 -6
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/README.md +75 -23
- data/ext/cargo-vendor/magnus-0.8.2/build.rs +15 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/test/temperature_test.rb +4 -4
- data/ext/cargo-vendor/magnus-0.8.2/examples/inheritance.rs +66 -0
- data/ext/cargo-vendor/magnus-0.8.2/examples/mut_point.rs +116 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/api.rs +4 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/class.rs +9 -7
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/encoding.rs +5 -5
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/error.rs +12 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/fiber.rs +5 -5
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/gc.rs +3 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/integer.rs +134 -0
- data/ext/cargo-vendor/magnus-0.8.2/src/io.rs +230 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/lib.rs +53 -54
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/macros.rs +2 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/method.rs +14 -100
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/module.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/mutex.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_array.rs +2 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_bignum.rs +100 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_hash.rs +63 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_string.rs +31 -231
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_typed_data.rs +6 -9
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/rb_sys.rs +4 -4
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/scan_args.rs +3 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/thread.rs +16 -10
- data/ext/cargo-vendor/magnus-0.8.2/src/time.rs +462 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/try_convert.rs +64 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/typed_data.rs +113 -11
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value/flonum.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value.rs +83 -6
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/test +1 -1
- data/ext/cargo-vendor/magnus-0.8.2/tests/hash.rs +44 -0
- data/ext/cargo-vendor/magnus-0.8.2/tests/io.rs +62 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_iter.rs +1 -1
- data/ext/cargo-vendor/magnus-0.8.2/tests/string.rs +23 -0
- data/ext/cargo-vendor/magnus-0.8.2/tests/time.rs +71 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/Cargo.lock +47 -0
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml +10 -1
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml.orig +1 -1
- data/ext/cargo-vendor/magnus-macros-0.8.0/src/lib.rs +545 -0
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/typed_data.rs +3 -3
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/util.rs +1 -1
- data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.lock +77 -75
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml.orig +7 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/README.md +8 -5
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_deserializer.rs +12 -8
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_enumerator.rs +12 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/deserializer.rs +21 -18
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/enum_deserializer.rs +35 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/hash_deserializer.rs +18 -11
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/mod.rs +76 -76
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/variant_deserializer.rs +10 -9
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/error.rs +10 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/lib.rs +6 -5
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/enums.rs +11 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/map_serializer.rs +11 -12
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/mod.rs +53 -50
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/seq_serializer.rs +11 -10
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/serializer.rs +50 -34
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_serializer.rs +40 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_variant_serializer.rs +45 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/tuple_variant_serializer.rs +38 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_arrays.rs +3 -3
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_booleans.rs +15 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_enums.rs +39 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_floats.rs +12 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_integers.rs +18 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_maps.rs +3 -2
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_options.rs +15 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_results.rs +17 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_strings.rs +7 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_structs.rs +9 -9
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_tuples.rs +27 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_vecs.rs +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_arrays.rs +3 -3
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_booleans.rs +15 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_enums.rs +9 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_floats.rs +2 -2
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_integers.rs +4 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_maps.rs +3 -2
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_options.rs +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_results.rs +5 -4
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_strings.rs +30 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_structs.rs +15 -7
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_tuples.rs +35 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_vecs.rs +3 -3
- data/ext/code_ownership/Cargo.toml +2 -2
- data/ext/code_ownership/extconf.rb +2 -1
- data/ext/code_ownership/src/lib.rs +16 -16
- data/lib/code_ownership/cli.rb +1 -0
- data/lib/code_ownership/private/file_path_finder.rb +3 -7
- data/lib/code_ownership/private/file_path_team_cache.rb +5 -9
- data/lib/code_ownership/private/for_file_output_builder.rb +0 -1
- data/lib/code_ownership/private/team_finder.rb +8 -14
- data/lib/code_ownership/version.rb +2 -2
- data/lib/code_ownership.rb +12 -17
- metadata +182 -186
- data/ext/cargo-vendor/magnus-0.7.1/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/magnus-0.7.1/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/magnus-0.7.1/Cargo.toml +0 -95
- data/ext/cargo-vendor/magnus-0.7.1/build.rs +0 -5
- data/ext/cargo-vendor/magnus-0.7.1/examples/mut_point.rs +0 -60
- data/ext/cargo-vendor/magnus-0.7.1/src/time.rs +0 -190
- data/ext/cargo-vendor/magnus-0.7.1/tests/hash.rs +0 -25
- data/ext/cargo-vendor/magnus-0.7.1/tests/string.rs +0 -13
- data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/magnus-macros-0.6.0/src/lib.rs +0 -401
- data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml +0 -25
- data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml.orig +0 -14
- data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-APACHE +0 -190
- data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-MIT +0 -21
- data/ext/cargo-vendor/rb-sys-env-0.1.2/readme.md +0 -119
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/defines.rs +0 -37
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/lib.rs +0 -180
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/rb_env.rs +0 -110
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/ruby_version.rs +0 -163
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/utils.rs +0 -6
- data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/de/enum_deserializer.rs +0 -30
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/enums.rs +0 -11
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_serializer.rs +0 -36
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_variant_serializer.rs +0 -37
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/tuple_variant_serializer.rs +0 -33
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_booleans.rs +0 -18
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_enums.rs +0 -39
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_floats.rs +0 -12
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_integers.rs +0 -18
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_options.rs +0 -15
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_results.rs +0 -17
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_tuples.rs +0 -31
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_booleans.rs +0 -15
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_strings.rs +0 -30
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_tuples.rs +0 -27
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/.cargo/config.toml +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Gemfile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/LICENSE +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/lib/temperature.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman/error.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/test/error_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/lib/ahriman.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/test/error_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/fibonacci.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/hello_world.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/point.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/lib/rust_blank.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/bench.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/blank_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/block.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/embed.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/enumerator.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/exception.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/float.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/into_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/numeric.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/object.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/process.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_complex.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_file.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_float.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_match.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_object.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_rational.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_regexp.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_struct.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/range.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/symbol.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/allocate_before_init.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/array_slice.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/block_call.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/bytes.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/call_proc.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/classname.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/clone.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/codepoints.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/debug_exception.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/encoding_capable.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumerator.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumeratorize.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_from_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_to_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/fmt.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/freeze.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_convert_to_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_traits.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/ivar.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/lazy_id.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/make_proc.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/proc_new.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/range.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_custom_error.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/scan_args.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/str.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/struct.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/symbol.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/try_convert_array.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/tuple_to_array.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_obj.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass_from_ruby.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/yield.rs +0 -0
- /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/LICENSE +0 -0
- /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/init.rs +0 -0
- /data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/LICENSE +0 -0
|
@@ -14,9 +14,9 @@ rb-sys = { version = "0.9.111", features = [
|
|
|
14
14
|
"bindgen-deprecated-types",
|
|
15
15
|
"stable-api-compiled-fallback",
|
|
16
16
|
] }
|
|
17
|
-
magnus = { version = "0.
|
|
17
|
+
magnus = { version = "0.8" }
|
|
18
18
|
serde = { version = "1.0.219", features = ["derive"] }
|
|
19
|
-
serde_magnus = "0.
|
|
19
|
+
serde_magnus = "0.10"
|
|
20
20
|
codeowners = { git = "https://github.com/rubyatscale/codeowners-rs.git", tag = "v0.3.0" }
|
|
21
21
|
|
|
22
22
|
[dev-dependencies]
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
require 'mkmf'
|
|
4
4
|
require 'rb_sys/mkmf'
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
ruby_minor = RUBY_VERSION[/\d+\.\d+/]
|
|
7
|
+
create_rust_makefile("code_ownership/#{ruby_minor}/code_ownership") do |ext|
|
|
7
8
|
ext.extra_cargo_args += ['--crate-type', 'cdylib']
|
|
8
9
|
ext.extra_cargo_args += ['--package', 'code_ownership']
|
|
9
10
|
end
|
|
@@ -12,13 +12,13 @@ pub struct Team {
|
|
|
12
12
|
pub reasons: Vec<String>,
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
fn for_team(team_name: String) -> Result<Value, Error> {
|
|
15
|
+
fn for_team(ruby: &Ruby, team_name: String) -> Result<Value, Error> {
|
|
16
16
|
let run_config = build_run_config();
|
|
17
17
|
let team = runner::for_team(&run_config, &team_name);
|
|
18
|
-
validate_result(&team)
|
|
18
|
+
validate_result(ruby, &team)
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
fn teams_for_files(file_paths: Vec<String>) -> Result<Value, Error> {
|
|
21
|
+
fn teams_for_files(ruby: &Ruby, file_paths: Vec<String>) -> Result<Value, Error> {
|
|
22
22
|
let run_config = build_run_config();
|
|
23
23
|
let path_teams = runner::teams_for_files_from_codeowners(&run_config, &file_paths);
|
|
24
24
|
match path_teams {
|
|
@@ -35,14 +35,14 @@ fn teams_for_files(file_paths: Vec<String>) -> Result<Value, Error> {
|
|
|
35
35
|
teams_map.insert(path, None);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
let serialized: Value = serialize(&teams_map)?;
|
|
38
|
+
let serialized: Value = serialize(ruby, &teams_map)?;
|
|
39
39
|
Ok(serialized)
|
|
40
40
|
}
|
|
41
|
-
Err(e) => Err(Error::new(
|
|
41
|
+
Err(e) => Err(Error::new(ruby.exception_runtime_error(), e.to_string())),
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
fn for_file(file_path: String) -> Result<Option<Value>, Error> {
|
|
45
|
+
fn for_file(ruby: &Ruby, file_path: String) -> Result<Option<Value>, Error> {
|
|
46
46
|
let run_config = build_run_config();
|
|
47
47
|
|
|
48
48
|
match runner::file_owner_for_file(&run_config, &file_path) {
|
|
@@ -57,14 +57,14 @@ fn for_file(file_path: String) -> Result<Option<Value>, Error> {
|
|
|
57
57
|
.map(|source| source.to_string())
|
|
58
58
|
.collect(),
|
|
59
59
|
};
|
|
60
|
-
let serialized: Value = serialize(&team)?;
|
|
60
|
+
let serialized: Value = serialize(ruby, &team)?;
|
|
61
61
|
Ok(Some(serialized))
|
|
62
62
|
} else {
|
|
63
63
|
Ok(None)
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
Err(e) => Err(Error::new(
|
|
67
|
-
|
|
67
|
+
ruby.exception_runtime_error(),
|
|
68
68
|
e.to_string(),
|
|
69
69
|
)),
|
|
70
70
|
}
|
|
@@ -74,33 +74,33 @@ fn version() -> String {
|
|
|
74
74
|
runner::version()
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
fn validate(files: Option<Vec<String>>) -> Result<Value, Error> {
|
|
77
|
+
fn validate(ruby: &Ruby, files: Option<Vec<String>>) -> Result<Value, Error> {
|
|
78
78
|
let run_config = build_run_config();
|
|
79
79
|
let files_vec = files.unwrap_or_default();
|
|
80
80
|
let run_result = runner::validate(&run_config, files_vec);
|
|
81
|
-
validate_result(&run_result)
|
|
81
|
+
validate_result(ruby, &run_result)
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
fn generate_and_validate(files: Option<Vec<String>>, skip_stage: bool) -> Result<Value, Error> {
|
|
84
|
+
fn generate_and_validate(ruby: &Ruby, files: Option<Vec<String>>, skip_stage: bool) -> Result<Value, Error> {
|
|
85
85
|
let run_config = build_run_config();
|
|
86
86
|
let files_vec = files.unwrap_or_default();
|
|
87
87
|
let run_result = runner::generate_and_validate(&run_config, files_vec, skip_stage);
|
|
88
|
-
validate_result(&run_result)
|
|
88
|
+
validate_result(ruby, &run_result)
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
fn validate_result(run_result: &runner::RunResult) -> Result<Value, Error> {
|
|
91
|
+
fn validate_result(ruby: &Ruby, run_result: &runner::RunResult) -> Result<Value, Error> {
|
|
92
92
|
if !run_result.validation_errors.is_empty() {
|
|
93
93
|
Err(Error::new(
|
|
94
|
-
|
|
94
|
+
ruby.exception_runtime_error(),
|
|
95
95
|
run_result.validation_errors.join("\n"),
|
|
96
96
|
))
|
|
97
97
|
} else if !run_result.io_errors.is_empty() {
|
|
98
98
|
Err(Error::new(
|
|
99
|
-
|
|
99
|
+
ruby.exception_runtime_error(),
|
|
100
100
|
run_result.io_errors.join("\n"),
|
|
101
101
|
))
|
|
102
102
|
} else {
|
|
103
|
-
let serialized: Value = serialize(&run_result.info_messages)?;
|
|
103
|
+
let serialized: Value = serialize(ruby, &run_result.info_messages)?;
|
|
104
104
|
Ok(serialized)
|
|
105
105
|
}
|
|
106
106
|
}
|
data/lib/code_ownership/cli.rb
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
2
|
# typed: strict
|
|
4
3
|
|
|
5
4
|
module CodeOwnership
|
|
6
5
|
module Private
|
|
7
6
|
module FilePathFinder
|
|
8
|
-
module_function
|
|
9
|
-
|
|
10
7
|
extend T::Sig
|
|
11
|
-
extend T::Helpers
|
|
12
8
|
|
|
13
9
|
# Returns a string version of the relative path to a Rails constant,
|
|
14
10
|
# or nil if it can't find anything
|
|
15
|
-
sig { params(klass: T.nilable(T.any(T::Class[T.anything], Module))).returns(T.nilable(String)) }
|
|
16
|
-
def path_from_klass(klass)
|
|
11
|
+
sig { params(klass: T.nilable(T.any(T::Class[T.anything], T::Module[T.anything]))).returns(T.nilable(String)) }
|
|
12
|
+
def self.path_from_klass(klass)
|
|
17
13
|
if klass
|
|
18
14
|
path = Object.const_source_location(klass.to_s)&.first
|
|
19
15
|
(path && Pathname.new(path).relative_path_from(Pathname.pwd).to_s) || nil
|
|
@@ -23,7 +19,7 @@ module CodeOwnership
|
|
|
23
19
|
end
|
|
24
20
|
|
|
25
21
|
sig { params(backtrace: T.nilable(T::Array[String])).returns(T::Enumerable[String]) }
|
|
26
|
-
def from_backtrace(backtrace)
|
|
22
|
+
def self.from_backtrace(backtrace)
|
|
27
23
|
return [] unless backtrace
|
|
28
24
|
|
|
29
25
|
# The pattern for a backtrace hasn't changed in forever and is considered
|
|
@@ -1,37 +1,33 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
2
|
# typed: strict
|
|
4
3
|
|
|
5
4
|
module CodeOwnership
|
|
6
5
|
module Private
|
|
7
6
|
module FilePathTeamCache
|
|
8
|
-
module_function
|
|
9
|
-
|
|
10
7
|
extend T::Sig
|
|
11
|
-
extend T::Helpers
|
|
12
8
|
|
|
13
9
|
sig { params(file_path: String).returns(T.nilable(CodeTeams::Team)) }
|
|
14
|
-
def get(file_path)
|
|
10
|
+
def self.get(file_path)
|
|
15
11
|
cache[file_path]
|
|
16
12
|
end
|
|
17
13
|
|
|
18
14
|
sig { params(file_path: String, team: T.nilable(CodeTeams::Team)).void }
|
|
19
|
-
def set(file_path, team)
|
|
15
|
+
def self.set(file_path, team)
|
|
20
16
|
cache[file_path] = team
|
|
21
17
|
end
|
|
22
18
|
|
|
23
19
|
sig { params(file_path: String).returns(T::Boolean) }
|
|
24
|
-
def cached?(file_path)
|
|
20
|
+
def self.cached?(file_path)
|
|
25
21
|
cache.key?(file_path)
|
|
26
22
|
end
|
|
27
23
|
|
|
28
24
|
sig { void }
|
|
29
|
-
def bust_cache!
|
|
25
|
+
def self.bust_cache!
|
|
30
26
|
@cache = nil
|
|
31
27
|
end
|
|
32
28
|
|
|
33
29
|
sig { returns(T::Hash[String, T.nilable(CodeTeams::Team)]) }
|
|
34
|
-
def cache
|
|
30
|
+
def self.cache
|
|
35
31
|
@cache ||= T.let(@cache,
|
|
36
32
|
T.nilable(T::Hash[String, T.nilable(CodeTeams::Team)]))
|
|
37
33
|
@cache ||= {}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
2
|
# typed: strict
|
|
4
3
|
|
|
5
4
|
module CodeOwnership
|
|
6
5
|
module Private
|
|
7
6
|
module TeamFinder
|
|
8
|
-
module_function
|
|
9
|
-
|
|
10
7
|
extend T::Sig
|
|
11
|
-
extend T::Helpers
|
|
12
|
-
|
|
13
|
-
requires_ancestor { Kernel }
|
|
14
8
|
|
|
15
9
|
sig { params(file_path: String, allow_raise: T::Boolean).returns(T.nilable(CodeTeams::Team)) }
|
|
16
|
-
def for_file(file_path, allow_raise: false)
|
|
10
|
+
def self.for_file(file_path, allow_raise: false)
|
|
17
11
|
return nil if file_path.start_with?('./')
|
|
18
12
|
|
|
19
13
|
return FilePathTeamCache.get(file_path) if FilePathTeamCache.cached?(file_path)
|
|
@@ -31,7 +25,7 @@ module CodeOwnership
|
|
|
31
25
|
end
|
|
32
26
|
|
|
33
27
|
sig { params(files: T::Array[String], allow_raise: T::Boolean).returns(T::Hash[String, T.nilable(CodeTeams::Team)]) }
|
|
34
|
-
def teams_for_files(files, allow_raise: false)
|
|
28
|
+
def self.teams_for_files(files, allow_raise: false)
|
|
35
29
|
result = {}
|
|
36
30
|
|
|
37
31
|
# Collect cached results and identify non-cached files
|
|
@@ -57,8 +51,8 @@ module CodeOwnership
|
|
|
57
51
|
result
|
|
58
52
|
end
|
|
59
53
|
|
|
60
|
-
sig { params(klass: T.nilable(T.any(T::Class[T.anything], Module))).returns(T.nilable(::CodeTeams::Team)) }
|
|
61
|
-
def for_class(klass)
|
|
54
|
+
sig { params(klass: T.nilable(T.any(T::Class[T.anything], T::Module[T.anything]))).returns(T.nilable(::CodeTeams::Team)) }
|
|
55
|
+
def self.for_class(klass)
|
|
62
56
|
file_path = FilePathFinder.path_from_klass(klass)
|
|
63
57
|
return nil if file_path.nil?
|
|
64
58
|
|
|
@@ -66,7 +60,7 @@ module CodeOwnership
|
|
|
66
60
|
end
|
|
67
61
|
|
|
68
62
|
sig { params(package: Packs::Pack).returns(T.nilable(::CodeTeams::Team)) }
|
|
69
|
-
def for_package(package)
|
|
63
|
+
def self.for_package(package)
|
|
70
64
|
owner_name = package.raw_hash['owner'] || package.metadata['owner']
|
|
71
65
|
return nil if owner_name.nil?
|
|
72
66
|
|
|
@@ -74,12 +68,12 @@ module CodeOwnership
|
|
|
74
68
|
end
|
|
75
69
|
|
|
76
70
|
sig { params(backtrace: T.nilable(T::Array[String]), excluded_teams: T::Array[::CodeTeams::Team]).returns(T.nilable(::CodeTeams::Team)) }
|
|
77
|
-
def for_backtrace(backtrace, excluded_teams: [])
|
|
71
|
+
def self.for_backtrace(backtrace, excluded_teams: [])
|
|
78
72
|
first_owned_file_for_backtrace(backtrace, excluded_teams: excluded_teams)&.first
|
|
79
73
|
end
|
|
80
74
|
|
|
81
75
|
sig { params(backtrace: T.nilable(T::Array[String]), excluded_teams: T::Array[::CodeTeams::Team]).returns(T.nilable([::CodeTeams::Team, String])) }
|
|
82
|
-
def first_owned_file_for_backtrace(backtrace, excluded_teams: [])
|
|
76
|
+
def self.first_owned_file_for_backtrace(backtrace, excluded_teams: [])
|
|
83
77
|
FilePathFinder.from_backtrace(backtrace).each do |file|
|
|
84
78
|
team = for_file(file)
|
|
85
79
|
if team && !excluded_teams.include?(team)
|
|
@@ -91,7 +85,7 @@ module CodeOwnership
|
|
|
91
85
|
end
|
|
92
86
|
|
|
93
87
|
sig { params(team_name: String, allow_raise: T::Boolean).returns(T.nilable(CodeTeams::Team)) }
|
|
94
|
-
def find_team!(team_name, allow_raise: false)
|
|
88
|
+
def self.find_team!(team_name, allow_raise: false)
|
|
95
89
|
team = CodeTeams.find(team_name)
|
|
96
90
|
if team.nil? && allow_raise
|
|
97
91
|
raise(StandardError, "Could not find team with name: `#{team_name}`. Make sure the team is one of `#{CodeTeams.all.map(&:name).sort}`")
|
data/lib/code_ownership.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
3
2
|
# typed: strict
|
|
4
3
|
|
|
5
4
|
require 'code_teams'
|
|
@@ -25,17 +24,13 @@ if defined?(Packwerk)
|
|
|
25
24
|
end
|
|
26
25
|
|
|
27
26
|
module CodeOwnership
|
|
28
|
-
module_function
|
|
29
|
-
|
|
30
27
|
extend T::Sig
|
|
31
|
-
extend T::Helpers
|
|
32
28
|
|
|
33
|
-
requires_ancestor { Kernel }
|
|
34
29
|
GlobsToOwningTeamMap = T.type_alias { T::Hash[String, CodeTeams::Team] }
|
|
35
30
|
|
|
36
31
|
# Returns the version of the code_ownership gem and the codeowners-rs gem.
|
|
37
32
|
sig { returns(T::Array[String]) }
|
|
38
|
-
def version
|
|
33
|
+
def self.version
|
|
39
34
|
["code_ownership version: #{VERSION}",
|
|
40
35
|
"codeowners-rs version: #{::RustCodeOwners.version}"]
|
|
41
36
|
end
|
|
@@ -65,7 +60,7 @@ module CodeOwnership
|
|
|
65
60
|
# # => raises exception if no owner found
|
|
66
61
|
#
|
|
67
62
|
sig { params(file: String, from_codeowners: T::Boolean, allow_raise: T::Boolean).returns(T.nilable(CodeTeams::Team)) }
|
|
68
|
-
def for_file(file, from_codeowners: true, allow_raise: false)
|
|
63
|
+
def self.for_file(file, from_codeowners: true, allow_raise: false)
|
|
69
64
|
if from_codeowners
|
|
70
65
|
teams_for_files_from_codeowners([file], allow_raise: allow_raise).values.first
|
|
71
66
|
else
|
|
@@ -116,7 +111,7 @@ module CodeOwnership
|
|
|
116
111
|
# @see #validate! for ensuring CODEOWNERS file is up-to-date
|
|
117
112
|
#
|
|
118
113
|
sig { params(files: T::Array[String], allow_raise: T::Boolean).returns(T::Hash[String, T.nilable(CodeTeams::Team)]) }
|
|
119
|
-
def teams_for_files_from_codeowners(files, allow_raise: false)
|
|
114
|
+
def self.teams_for_files_from_codeowners(files, allow_raise: false)
|
|
120
115
|
Private::TeamFinder.teams_for_files(files, allow_raise: allow_raise)
|
|
121
116
|
end
|
|
122
117
|
|
|
@@ -160,12 +155,12 @@ module CodeOwnership
|
|
|
160
155
|
# @see CLI#for_file for the command-line interface that uses this method
|
|
161
156
|
#
|
|
162
157
|
sig { params(file: String).returns(T.nilable(T::Hash[Symbol, String])) }
|
|
163
|
-
def for_file_verbose(file)
|
|
158
|
+
def self.for_file_verbose(file)
|
|
164
159
|
::RustCodeOwners.for_file(file)
|
|
165
160
|
end
|
|
166
161
|
|
|
167
162
|
sig { params(team: T.any(CodeTeams::Team, String)).returns(T::Array[String]) }
|
|
168
|
-
def for_team(team)
|
|
163
|
+
def self.for_team(team)
|
|
169
164
|
team = T.must(CodeTeams.find(team)) if team.is_a?(String)
|
|
170
165
|
::RustCodeOwners.for_team(team.name)
|
|
171
166
|
end
|
|
@@ -226,7 +221,7 @@ module CodeOwnership
|
|
|
226
221
|
files: T.nilable(T::Array[String])
|
|
227
222
|
).void
|
|
228
223
|
end
|
|
229
|
-
def validate!(
|
|
224
|
+
def self.validate!(
|
|
230
225
|
autocorrect: true,
|
|
231
226
|
stage_changes: true,
|
|
232
227
|
files: nil
|
|
@@ -269,7 +264,7 @@ module CodeOwnership
|
|
|
269
264
|
# @note Leading newlines after the annotation are also removed to maintain clean formatting.
|
|
270
265
|
#
|
|
271
266
|
sig { params(filename: String).void }
|
|
272
|
-
def remove_file_annotation!(filename)
|
|
267
|
+
def self.remove_file_annotation!(filename)
|
|
273
268
|
filepath = Pathname.new(filename)
|
|
274
269
|
|
|
275
270
|
begin
|
|
@@ -292,24 +287,24 @@ module CodeOwnership
|
|
|
292
287
|
# Given a backtrace from either `Exception#backtrace` or `caller`, find the
|
|
293
288
|
# first line that corresponds to a file with assigned ownership
|
|
294
289
|
sig { params(backtrace: T.nilable(T::Array[String]), excluded_teams: T::Array[::CodeTeams::Team]).returns(T.nilable(::CodeTeams::Team)) }
|
|
295
|
-
def for_backtrace(backtrace, excluded_teams: [])
|
|
290
|
+
def self.for_backtrace(backtrace, excluded_teams: [])
|
|
296
291
|
Private::TeamFinder.for_backtrace(backtrace, excluded_teams: excluded_teams)
|
|
297
292
|
end
|
|
298
293
|
|
|
299
294
|
# Given a backtrace from either `Exception#backtrace` or `caller`, find the
|
|
300
295
|
# first owned file in it, useful for figuring out which file is being blamed.
|
|
301
296
|
sig { params(backtrace: T.nilable(T::Array[String]), excluded_teams: T::Array[::CodeTeams::Team]).returns(T.nilable([::CodeTeams::Team, String])) }
|
|
302
|
-
def first_owned_file_for_backtrace(backtrace, excluded_teams: [])
|
|
297
|
+
def self.first_owned_file_for_backtrace(backtrace, excluded_teams: [])
|
|
303
298
|
Private::TeamFinder.first_owned_file_for_backtrace(backtrace, excluded_teams: excluded_teams)
|
|
304
299
|
end
|
|
305
300
|
|
|
306
|
-
sig { params(klass: T.nilable(T.any(T::Class[T.anything], Module))).returns(T.nilable(::CodeTeams::Team)) }
|
|
307
|
-
def for_class(klass)
|
|
301
|
+
sig { params(klass: T.nilable(T.any(T::Class[T.anything], T::Module[T.anything]))).returns(T.nilable(::CodeTeams::Team)) }
|
|
302
|
+
def self.for_class(klass)
|
|
308
303
|
Private::TeamFinder.for_class(klass)
|
|
309
304
|
end
|
|
310
305
|
|
|
311
306
|
sig { params(package: Packs::Pack).returns(T.nilable(::CodeTeams::Team)) }
|
|
312
|
-
def for_package(package)
|
|
307
|
+
def self.for_package(package)
|
|
313
308
|
Private::TeamFinder.for_package(package)
|
|
314
309
|
end
|
|
315
310
|
|