code_ownership 2.1.0 → 2.1.2
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/config +2 -2
- data/Cargo.lock +10 -16
- data/README.md +8 -8
- data/ext/cargo-vendor/codeowners-0.3.2/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/codeowners-0.3.2/.github/CODEOWNERS +1 -0
- data/ext/cargo-vendor/codeowners-0.3.2/AGENTS.md +38 -0
- data/ext/cargo-vendor/codeowners-0.3.2/CLAUDE.md +1 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/Cargo.lock +1 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/Cargo.toml +17 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/README.md +11 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cli.rs +9 -5
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/config.rs +81 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/crosscheck.rs +5 -8
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/codeowners_file_parser.rs +3 -3
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_owner_resolver.rs +3 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/package_mapper.rs +2 -2
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper.rs +2 -2
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/validator.rs +15 -10
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership.rs +1 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project.rs +3 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project_builder.rs +111 -44
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner/api.rs +7 -6
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner/types.rs +2 -1
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner.rs +67 -16
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/tracked_files.rs +29 -1
- data/ext/cargo-vendor/codeowners-0.3.2/tests/codeowners_path_test.rs +92 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/common/mod.rs +2 -1
- data/ext/cargo-vendor/codeowners-0.3.2/tests/executable_name_config_test.rs +67 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/config/code_ownership.yml +11 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/config/teams/test_team.yml +6 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/docs/CODEOWNERS +14 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/expected/CODEOWNERS +14 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/ruby/app/models/test.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/.github/CODEOWNERS +10 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/app/foo.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/code_ownership.yml +4 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/teams/foo.yml +5 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/teams/payments.yml +6 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/ruby/app/payments/foo.rb +4 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/.github/CODEOWNERS +11 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/app/bar.rb +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/config/code_ownership.yml +5 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/config/teams/bar.yml +5 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/.github/CODEOWNERS +10 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/code_ownership.yml +10 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/teams/bad_team.yml +1 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/teams/good.yml +3 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/valid_project/gems/pets/dog.rb +5 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/git_stage_test.rs +4 -1
- data/ext/cargo-vendor/codeowners-0.3.2/tests/missing_github_team_test.rs +23 -0
- data/ext/cargo-vendor/codeowners-0.3.2/tests/run_config_executable_override_test.rs +98 -0
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/runner_api.rs +8 -4
- data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/valid_project_test.rs +3 -3
- data/ext/cargo-vendor/codeowners-0.3.2/tests/validate_files_test.rs +378 -0
- 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/cargo-vendor/unicode-ident-1.0.19/.cargo-checksum.json +1 -1
- data/ext/code_ownership/Cargo.toml +3 -3
- data/ext/code_ownership/extconf.rb +2 -1
- data/ext/code_ownership/src/lib.rs +18 -18
- data/lib/code_ownership/cli.rb +1 -0
- data/lib/code_ownership/private/file_path_finder.rb +22 -10
- 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 +9 -16
- data/lib/code_ownership/version.rb +2 -2
- data/lib/code_ownership.rb +14 -17
- metadata +359 -337
- data/ext/cargo-vendor/codeowners-0.3.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/codeowners-0.3.0/tests/validate_files_test.rs +0 -144
- 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/unicode-ident-1.0.19/tests/fst/.gitignore +0 -1
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/audit.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/ci.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/dotslash-config.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.rustfmt.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.rusty-hook.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/dev/run_benchmarks_for_file.sh +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/dev/run_benchmarks_for_gv.sh +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/rust-toolchain.toml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/file.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/mod.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/noop.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/common_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/lib.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/main.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/codeowners_query.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_generator.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_owner_finder.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/annotated_file_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/directory_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/escaper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_gem_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_glob_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_yml_mapper.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/path_utils.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project_file_builder.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/cache_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/crosscheck_owners_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/teams/payments.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/teams/payroll.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/gems/payroll_calculator/calculator.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/bank_account.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/blockchain.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/payments/nacha.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/services/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/services/multi_owned.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/unowned.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/packages/payroll_flow/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/.keep +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/teams/design.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/teams/frontend.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/apps/public/index.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/src/index.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/src/button.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0/tests/fixtures/valid_project → codeowners-0.3.2/tests/fixtures/missing_github_team}/gems/pets/dog.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/deep/nesting/nestdir/deep_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/one_owner.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/exciting/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/exciting/some_other_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/teams/bar.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/teams/foo.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/.ignore +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/payments.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/payroll.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/ux.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/gems/payroll_calculator/calculator.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/index.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/(special)/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/(special)/pay.ts +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/item.ts +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/list/page-admin.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/models/bank_account.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/models/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/foo/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/foo/ownedby_payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/nacha.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payroll/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payroll/payroll.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/edit.erb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/index.html.erb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/new.html.erb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/ignored_files/git_ignored.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/packages/payroll_flow/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/should_be_ignored/an_ignored_file.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/code_ownership.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/brewers.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/cubs.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/giants.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/rockies.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/src/picks/dp.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/src/item.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/package.json +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/field.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/fields/small.tsx +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/apollo/lib/apollo.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/ivy/lib/ivy.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/lager/lib/lager.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/summit/lib/summit.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/games/app/services/stats.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/games/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/locations/app/services/capacity.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/locations/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/schedule/app/services/date.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/schedule/package.yml +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/lib/util.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/.codeowner +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/db/price.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/entertainment.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/giants/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/rockies/services/play.rb +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/invalid_project_structure_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/invalid_project_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/multiple_directory_owners_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/untracked_files_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/valid_project_with_overrides_test.rs +0 -0
- /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tmp/.gitkeep +0 -0
- /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
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
use assert_cmd::prelude::*;
|
|
2
|
+
use predicates::prelude::*;
|
|
3
|
+
use std::{error::Error, process::Command};
|
|
4
|
+
|
|
5
|
+
mod common;
|
|
6
|
+
|
|
7
|
+
use common::*;
|
|
8
|
+
|
|
9
|
+
#[test]
|
|
10
|
+
fn test_validate_with_owned_files() -> Result<(), Box<dyn Error>> {
|
|
11
|
+
run_codeowners(
|
|
12
|
+
"valid_project",
|
|
13
|
+
&["validate", "ruby/app/models/payroll.rb", "ruby/app/models/bank_account.rb"],
|
|
14
|
+
true,
|
|
15
|
+
OutputStream::Stdout,
|
|
16
|
+
predicate::eq(""),
|
|
17
|
+
)?;
|
|
18
|
+
|
|
19
|
+
Ok(())
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#[test]
|
|
23
|
+
fn test_validate_with_unowned_file() -> Result<(), Box<dyn Error>> {
|
|
24
|
+
run_codeowners(
|
|
25
|
+
"valid_project",
|
|
26
|
+
&["validate", "ruby/app/unowned.rb"],
|
|
27
|
+
false,
|
|
28
|
+
OutputStream::Stdout,
|
|
29
|
+
predicate::str::contains("ruby/app/unowned.rb").and(predicate::str::contains("Unowned")),
|
|
30
|
+
)?;
|
|
31
|
+
|
|
32
|
+
Ok(())
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
#[test]
|
|
36
|
+
fn test_validate_with_mixed_files() -> Result<(), Box<dyn Error>> {
|
|
37
|
+
run_codeowners(
|
|
38
|
+
"valid_project",
|
|
39
|
+
&["validate", "ruby/app/models/payroll.rb", "ruby/app/unowned.rb"],
|
|
40
|
+
false,
|
|
41
|
+
OutputStream::Stdout,
|
|
42
|
+
predicate::str::contains("ruby/app/unowned.rb").and(predicate::str::contains("Unowned")),
|
|
43
|
+
)?;
|
|
44
|
+
|
|
45
|
+
Ok(())
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#[test]
|
|
49
|
+
fn test_validate_with_no_files() -> Result<(), Box<dyn Error>> {
|
|
50
|
+
// Existing behavior - validates entire project
|
|
51
|
+
run_codeowners("valid_project", &["validate"], true, OutputStream::Stdout, predicate::eq(""))?;
|
|
52
|
+
|
|
53
|
+
Ok(())
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
#[test]
|
|
57
|
+
fn test_generate_and_validate_with_owned_files() -> Result<(), Box<dyn Error>> {
|
|
58
|
+
let fixture_root = std::path::Path::new("tests/fixtures/valid_project");
|
|
59
|
+
let temp_dir = setup_fixture_repo(fixture_root);
|
|
60
|
+
let project_root = temp_dir.path();
|
|
61
|
+
git_add_all_files(project_root);
|
|
62
|
+
|
|
63
|
+
let codeowners_path = project_root.join("tmp/CODEOWNERS");
|
|
64
|
+
|
|
65
|
+
Command::cargo_bin("codeowners")?
|
|
66
|
+
.arg("--project-root")
|
|
67
|
+
.arg(project_root)
|
|
68
|
+
.arg("--codeowners-file-path")
|
|
69
|
+
.arg(&codeowners_path)
|
|
70
|
+
.arg("--no-cache")
|
|
71
|
+
.arg("generate-and-validate")
|
|
72
|
+
.arg("ruby/app/models/payroll.rb")
|
|
73
|
+
.arg("ruby/app/models/bank_account.rb")
|
|
74
|
+
.assert()
|
|
75
|
+
.success();
|
|
76
|
+
|
|
77
|
+
Ok(())
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
#[test]
|
|
81
|
+
fn test_generate_and_validate_with_unowned_file() -> Result<(), Box<dyn Error>> {
|
|
82
|
+
let fixture_root = std::path::Path::new("tests/fixtures/valid_project");
|
|
83
|
+
let temp_dir = setup_fixture_repo(fixture_root);
|
|
84
|
+
let project_root = temp_dir.path();
|
|
85
|
+
git_add_all_files(project_root);
|
|
86
|
+
|
|
87
|
+
let codeowners_path = project_root.join("tmp/CODEOWNERS");
|
|
88
|
+
|
|
89
|
+
Command::cargo_bin("codeowners")?
|
|
90
|
+
.arg("--project-root")
|
|
91
|
+
.arg(project_root)
|
|
92
|
+
.arg("--codeowners-file-path")
|
|
93
|
+
.arg(&codeowners_path)
|
|
94
|
+
.arg("--no-cache")
|
|
95
|
+
.arg("generate-and-validate")
|
|
96
|
+
.arg("ruby/app/unowned.rb")
|
|
97
|
+
.assert()
|
|
98
|
+
.failure()
|
|
99
|
+
.stdout(predicate::str::contains("ruby/app/unowned.rb"))
|
|
100
|
+
.stdout(predicate::str::contains("Unowned"));
|
|
101
|
+
|
|
102
|
+
Ok(())
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
#[test]
|
|
106
|
+
fn test_validate_with_absolute_path() -> Result<(), Box<dyn Error>> {
|
|
107
|
+
let fixture_root = std::path::Path::new("tests/fixtures/valid_project");
|
|
108
|
+
let temp_dir = setup_fixture_repo(fixture_root);
|
|
109
|
+
let project_root = temp_dir.path();
|
|
110
|
+
git_add_all_files(project_root);
|
|
111
|
+
|
|
112
|
+
let file_absolute_path = project_root.join("ruby/app/models/payroll.rb").canonicalize()?;
|
|
113
|
+
|
|
114
|
+
Command::cargo_bin("codeowners")?
|
|
115
|
+
.arg("--project-root")
|
|
116
|
+
.arg(project_root)
|
|
117
|
+
.arg("--no-cache")
|
|
118
|
+
.arg("validate")
|
|
119
|
+
.arg(file_absolute_path.to_str().unwrap())
|
|
120
|
+
.assert()
|
|
121
|
+
.success();
|
|
122
|
+
|
|
123
|
+
Ok(())
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
#[test]
|
|
127
|
+
fn test_validate_only_checks_codeowners_file() -> Result<(), Box<dyn Error>> {
|
|
128
|
+
// This test demonstrates that `validate` with files only checks the CODEOWNERS file
|
|
129
|
+
// It does NOT check file annotations or other ownership sources
|
|
130
|
+
//
|
|
131
|
+
// If a file has an annotation but is missing from CODEOWNERS, `validate` will report it as unowned
|
|
132
|
+
// This is why `generate-and-validate` should be used for accuracy
|
|
133
|
+
|
|
134
|
+
// ruby/app/models/bank_account.rb has @team Payments annotation and is in CODEOWNERS
|
|
135
|
+
run_codeowners(
|
|
136
|
+
"valid_project",
|
|
137
|
+
&["validate", "ruby/app/models/bank_account.rb"],
|
|
138
|
+
true,
|
|
139
|
+
OutputStream::Stdout,
|
|
140
|
+
predicate::eq(""),
|
|
141
|
+
)?;
|
|
142
|
+
|
|
143
|
+
Ok(())
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
#[test]
|
|
147
|
+
fn test_validate_files_respects_owned_globs_with_excluded_extensions() -> Result<(), Box<dyn Error>> {
|
|
148
|
+
// Validates that files not matching owned_globs are silently skipped when
|
|
149
|
+
// validate is called with an explicit file list.
|
|
150
|
+
//
|
|
151
|
+
// valid_project owned_globs: "{gems,config,javascript,ruby,components}/**/*.{rb,tsx,erb}"
|
|
152
|
+
// .rbi files (Sorbet interface files) do NOT match this pattern and should be filtered.
|
|
153
|
+
|
|
154
|
+
// Setup: Create a temporary copy of valid_project fixture
|
|
155
|
+
let fixture_root = std::path::Path::new("tests/fixtures/valid_project");
|
|
156
|
+
let temp_dir = setup_fixture_repo(fixture_root);
|
|
157
|
+
let project_root = temp_dir.path();
|
|
158
|
+
|
|
159
|
+
// Create .rbi files (Sorbet interface files) that do NOT match owned_globs
|
|
160
|
+
// These files should be ignored by validate when specified in the file list
|
|
161
|
+
let bank_account_rbi = project_root.join("ruby/app/models/bank_account.rbi");
|
|
162
|
+
let payroll_rbi = project_root.join("ruby/app/models/payroll.rbi");
|
|
163
|
+
|
|
164
|
+
std::fs::write(
|
|
165
|
+
&bank_account_rbi,
|
|
166
|
+
"# typed: strict\n# RBI file for BankAccount\nclass BankAccount; end\n",
|
|
167
|
+
)?;
|
|
168
|
+
std::fs::write(&payroll_rbi, "# typed: strict\n# RBI file for Payroll\nclass Payroll; end\n")?;
|
|
169
|
+
|
|
170
|
+
git_add_all_files(project_root);
|
|
171
|
+
|
|
172
|
+
// Step 1: Generate CODEOWNERS
|
|
173
|
+
// This should ONLY include .rb files (not .rbi) because .rbi doesn't match owned_globs
|
|
174
|
+
let codeowners_path = project_root.join("tmp/CODEOWNERS");
|
|
175
|
+
Command::cargo_bin("codeowners")?
|
|
176
|
+
.arg("--project-root")
|
|
177
|
+
.arg(project_root)
|
|
178
|
+
.arg("--codeowners-file-path")
|
|
179
|
+
.arg(&codeowners_path)
|
|
180
|
+
.arg("--no-cache")
|
|
181
|
+
.arg("generate")
|
|
182
|
+
.assert()
|
|
183
|
+
.success();
|
|
184
|
+
|
|
185
|
+
// Verify: CODEOWNERS contains .rb files but NOT .rbi files
|
|
186
|
+
let codeowners_content = std::fs::read_to_string(&codeowners_path)?;
|
|
187
|
+
assert!(
|
|
188
|
+
codeowners_content.contains("bank_account.rb"),
|
|
189
|
+
"CODEOWNERS should contain .rb files (they match owned_globs)"
|
|
190
|
+
);
|
|
191
|
+
assert!(
|
|
192
|
+
!codeowners_content.contains("bank_account.rbi"),
|
|
193
|
+
"CODEOWNERS should NOT contain .rbi files (they don't match owned_globs)"
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
// Step 2: Run validate with BOTH .rb and .rbi files in the list.
|
|
197
|
+
// .rbi files should be silently filtered; only .rb files validated; command succeeds.
|
|
198
|
+
Command::cargo_bin("codeowners")?
|
|
199
|
+
.arg("--project-root")
|
|
200
|
+
.arg(project_root)
|
|
201
|
+
.arg("--codeowners-file-path")
|
|
202
|
+
.arg(&codeowners_path)
|
|
203
|
+
.arg("--no-cache")
|
|
204
|
+
.arg("validate")
|
|
205
|
+
// Mix .rb and .rbi files in the argument list
|
|
206
|
+
.arg("ruby/app/models/bank_account.rb") // Should be validated (matches owned_globs)
|
|
207
|
+
.arg("ruby/app/models/bank_account.rbi") // Should be SKIPPED (doesn't match)
|
|
208
|
+
.arg("ruby/app/models/payroll.rb") // Should be validated (matches owned_globs)
|
|
209
|
+
.arg("ruby/app/models/payroll.rbi") // Should be SKIPPED (doesn't match)
|
|
210
|
+
.assert()
|
|
211
|
+
.success()
|
|
212
|
+
.stdout(predicate::eq(""));
|
|
213
|
+
|
|
214
|
+
Ok(())
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// ============================================================================
|
|
218
|
+
// GLOB FILTERING TESTS: Verify validate with files respects owned_globs
|
|
219
|
+
// ============================================================================
|
|
220
|
+
//
|
|
221
|
+
// These tests ensure that when validate is called with explicit file paths,
|
|
222
|
+
// it correctly filters files based on owned_globs configuration. Files that
|
|
223
|
+
// don't match owned_globs should be silently skipped, not reported as unowned.
|
|
224
|
+
|
|
225
|
+
#[test]
|
|
226
|
+
fn test_validate_filters_multiple_non_matching_extensions() -> Result<(), Box<dyn Error>> {
|
|
227
|
+
// Test that various file types not in owned_globs are filtered out
|
|
228
|
+
// valid_project owned_globs: "{gems,config,javascript,ruby,components}/**/*.{rb,tsx,erb}"
|
|
229
|
+
let fixture_root = std::path::Path::new("tests/fixtures/valid_project");
|
|
230
|
+
let temp_dir = setup_fixture_repo(fixture_root);
|
|
231
|
+
let project_root = temp_dir.path();
|
|
232
|
+
|
|
233
|
+
// Create files with extensions NOT in owned_globs
|
|
234
|
+
std::fs::write(project_root.join("ruby/app/models/test.rbi"), "# Sorbet RBI file")?;
|
|
235
|
+
std::fs::write(project_root.join("ruby/app/models/test.md"), "# Markdown doc")?;
|
|
236
|
+
std::fs::write(project_root.join("ruby/app/models/test.txt"), "Plain text")?;
|
|
237
|
+
std::fs::write(project_root.join("ruby/app/models/test.json"), "{}")?;
|
|
238
|
+
|
|
239
|
+
git_add_all_files(project_root);
|
|
240
|
+
|
|
241
|
+
let codeowners_path = project_root.join("tmp/CODEOWNERS");
|
|
242
|
+
|
|
243
|
+
// Generate CODEOWNERS (will only include .rb, .tsx, .erb files)
|
|
244
|
+
Command::cargo_bin("codeowners")?
|
|
245
|
+
.arg("--project-root")
|
|
246
|
+
.arg(project_root)
|
|
247
|
+
.arg("--codeowners-file-path")
|
|
248
|
+
.arg(&codeowners_path)
|
|
249
|
+
.arg("--no-cache")
|
|
250
|
+
.arg("generate")
|
|
251
|
+
.assert()
|
|
252
|
+
.success();
|
|
253
|
+
|
|
254
|
+
// Validate with a mix of matching and non-matching files
|
|
255
|
+
// All non-matching should be filtered, matching ones should succeed
|
|
256
|
+
Command::cargo_bin("codeowners")?
|
|
257
|
+
.arg("--project-root")
|
|
258
|
+
.arg(project_root)
|
|
259
|
+
.arg("--codeowners-file-path")
|
|
260
|
+
.arg(&codeowners_path)
|
|
261
|
+
.arg("--no-cache")
|
|
262
|
+
.arg("validate")
|
|
263
|
+
.arg("ruby/app/models/payroll.rb") // matches owned_globs, is owned
|
|
264
|
+
.arg("ruby/app/models/test.rbi") // doesn't match owned_globs
|
|
265
|
+
.arg("ruby/app/models/test.md") // doesn't match owned_globs
|
|
266
|
+
.arg("ruby/app/models/test.txt") // doesn't match owned_globs
|
|
267
|
+
.arg("ruby/app/models/test.json") // doesn't match owned_globs
|
|
268
|
+
.assert()
|
|
269
|
+
.success()
|
|
270
|
+
.stdout(predicate::eq(""));
|
|
271
|
+
|
|
272
|
+
Ok(())
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
#[test]
|
|
276
|
+
fn test_validate_filters_files_outside_owned_directories() -> Result<(), Box<dyn Error>> {
|
|
277
|
+
// Test that files in directories not matching owned_globs are filtered
|
|
278
|
+
// valid_project owned_globs: "{gems,config,javascript,ruby,components}/**/*.{rb,tsx,erb}"
|
|
279
|
+
let fixture_root = std::path::Path::new("tests/fixtures/valid_project");
|
|
280
|
+
let temp_dir = setup_fixture_repo(fixture_root);
|
|
281
|
+
let project_root = temp_dir.path();
|
|
282
|
+
|
|
283
|
+
// Create .rb files OUTSIDE the owned directories
|
|
284
|
+
std::fs::create_dir_all(project_root.join("scripts"))?;
|
|
285
|
+
std::fs::write(project_root.join("scripts/deploy.rb"), "# Deploy script")?;
|
|
286
|
+
std::fs::create_dir_all(project_root.join("bin"))?;
|
|
287
|
+
std::fs::write(project_root.join("bin/run.rb"), "# Run script")?;
|
|
288
|
+
|
|
289
|
+
git_add_all_files(project_root);
|
|
290
|
+
|
|
291
|
+
let codeowners_path = project_root.join("tmp/CODEOWNERS");
|
|
292
|
+
|
|
293
|
+
// Generate CODEOWNERS
|
|
294
|
+
Command::cargo_bin("codeowners")?
|
|
295
|
+
.arg("--project-root")
|
|
296
|
+
.arg(project_root)
|
|
297
|
+
.arg("--codeowners-file-path")
|
|
298
|
+
.arg(&codeowners_path)
|
|
299
|
+
.arg("--no-cache")
|
|
300
|
+
.arg("generate")
|
|
301
|
+
.assert()
|
|
302
|
+
.success();
|
|
303
|
+
|
|
304
|
+
// Validate with files both inside and outside owned directories
|
|
305
|
+
Command::cargo_bin("codeowners")?
|
|
306
|
+
.arg("--project-root")
|
|
307
|
+
.arg(project_root)
|
|
308
|
+
.arg("--codeowners-file-path")
|
|
309
|
+
.arg(&codeowners_path)
|
|
310
|
+
.arg("--no-cache")
|
|
311
|
+
.arg("validate")
|
|
312
|
+
.arg("ruby/app/models/payroll.rb") // inside ruby/, matches owned_globs
|
|
313
|
+
.arg("scripts/deploy.rb") // outside owned dirs, filtered
|
|
314
|
+
.arg("bin/run.rb") // outside owned dirs, filtered
|
|
315
|
+
.assert()
|
|
316
|
+
.success()
|
|
317
|
+
.stdout(predicate::eq(""));
|
|
318
|
+
|
|
319
|
+
Ok(())
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
#[test]
|
|
323
|
+
fn test_validate_respects_unowned_globs() -> Result<(), Box<dyn Error>> {
|
|
324
|
+
// Test that files matching unowned_globs are filtered out even if they match owned_globs
|
|
325
|
+
let fixture_root = std::path::Path::new("tests/fixtures/valid_project");
|
|
326
|
+
let temp_dir = setup_fixture_repo(fixture_root);
|
|
327
|
+
let project_root = temp_dir.path();
|
|
328
|
+
|
|
329
|
+
// Read and modify the config to add unowned_globs
|
|
330
|
+
let config_path = project_root.join("config/code_ownership.yml");
|
|
331
|
+
let config_content = std::fs::read_to_string(&config_path)?;
|
|
332
|
+
let updated_config = config_content.replace("unowned_globs:", "unowned_globs:\n - ruby/app/models/ignored_*.rb");
|
|
333
|
+
std::fs::write(&config_path, updated_config)?;
|
|
334
|
+
|
|
335
|
+
// Create a file that matches owned_globs but also matches unowned_globs
|
|
336
|
+
std::fs::write(
|
|
337
|
+
project_root.join("ruby/app/models/ignored_test.rb"),
|
|
338
|
+
"# This file should be ignored via unowned_globs",
|
|
339
|
+
)?;
|
|
340
|
+
|
|
341
|
+
git_add_all_files(project_root);
|
|
342
|
+
|
|
343
|
+
let codeowners_path = project_root.join("tmp/CODEOWNERS");
|
|
344
|
+
|
|
345
|
+
// Generate CODEOWNERS (ignored_test.rb should NOT be included)
|
|
346
|
+
Command::cargo_bin("codeowners")?
|
|
347
|
+
.arg("--project-root")
|
|
348
|
+
.arg(project_root)
|
|
349
|
+
.arg("--codeowners-file-path")
|
|
350
|
+
.arg(&codeowners_path)
|
|
351
|
+
.arg("--no-cache")
|
|
352
|
+
.arg("generate")
|
|
353
|
+
.assert()
|
|
354
|
+
.success();
|
|
355
|
+
|
|
356
|
+
// Verify the ignored file is NOT in CODEOWNERS
|
|
357
|
+
let codeowners_content = std::fs::read_to_string(&codeowners_path)?;
|
|
358
|
+
assert!(
|
|
359
|
+
!codeowners_content.contains("ignored_test.rb"),
|
|
360
|
+
"ignored_test.rb should not be in CODEOWNERS"
|
|
361
|
+
);
|
|
362
|
+
|
|
363
|
+
// Validate with the ignored file - should be filtered by unowned_globs
|
|
364
|
+
Command::cargo_bin("codeowners")?
|
|
365
|
+
.arg("--project-root")
|
|
366
|
+
.arg(project_root)
|
|
367
|
+
.arg("--codeowners-file-path")
|
|
368
|
+
.arg(&codeowners_path)
|
|
369
|
+
.arg("--no-cache")
|
|
370
|
+
.arg("validate")
|
|
371
|
+
.arg("ruby/app/models/payroll.rb") // owned, should validate
|
|
372
|
+
.arg("ruby/app/models/ignored_test.rb") // matches unowned_globs, should be filtered
|
|
373
|
+
.assert()
|
|
374
|
+
.success()
|
|
375
|
+
.stdout(predicate::eq(""));
|
|
376
|
+
|
|
377
|
+
Ok(())
|
|
378
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"files":{".cargo/config.toml":"ed525863f7a774eb7e8ef3a93105d90b8abb0c1f9b08ea366b5fe2248b22b27a",".cargo_vcs_info.json":"f0c4b5c4fe51556342db5f1814bea3b79b09cdc750ef7e86b675b96a0f4d0336","CHANGELOG.md":"b25ccca125ef060e422eb66f669dae281a5da0bb5ec7a64737c02c2917ff1d84","Cargo.lock":"d51a655ebe11a5cf47c4ccd791f17bf0201f755ab01e895bdbfe0af55cc41e1e","Cargo.toml":"61f329474ec714384fb0dba6db3369fa2ff9e18a62738b689fbc21dc58c4d659","Cargo.toml.orig":"7b7324b56f885496ca90c54b52f5df6af29a864ac458ff971d9a435a08081be0","Gemfile":"7c958c7b6cd184575ee0a468b66d67112b4def09f3030a5157d62f560878708a","LICENSE":"79e69d34457af5881b9b7410144cac786098fd86f242a98f419aa8abd1b0578a","README.md":"10ac5fb99d9be8620641eab43d4f55edd927a310b2bf6b9c7c2ee1b6a80f8d77","build.rs":"0646d851f8c094ccf5b587eb83ce3d6562ab1b3acec28e6f439fa85971387154","examples/complete_object/Rakefile":"63be02aaf8cf175aae6e3d817d33981317b8c06110ee38ac4b7756f6e05151ca","examples/complete_object/lib/temperature.rb":"d6cbafd219936c70cb5c35de5d43b2e1fecf0148068647c7bf5f50987ff49634","examples/complete_object/test/temperature_test.rb":"74b8121af848759ebc498a8fc769c1eddab281baba0778284f82e048c1df8422","examples/custom_exception_ruby/Rakefile":"ae1bb6e5b35786f2a6db2be6315d9ffdef5302f848295a54831bfad24386b49f","examples/custom_exception_ruby/lib/ahriman.rb":"5c87d840c7722e2e2f6a25a5b79b8953f3a629acab339c4b52f24e999dd4c97b","examples/custom_exception_ruby/lib/ahriman/error.rb":"06135d2f03ee80dfdd241bb5429da5e428b2286a56630e35ed7fb4e2bf82f92a","examples/custom_exception_ruby/test/error_test.rb":"58929553d12dceacf48c353ff46f0a88efd778bce88a674fcc2db97430f038af","examples/custom_exception_rust/Rakefile":"ae1bb6e5b35786f2a6db2be6315d9ffdef5302f848295a54831bfad24386b49f","examples/custom_exception_rust/lib/ahriman.rb":"bf286f8248334f6e437676c545609442a764fc342c3bcf40fec0cd05c7439ba7","examples/custom_exception_rust/test/error_test.rb":"58929553d12dceacf48c353ff46f0a88efd778bce88a674fcc2db97430f038af","examples/fibonacci.rs":"bf17b928cafb2163850f7571b17460285037cdcdc5318a34753d9fbc0f8a82e6","examples/hello_world.rs":"bd58f701357dfa36b22dd5086de2f7f76daba1d5da7964089d3c62e0a80871a0","examples/inheritance.rs":"d8ffa218b0d6007efcfea1d424e246d26e3628ddc36492d0045459da8b0f8824","examples/mut_point.rs":"1c40e4d85164f6ad9311384625cbf87ce83a2bc4c067f74b1f1e18e6c15e9a3b","examples/point.rs":"ec16e0e7b472a3bdac26025356854f406637f0db4e841e01f612fed778159a20","examples/rust_blank/Rakefile":"5dabeb863e0633e93b76a0bf7de3c8df3d2bfcfa0bee11978142d58e7749d347","examples/rust_blank/lib/rust_blank.rb":"6369d3940e2aa1180af34a035a2b06b046374f170f9aab5f5fb33643deb596ab","examples/rust_blank/test/bench.rb":"85e7af2db8c3613cd4f095bddc7cd8c528a3ffdcd32571b8a2eed2ea1fcb75a4","examples/rust_blank/test/blank_test.rb":"ee40ae3b73b27ba27fe0c8d00c6a59225943087d09dc67c5e9b2e38810c37fc5","src/api.rs":"0fcf5195f8fda3b7952af8f3b8fec00f04d9fc1ee01421a444a93ddd05af8eb7","src/block.rs":"5c6d93755e73d703b60d3049dae66e786a07db881c3d6a7f241c01d5c0a760c5","src/class.rs":"568b3e0dacf0148f67e189c0534bdfede6779917c2b4c1a2699277739df74d69","src/embed.rs":"731aee7b1fe3022e708236e1b63e35ecc5f265be16201a574a6075053a5da58e","src/encoding.rs":"3fc111336119644101129685f25452798d6701fd4fcfb31875f89d4a7865b63b","src/enumerator.rs":"0b4f5cc76fe3fe609b79ebbcb65e1bcfd05a8a49eef1818e15ee54f7f26c1b37","src/error.rs":"e6bcbc4f65a12241d202448c3f4c9da1f0f4869625bda56d7ee1f4b6f224f8c2","src/exception.rs":"380add542d2ff44998b5803e7d0425a95f30b22a160229a5814c975687c74f72","src/fiber.rs":"4e3ea9e8b3f78a1b85ae2e0833ade92e55750d337533691665de4477e5b5ecc4","src/float.rs":"6834a672df366db5c370a73a5af5b113854809deebd3cc522dff1c0bd6416952","src/gc.rs":"6135084cb9339553c57d6af65cb9a63046b083bacddd9abe2c4da972b4216370","src/integer.rs":"c756186f1c90394cfd7d9a8b9dac6ea9edb09c21c54e2fddff9918bffbf777d3","src/into_value.rs":"67ad873553aab8b140f47ad9f7d0949875df461a57d72c930ba8ad21fdbec178","src/io.rs":"8ad2974e4f11ac5e1982be65ba72a2c86b0227afcdf2248afd9cc79d5c36b612","src/lib.rs":"536706cddf4490dda547b81e1695c0a7445815683bc7e228410d271e49bd076b","src/macros.rs":"66f6581cbab0c6e9829356e63d058215d0c32ac56b2143b0fa61da8d039cc3ed","src/method.rs":"9c2b2573376278b52fbdf3d0dcc27ff006bf863c1e699355ddc50f7aa1210150","src/module.rs":"863a3daa75caab0daeee40fd85c785878602100e846b910a03eaf22c07d58165","src/mutex.rs":"cadb50178cf083045a5aec6c8e68ec11551707a8746b18c4f90064d88d6f56c3","src/numeric.rs":"078819ce53c4a6d633d3536cc0eb0f8602c68d32f42cc432788fdb87aefedbdd","src/object.rs":"83f083aadc9bb7f9fbbf22fb2de9bdffdd54a560a8fbc099522a4081c565cd29","src/process.rs":"3407b1090a90ef7d9550b04155b20ca10a43d2ba6f2a2677441f834d389c3c30","src/r_array.rs":"4ab7b13bb8080fafc82f114eaa8f7011b578023044a3e23b7054fe2015628daa","src/r_bignum.rs":"e62d741776ebf640a09b669f422169b259f788a80b5e34d33336fa18fab43dec","src/r_complex.rs":"541038c4f0c22255d1ba743225cdd7fd03bf131dd282ee7d0ddf07dbe2d75a5b","src/r_file.rs":"cf2d40ac8e7822a4ea0158caf10417aa8229b6bfb11b98765127c835b42362fa","src/r_float.rs":"42c5bc3e468f3ca9dcfed6e450188f4e3843453c9892962d8644878369f3549d","src/r_hash.rs":"5c573feecfe7a1e5d703ea15dae8a6cf1455f280ac701bb2cde765f87219bf79","src/r_match.rs":"d88c090998b3f2bcaaf9e06ffe1685ec7920223af8412c2d1a13862ab373181b","src/r_object.rs":"b8e6d7e147e870880b5f00679c04619db5921d9b7015a9ca3e40694957812343","src/r_rational.rs":"6df9146be9ca7f2ed08917b94bd9dd0a6696c1018926fe69a39d55d2cfa264ac","src/r_regexp.rs":"9dfb1e8d4aae0788793fc39e182921db099f64020a4907e9d83bfa8d9aeb11c3","src/r_string.rs":"2638130b48338d553c74c5829724772c5caae7b01f4c8e2a626680b925fc5db2","src/r_struct.rs":"8d0d9cd99df09f24fc36b5b10709fe7925d55e2d0d2b71dfa0921cf23c2121dc","src/r_typed_data.rs":"042c7950d792828b43d133f8bce0310ae2d9cb578213dcf75a8cf5f70a73c917","src/range.rs":"d77fe64e36aa95cbc8367952704ec08e05b383ac826f19f456defed986bf34aa","src/rb_sys.rs":"846f96dd49a9d1b92077e774b89deb6b86beca8684eefe29fac992d4cbe29fb3","src/scan_args.rs":"0fab1930950700c57b7717649963559c73fcf6318db931018d16ff7e62e2f60c","src/symbol.rs":"634afde87a5c416ce53b3db0366d74455accb088739debd993fb9eca9d08199f","src/thread.rs":"814d1220771b9fc1a97a4424519e61bdadef11250b88a0e6c71de91e0402d9ff","src/time.rs":"d3406519e170010ae64f2d8f78c829f1304bc463cff47cafe58f519ef26084ca","src/try_convert.rs":"7831ea6898747d5c8afdcbb89c9866edac343dfdd401914ad7ad98199e9a3e92","src/typed_data.rs":"c3458d541bdeb6e3897ebdea4b431c212afcb0155c6ff473c4744d025b0e61ca","src/value.rs":"85071510fd06e3dda0f95f537d23433d3e471402edf7a1583619a8bd16927885","src/value/flonum.rs":"d847a2207518f7e39d1c9f5d49e43305bf342e66a868fe263fc7ccd527dd91f1","test":"5c5ce2cd50f3146a75019f49af99ec0141e8ec8743453f91d13bbb8a730a04ba","tests/allocate_before_init.rs":"fb7633b928825be8813291bef021f72ae01fea4950bc72896418ca22eba9d70d","tests/array_slice.rs":"eec9de22f0bc8432540654557abbc217f431b1ba186dd81c7e92485d507ab095","tests/block_call.rs":"96671e3404e32455dfe7dfb7ab0a0b3ded8dc4175830ae15c174a6556eb67f03","tests/bytes.rs":"1f9725be6ab1ed89a7c67816c1f351b397e4aa35102ceb14cda31d07b6464c7a","tests/call_proc.rs":"99d291576ed4e558e2f39ec9ac9dc673c6586e3dde30afac4ab923497e0e92bf","tests/classname.rs":"591f6e214c4e790f4bd608fc36e3812e7af11b787e74fabbdc08bb8d6a313c53","tests/clone.rs":"60fe97ee8396e880ab46f5818a1bf76fa983d03155a651e653fa8fcbd9141810","tests/codepoints.rs":"47a5ecd6444c20fc1e6f1d1970a38a1165ed35bbe90ceca0a91e925e6c885c7f","tests/debug_exception.rs":"c07319cd47464cf1a718ae8375a0ae71318949950478bafcfb309efdf33f7bc6","tests/encoding_capable.rs":"7c5a38ed28bf9678108defca7b88ecc4bcdf3d39d08f553f147ef945e396a335","tests/enumerator.rs":"ca1f20638160235bd1470836169f6a7ff354bad2dfc61742a426fd3f64c2724e","tests/enumeratorize.rs":"77b00419d23036217730eaad8f32e45b91eb6977611f246bd90fd3443fe250b5","tests/float_convert_from_value.rs":"db3e5f50996b0ac55336d2b901159b76c9f6ef1c42af2fdcc5e96c9aa307cd4c","tests/float_convert_to_value.rs":"21427a640e833d7387ddd147a0901c35bb39b0ae4ef2bcaaef9358c56794182c","tests/fmt.rs":"620bd39a7fd3fc051182dcda2e12bbaa772bfb2a9202c2dfdf3d81c88a2984ac","tests/freeze.rs":"9b75c9ad6bbdc6b70d530351f444d44d3c84d87f7f2ee246737f517085c8b779","tests/hash.rs":"4622a299a45ce92d3047dd055352abbf99f54b8c368046b7284a5a697fc9665c","tests/integer_convert_to_value.rs":"b431e6a619f7e55e6a01c53e1871da166529f2fa71643a268c25ea890d556b81","tests/integer_traits.rs":"6b1c40531bf5462702bdb159c91f965129e2e25a7253a61c6f36dc919e245223","tests/io.rs":"40cc7d450f834d32b62bcd3420a0657bb3069b67b478480e1dd2aa8eb8c2ca77","tests/ivar.rs":"bac10083f326fec4abfb952e7c2aa6e2ff499d8a8252708cfe6f89eda3d62af3","tests/lazy_id.rs":"f419a2d067b42999655550cb9e28f2774dd5380a2674c55da925dfc4c7042982","tests/make_proc.rs":"f50a6ad3c0677ffb846290aeb1f2c6e202fdebc27109286fdfb2e7b3b870042d","tests/proc_new.rs":"0094b318caf5771cc2308b38b9c8d3d1e836df72b79bb3c77f84dc9f553f8b84","tests/range.rs":"c77f088075b7cd1bdd0541b0384cc23f29d941bf4928b61bb2ab72fe156cb390","tests/return_custom_error.rs":"df037981097ddc50003de4edf0215d120abcbf70ede2a7059cb0a5ddebacf781","tests/return_iter.rs":"cb0fc2b21e884ac9401f238ea1cbb7c0580372ddcccc9688decad5713c88dd68","tests/scan_args.rs":"c45d5ffba6df85d6d06d27df42f3238fe55fe1ea08999238698598d077df05b1","tests/str.rs":"ac18b42cf8d9fb1ffe8a18391869237a90bf1009e9a291bbbf90869fe038881e","tests/string.rs":"679c19177af6b78b76c15bcbfa40cf1649a8e9b1b356a1b3b101bdb48375b188","tests/struct.rs":"8fbf88c58cb9b40defa26d7ef744c3c82b9839f60a4f73fbe7e3e02a36d6b0ee","tests/symbol.rs":"af3a13dedced18fc25cfb957426b9df6ee174efc89b2664d1c8e3855a8837a86","tests/time.rs":"e6bc1c9027fb893528187d74ea834fa166561ce6c16db9635aa1b677a665c06a","tests/try_convert_array.rs":"2bf663f15b841b0bd6ddcc8d9b0cb6ff9d5ccf2243c64e4037cae3a82483d9b0","tests/tuple_to_array.rs":"c2eccb535e5af3ce4e40c2a60ae36b5fdd712424f7834cd7c0ac6de9a6329049","tests/typed_data.rs":"0a3104b3f1de5fd012a47532f78f23b066d425d5d8ed71625d25ea4d170c321c","tests/typed_data_obj.rs":"3310ecfb45f39cbc10a70656c647d6bac39375554365a6ae42e12a7056db601f","tests/typed_data_subclass.rs":"25b2f46f516f2700cbb24049ed52d075e6359defe1495ee4756c1d93f11d831b","tests/typed_data_subclass_from_ruby.rs":"6fb7207a1bd5fe7c087d939ee58c36775b74b616885f497b646ee9cc9bccc22e","tests/yield.rs":"a3008268817e527fb4f0ca177a183472a365aedbf6fca00a9d2921d7ff505de2"},"package":"3b36a5b126bbe97eb0d02d07acfeb327036c6319fd816139a49824a83b7f9012"}
|
|
@@ -13,6 +13,68 @@
|
|
|
13
13
|
|
|
14
14
|
### Security
|
|
15
15
|
|
|
16
|
+
## [0.8.2] - 2025-10-07
|
|
17
|
+
### Fixed
|
|
18
|
+
- Fixed error message when converting Ruby string to a Rust string.
|
|
19
|
+
|
|
20
|
+
## [0.8.1] - 2025-09-06
|
|
21
|
+
### Fixed
|
|
22
|
+
- Fixed error compiling on 32-bit platforms.
|
|
23
|
+
|
|
24
|
+
## [0.8.0] - 2025-08-25
|
|
25
|
+
### Added
|
|
26
|
+
- `Ruby::time_nano_new`, `Ruby::time_timespec_new`, and `Time::timespec`.
|
|
27
|
+
- The `chrono` feature can be enabled to allow automatic conversions
|
|
28
|
+
between `chrono::DateTime<Utc>` and `chrono::DateTime<FixedOffset>` and Ruby
|
|
29
|
+
`Time` objects.
|
|
30
|
+
- `typed_data::Writebarrier::writebarrier` and `writebarrier_unprotect`.
|
|
31
|
+
- Implement `TryConvert` for `NonZero` types.
|
|
32
|
+
- `io` module available with `io` feature, supporting `io_extract_modeenc`,
|
|
33
|
+
`OpenFlags`, `FMode`, and `IoEncoding`.
|
|
34
|
+
- `Ruby::io_extract_modeenc`, a safe wrapper around `rb_io_extract_modeenc`,
|
|
35
|
+
allowing structured extraction of open flags, mode flags, and IO encoding
|
|
36
|
+
metadata.
|
|
37
|
+
- `OpenFlags` struct, which wraps Ruby's `O_` open flags
|
|
38
|
+
(e.g. `O_RDONLY`, `O_CREAT`) in a convenient bitflag-like interface.
|
|
39
|
+
- `FMode` struct, representing `FMODE_` flags used internally by Ruby to
|
|
40
|
+
represent IO modes (`READ`, `WRITE`, `BINARY_MODE`, etc.).
|
|
41
|
+
- `IoEncoding`, a safe Rust struct for temporarily owning and
|
|
42
|
+
inspecting `rb_io_encoding`, including safe accessors for
|
|
43
|
+
internal/external encoding and encoding options.
|
|
44
|
+
- Automatic type conversions to/from `i128`/`u128`.
|
|
45
|
+
- `to_i128`/`to_u128` for `Fixnum`/`Bignum`/`Integer`.
|
|
46
|
+
- `Ruby::integer_from_i128` & `Ruby::integer_from_u128`.
|
|
47
|
+
- `RHash::to_btree_map` and automatic conversion from `Hash` to `BTreeMap`.
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
- Minimum supported Rust version is now 1.65.
|
|
51
|
+
- Conversions between Ruby's `Time` and Rust's `SystemTime` now preserve
|
|
52
|
+
nanosecond precision.
|
|
53
|
+
- 'old-api' feature, which disables deprecation warnings for the old api is no
|
|
54
|
+
longer a default feature.
|
|
55
|
+
- `RString::to_string` will now use a Ruby utf-8 validation api that caches the
|
|
56
|
+
results of the validity check. This will greatly improve performance in the
|
|
57
|
+
case a string is already known to be utf-8, but may slightly reduce
|
|
58
|
+
performance when not known.
|
|
59
|
+
- `RString::to_interned_str` now returns an `RString` rather than an `FString`.
|
|
60
|
+
|
|
61
|
+
### Deprecated
|
|
62
|
+
- `thread_fd_close` as it will be a no-op as of Ruby 3.5
|
|
63
|
+
|
|
64
|
+
### Removed
|
|
65
|
+
- `FString` as it can not safely uphold the promise it was making. Either due
|
|
66
|
+
to Ruby's apis changing or a misinterpretation of old documentation it had
|
|
67
|
+
been designed assuming interned strings (aka fstrings) would not be garbage
|
|
68
|
+
collected, which is not the case.
|
|
69
|
+
- `RString::as_interned_str` as its only purpose was to return an `FString`.
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
- The `fatal` exception raised when a Rust function bound to Ruby panics can no
|
|
73
|
+
longer be caught with `rescue Exception`.
|
|
74
|
+
- Fixed type bounds for `TryConvertOwned` for `(T, ...)` so that `T` must be
|
|
75
|
+
`TryConvertOwned`.
|
|
76
|
+
- Defining functions with an arity of 16
|
|
77
|
+
|
|
16
78
|
## [0.7.1] - 2024-06-30
|
|
17
79
|
|
|
18
80
|
### Fixed
|
|
@@ -479,7 +541,10 @@
|
|
|
479
541
|
- Pre-built bindings for Ruby 2.6 - 3.1 on common platforms, build-time
|
|
480
542
|
generated bindings otherwise.
|
|
481
543
|
|
|
482
|
-
[Unreleased]: https://github.com/matsadler/magnus/compare/0.
|
|
544
|
+
[Unreleased]: https://github.com/matsadler/magnus/compare/0.8.0...HEAD
|
|
545
|
+
[0.8.2]: https://github.com/matsadler/magnus/compare/0.8.1...0.8.2
|
|
546
|
+
[0.8.1]: https://github.com/matsadler/magnus/compare/0.8.0...0.8.1
|
|
547
|
+
[0.8.0]: https://github.com/matsadler/magnus/compare/0.7.1...0.8.0
|
|
483
548
|
[0.7.1]: https://github.com/matsadler/magnus/compare/0.7.0...0.7.1
|
|
484
549
|
[0.7.0]: https://github.com/matsadler/magnus/compare/0.6.4...0.7.0
|
|
485
550
|
[0.6.4]: https://github.com/matsadler/magnus/compare/0.6.3...0.6.4
|