git-aggregate-rs 0.0.6__tar.gz → 0.0.7__tar.gz
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.
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/Cargo.lock +42 -35
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/Cargo.toml +21 -20
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/PKG-INFO +1 -1
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/environments.rs +11 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/cache.rs +18 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/client.rs +10 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/contribute.rs +1 -1
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/http.rs +73 -0
- git_aggregate_rs-0.0.7/crates/odx-forge/src/issues.rs +668 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/lib.rs +5 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/testing.rs +10 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/README.md +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/Cargo.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/README.md +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/src/aggregate.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/src/dirmatch.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/src/lib.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/src/main.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/src/prs.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/tests/aggregate.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/tests/cli.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/tests/prs.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/git-aggregate-rs/tests/snapshots/cli__help_snapshot.snap +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/Cargo.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/README.md +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/aggregation.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/guard.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/lib.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/locking.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/packages.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/pipeline.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/plan.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-aggregate/src/repos_yaml.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/Cargo.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/README.md +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/compat/addons.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/compat/env.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/compat/export.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/compat/import.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/compat/mod.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/compat/ordered.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/compat/repos.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/deps.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/duration.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/edit/doc.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/edit/doc_tests.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/edit/mod.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/edit/spec.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/error.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/lib.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/load.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/lock.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/lock_tests.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/mutes.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/packages.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/schema.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/snapshots/odx_config__lock__tests__canonical_layout.snap +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/user.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/src/uvlock.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/fixtures/full.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/fixtures/real/client-four-groups.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/fixtures/real/hatch-odoo.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/fixtures/real/oca-addon-whool.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/fixtures/real/oca-repo-root.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/fixtures/real/uvault.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/real_fixtures.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-config/tests/schema.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/Cargo.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/README.md +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/clock.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/env.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/exit.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/fake.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/fs.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/lib.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/process.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/redact.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/system.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-core/src/url.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/Cargo.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/README.md +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/admin.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/ci.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/listing.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/pulls.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/secrets.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-forge/src/url.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/Cargo.toml +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/README.md +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/backend.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/cache.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/clones.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/fetch.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/fetch_tests.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/lib.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/lock.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/merge.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/merge_tests.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/refs.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/run.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/run_tests.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/src/vault.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/tests/daemon.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/crates/odx-git/tests/mergiraf.rs +0 -0
- {git_aggregate_rs-0.0.6 → git_aggregate_rs-0.0.7}/pyproject.toml +0 -0
|
@@ -727,7 +727,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
727
727
|
checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
|
|
728
728
|
dependencies = [
|
|
729
729
|
"lazy_static",
|
|
730
|
-
"windows-sys 0.
|
|
730
|
+
"windows-sys 0.52.0",
|
|
731
731
|
]
|
|
732
732
|
|
|
733
733
|
[[package]]
|
|
@@ -988,9 +988,9 @@ dependencies = [
|
|
|
988
988
|
|
|
989
989
|
[[package]]
|
|
990
990
|
name = "ctutils"
|
|
991
|
-
version = "0.4.
|
|
991
|
+
version = "0.4.5"
|
|
992
992
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
993
|
-
checksum = "
|
|
993
|
+
checksum = "38d28fb6aa7dd680b3ffd1a3e64e115c177bdba63c0ae7f9cd48129ff05c4fa0"
|
|
994
994
|
dependencies = [
|
|
995
995
|
"cmov",
|
|
996
996
|
]
|
|
@@ -1541,7 +1541,7 @@ dependencies = [
|
|
|
1541
1541
|
|
|
1542
1542
|
[[package]]
|
|
1543
1543
|
name = "git-aggregate-rs"
|
|
1544
|
-
version = "0.0.
|
|
1544
|
+
version = "0.0.7"
|
|
1545
1545
|
dependencies = [
|
|
1546
1546
|
"assert_cmd",
|
|
1547
1547
|
"clap",
|
|
@@ -1581,9 +1581,9 @@ dependencies = [
|
|
|
1581
1581
|
|
|
1582
1582
|
[[package]]
|
|
1583
1583
|
name = "granit-parser"
|
|
1584
|
-
version = "
|
|
1584
|
+
version = "2.0.0"
|
|
1585
1585
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1586
|
-
checksum = "
|
|
1586
|
+
checksum = "da55feca5d1625466bae068f9fd4b87892caeae70c3fe671ddb0f50d41aebf37"
|
|
1587
1587
|
dependencies = [
|
|
1588
1588
|
"arraydeque",
|
|
1589
1589
|
"smallvec",
|
|
@@ -2624,9 +2624,9 @@ dependencies = [
|
|
|
2624
2624
|
|
|
2625
2625
|
[[package]]
|
|
2626
2626
|
name = "odoo-lint"
|
|
2627
|
-
version = "0.1.0-alpha.
|
|
2627
|
+
version = "0.1.0-alpha.15"
|
|
2628
2628
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2629
|
-
checksum = "
|
|
2629
|
+
checksum = "aa5adca538c23ff9fb17a8c4c0d865dba562ff8fbe10960002f0eb377e753fd3"
|
|
2630
2630
|
dependencies = [
|
|
2631
2631
|
"clap",
|
|
2632
2632
|
"comrak",
|
|
@@ -2642,6 +2642,7 @@ dependencies = [
|
|
|
2642
2642
|
"oxc_ast_visit",
|
|
2643
2643
|
"oxc_parser",
|
|
2644
2644
|
"oxc_span",
|
|
2645
|
+
"oxc_syntax",
|
|
2645
2646
|
"rayon",
|
|
2646
2647
|
"regex",
|
|
2647
2648
|
"roxmltree",
|
|
@@ -2651,6 +2652,7 @@ dependencies = [
|
|
|
2651
2652
|
"ruff_text_size",
|
|
2652
2653
|
"serde",
|
|
2653
2654
|
"serde_json",
|
|
2655
|
+
"sha2 0.10.9",
|
|
2654
2656
|
"similar",
|
|
2655
2657
|
"toml 0.8.23",
|
|
2656
2658
|
"walkdir",
|
|
@@ -2658,7 +2660,7 @@ dependencies = [
|
|
|
2658
2660
|
|
|
2659
2661
|
[[package]]
|
|
2660
2662
|
name = "odx-aggregate"
|
|
2661
|
-
version = "0.0.
|
|
2663
|
+
version = "0.0.7"
|
|
2662
2664
|
dependencies = [
|
|
2663
2665
|
"odx-config",
|
|
2664
2666
|
"odx-core",
|
|
@@ -2671,7 +2673,7 @@ dependencies = [
|
|
|
2671
2673
|
|
|
2672
2674
|
[[package]]
|
|
2673
2675
|
name = "odx-analyze"
|
|
2674
|
-
version = "0.0.
|
|
2676
|
+
version = "0.0.7"
|
|
2675
2677
|
dependencies = [
|
|
2676
2678
|
"serde",
|
|
2677
2679
|
"tempfile",
|
|
@@ -2680,11 +2682,15 @@ dependencies = [
|
|
|
2680
2682
|
|
|
2681
2683
|
[[package]]
|
|
2682
2684
|
name = "odx-bot"
|
|
2683
|
-
version = "0.0.
|
|
2685
|
+
version = "0.0.7"
|
|
2686
|
+
dependencies = [
|
|
2687
|
+
"odx-dashboard",
|
|
2688
|
+
"odx-forge",
|
|
2689
|
+
]
|
|
2684
2690
|
|
|
2685
2691
|
[[package]]
|
|
2686
2692
|
name = "odx-cli"
|
|
2687
|
-
version = "0.0.
|
|
2693
|
+
version = "0.0.7"
|
|
2688
2694
|
dependencies = [
|
|
2689
2695
|
"assert_cmd",
|
|
2690
2696
|
"clap",
|
|
@@ -2693,6 +2699,7 @@ dependencies = [
|
|
|
2693
2699
|
"insta",
|
|
2694
2700
|
"odx-aggregate",
|
|
2695
2701
|
"odx-analyze",
|
|
2702
|
+
"odx-bot",
|
|
2696
2703
|
"odx-config",
|
|
2697
2704
|
"odx-core",
|
|
2698
2705
|
"odx-dashboard",
|
|
@@ -2710,7 +2717,7 @@ dependencies = [
|
|
|
2710
2717
|
"ratatui",
|
|
2711
2718
|
"serde",
|
|
2712
2719
|
"serde_json",
|
|
2713
|
-
"sha2 0.
|
|
2720
|
+
"sha2 0.11.1",
|
|
2714
2721
|
"tempfile",
|
|
2715
2722
|
"toml_edit 0.25.17+spec-1.1.0",
|
|
2716
2723
|
"zip",
|
|
@@ -2718,7 +2725,7 @@ dependencies = [
|
|
|
2718
2725
|
|
|
2719
2726
|
[[package]]
|
|
2720
2727
|
name = "odx-config"
|
|
2721
|
-
version = "0.0.
|
|
2728
|
+
version = "0.0.7"
|
|
2722
2729
|
dependencies = [
|
|
2723
2730
|
"insta",
|
|
2724
2731
|
"odx-core",
|
|
@@ -2733,11 +2740,11 @@ dependencies = [
|
|
|
2733
2740
|
|
|
2734
2741
|
[[package]]
|
|
2735
2742
|
name = "odx-core"
|
|
2736
|
-
version = "0.0.
|
|
2743
|
+
version = "0.0.7"
|
|
2737
2744
|
|
|
2738
2745
|
[[package]]
|
|
2739
2746
|
name = "odx-dashboard"
|
|
2740
|
-
version = "0.0.
|
|
2747
|
+
version = "0.0.7"
|
|
2741
2748
|
dependencies = [
|
|
2742
2749
|
"ratatui",
|
|
2743
2750
|
"serde",
|
|
@@ -2746,7 +2753,7 @@ dependencies = [
|
|
|
2746
2753
|
|
|
2747
2754
|
[[package]]
|
|
2748
2755
|
name = "odx-dev"
|
|
2749
|
-
version = "0.0.
|
|
2756
|
+
version = "0.0.7"
|
|
2750
2757
|
dependencies = [
|
|
2751
2758
|
"odx-config",
|
|
2752
2759
|
"serde",
|
|
@@ -2756,7 +2763,7 @@ dependencies = [
|
|
|
2756
2763
|
|
|
2757
2764
|
[[package]]
|
|
2758
2765
|
name = "odx-env"
|
|
2759
|
-
version = "0.0.
|
|
2766
|
+
version = "0.0.7"
|
|
2760
2767
|
dependencies = [
|
|
2761
2768
|
"odx-config",
|
|
2762
2769
|
"pep440_rs",
|
|
@@ -2765,7 +2772,7 @@ dependencies = [
|
|
|
2765
2772
|
|
|
2766
2773
|
[[package]]
|
|
2767
2774
|
name = "odx-forge"
|
|
2768
|
-
version = "0.0.
|
|
2775
|
+
version = "0.0.7"
|
|
2769
2776
|
dependencies = [
|
|
2770
2777
|
"apple-native-keyring-store",
|
|
2771
2778
|
"keyring-core",
|
|
@@ -2781,7 +2788,7 @@ dependencies = [
|
|
|
2781
2788
|
|
|
2782
2789
|
[[package]]
|
|
2783
2790
|
name = "odx-git"
|
|
2784
|
-
version = "0.0.
|
|
2791
|
+
version = "0.0.7"
|
|
2785
2792
|
dependencies = [
|
|
2786
2793
|
"futures-util",
|
|
2787
2794
|
"odx-core",
|
|
@@ -2793,7 +2800,7 @@ dependencies = [
|
|
|
2793
2800
|
|
|
2794
2801
|
[[package]]
|
|
2795
2802
|
name = "odx-index"
|
|
2796
|
-
version = "0.0.
|
|
2803
|
+
version = "0.0.7"
|
|
2797
2804
|
dependencies = [
|
|
2798
2805
|
"odx-analyze",
|
|
2799
2806
|
"odx-core",
|
|
@@ -2806,7 +2813,7 @@ dependencies = [
|
|
|
2806
2813
|
|
|
2807
2814
|
[[package]]
|
|
2808
2815
|
name = "odx-lint"
|
|
2809
|
-
version = "0.0.
|
|
2816
|
+
version = "0.0.7"
|
|
2810
2817
|
dependencies = [
|
|
2811
2818
|
"odoo-lint",
|
|
2812
2819
|
"tempfile",
|
|
@@ -2814,14 +2821,14 @@ dependencies = [
|
|
|
2814
2821
|
|
|
2815
2822
|
[[package]]
|
|
2816
2823
|
name = "odx-platform"
|
|
2817
|
-
version = "0.0.
|
|
2824
|
+
version = "0.0.7"
|
|
2818
2825
|
dependencies = [
|
|
2819
2826
|
"odx-analyze",
|
|
2820
2827
|
"odx-config",
|
|
2821
2828
|
"pep440_rs",
|
|
2822
2829
|
"serde",
|
|
2823
2830
|
"serde_json",
|
|
2824
|
-
"sha2 0.
|
|
2831
|
+
"sha2 0.11.1",
|
|
2825
2832
|
"tempfile",
|
|
2826
2833
|
"toml 1.1.8+spec-1.1.0",
|
|
2827
2834
|
"zip",
|
|
@@ -2829,7 +2836,7 @@ dependencies = [
|
|
|
2829
2836
|
|
|
2830
2837
|
[[package]]
|
|
2831
2838
|
name = "odx-port"
|
|
2832
|
-
version = "0.0.
|
|
2839
|
+
version = "0.0.7"
|
|
2833
2840
|
dependencies = [
|
|
2834
2841
|
"odx-core",
|
|
2835
2842
|
"regex",
|
|
@@ -2840,7 +2847,7 @@ dependencies = [
|
|
|
2840
2847
|
|
|
2841
2848
|
[[package]]
|
|
2842
2849
|
name = "odx-sync"
|
|
2843
|
-
version = "0.0.
|
|
2850
|
+
version = "0.0.7"
|
|
2844
2851
|
dependencies = [
|
|
2845
2852
|
"serde",
|
|
2846
2853
|
"serde_json",
|
|
@@ -2850,7 +2857,7 @@ dependencies = [
|
|
|
2850
2857
|
|
|
2851
2858
|
[[package]]
|
|
2852
2859
|
name = "odx-vendor"
|
|
2853
|
-
version = "0.0.
|
|
2860
|
+
version = "0.0.7"
|
|
2854
2861
|
dependencies = [
|
|
2855
2862
|
"odx-analyze",
|
|
2856
2863
|
"odx-config",
|
|
@@ -2858,7 +2865,7 @@ dependencies = [
|
|
|
2858
2865
|
"odx-platform",
|
|
2859
2866
|
"serde",
|
|
2860
2867
|
"serde_json",
|
|
2861
|
-
"sha2 0.
|
|
2868
|
+
"sha2 0.11.1",
|
|
2862
2869
|
"tempfile",
|
|
2863
2870
|
"thiserror 2.0.21",
|
|
2864
2871
|
"toml 1.1.8+spec-1.1.0",
|
|
@@ -2867,7 +2874,7 @@ dependencies = [
|
|
|
2867
2874
|
|
|
2868
2875
|
[[package]]
|
|
2869
2876
|
name = "odx-verdicts"
|
|
2870
|
-
version = "0.0.
|
|
2877
|
+
version = "0.0.7"
|
|
2871
2878
|
dependencies = [
|
|
2872
2879
|
"serde",
|
|
2873
2880
|
"tempfile",
|
|
@@ -4155,9 +4162,9 @@ dependencies = [
|
|
|
4155
4162
|
|
|
4156
4163
|
[[package]]
|
|
4157
4164
|
name = "serde-saphyr"
|
|
4158
|
-
version = "
|
|
4165
|
+
version = "2.0.0"
|
|
4159
4166
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4160
|
-
checksum = "
|
|
4167
|
+
checksum = "a253edfdea34032da21af84e16fcc94f4c7a6ba237f9f3bc2dbf43cea8535c44"
|
|
4161
4168
|
dependencies = [
|
|
4162
4169
|
"annotate-snippets",
|
|
4163
4170
|
"encoding_rs_io",
|
|
@@ -4753,9 +4760,9 @@ dependencies = [
|
|
|
4753
4760
|
|
|
4754
4761
|
[[package]]
|
|
4755
4762
|
name = "tokio"
|
|
4756
|
-
version = "1.
|
|
4763
|
+
version = "1.54.1"
|
|
4757
4764
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4758
|
-
checksum = "
|
|
4765
|
+
checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3"
|
|
4759
4766
|
dependencies = [
|
|
4760
4767
|
"bytes",
|
|
4761
4768
|
"libc",
|
|
@@ -5843,9 +5850,9 @@ dependencies = [
|
|
|
5843
5850
|
|
|
5844
5851
|
[[package]]
|
|
5845
5852
|
name = "zip"
|
|
5846
|
-
version = "9.0.
|
|
5853
|
+
version = "9.0.5"
|
|
5847
5854
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5848
|
-
checksum = "
|
|
5855
|
+
checksum = "6e04976da629d3b04204ba8105b396a193af8ad2583b2c79bfb3ab8af580a11e"
|
|
5849
5856
|
dependencies = [
|
|
5850
5857
|
"crc32fast",
|
|
5851
5858
|
"flate2",
|
|
@@ -3,7 +3,7 @@ resolver = "3"
|
|
|
3
3
|
members = ["crates/*"]
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.0.
|
|
6
|
+
version = "0.0.7"
|
|
7
7
|
edition = "2024"
|
|
8
8
|
rust-version = "1.97"
|
|
9
9
|
license = "MIT"
|
|
@@ -16,23 +16,24 @@ categories = ["command-line-utilities", "development-tools"]
|
|
|
16
16
|
|
|
17
17
|
[workspace.dependencies]
|
|
18
18
|
# Internal crates.
|
|
19
|
-
odx-core = { path = "crates/odx-core", version = "0.0.
|
|
20
|
-
git-aggregate-rs = { path = "crates/git-aggregate-rs", version = "0.0.
|
|
21
|
-
odx-config = { path = "crates/odx-config", version = "0.0.
|
|
22
|
-
odx-git = { path = "crates/odx-git", version = "0.0.
|
|
23
|
-
odx-aggregate = { path = "crates/odx-aggregate", version = "0.0.
|
|
24
|
-
odx-forge = { path = "crates/odx-forge", version = "0.0.
|
|
25
|
-
odx-analyze = { path = "crates/odx-analyze", version = "0.0.
|
|
26
|
-
odx-dashboard = { path = "crates/odx-dashboard", version = "0.0.
|
|
27
|
-
odx-index = { path = "crates/odx-index", version = "0.0.
|
|
28
|
-
odx-port = { path = "crates/odx-port", version = "0.0.
|
|
29
|
-
odx-lint = { path = "crates/odx-lint", version = "0.0.
|
|
30
|
-
odx-verdicts = { path = "crates/odx-verdicts", version = "0.0.
|
|
31
|
-
odx-platform = { path = "crates/odx-platform", version = "0.0.
|
|
32
|
-
odx-vendor = { path = "crates/odx-vendor", version = "0.0.
|
|
33
|
-
odx-dev = { path = "crates/odx-dev", version = "0.0.
|
|
34
|
-
odx-sync = { path = "crates/odx-sync", version = "0.0.
|
|
35
|
-
odx-env = { path = "crates/odx-env", version = "0.0.
|
|
19
|
+
odx-core = { path = "crates/odx-core", version = "0.0.7" }
|
|
20
|
+
git-aggregate-rs = { path = "crates/git-aggregate-rs", version = "0.0.7" }
|
|
21
|
+
odx-config = { path = "crates/odx-config", version = "0.0.7" }
|
|
22
|
+
odx-git = { path = "crates/odx-git", version = "0.0.7" }
|
|
23
|
+
odx-aggregate = { path = "crates/odx-aggregate", version = "0.0.7" }
|
|
24
|
+
odx-forge = { path = "crates/odx-forge", version = "0.0.7" }
|
|
25
|
+
odx-analyze = { path = "crates/odx-analyze", version = "0.0.7" }
|
|
26
|
+
odx-dashboard = { path = "crates/odx-dashboard", version = "0.0.7" }
|
|
27
|
+
odx-index = { path = "crates/odx-index", version = "0.0.7" }
|
|
28
|
+
odx-port = { path = "crates/odx-port", version = "0.0.7" }
|
|
29
|
+
odx-lint = { path = "crates/odx-lint", version = "0.0.7" }
|
|
30
|
+
odx-verdicts = { path = "crates/odx-verdicts", version = "0.0.7" }
|
|
31
|
+
odx-platform = { path = "crates/odx-platform", version = "0.0.7" }
|
|
32
|
+
odx-vendor = { path = "crates/odx-vendor", version = "0.0.7" }
|
|
33
|
+
odx-dev = { path = "crates/odx-dev", version = "0.0.7" }
|
|
34
|
+
odx-sync = { path = "crates/odx-sync", version = "0.0.7" }
|
|
35
|
+
odx-env = { path = "crates/odx-env", version = "0.0.7" }
|
|
36
|
+
odx-bot = { path = "crates/odx-bot", version = "0.0.7" }
|
|
36
37
|
|
|
37
38
|
# External crates. Versions are pinned in Cargo.lock.
|
|
38
39
|
clap = { version = "4.5", features = ["derive"] }
|
|
@@ -44,7 +45,7 @@ serde = { version = "1", features = ["derive"] }
|
|
|
44
45
|
serde_json = "1"
|
|
45
46
|
regex = "1"
|
|
46
47
|
ratatui = "0.30"
|
|
47
|
-
serde-saphyr = { version = "
|
|
48
|
+
serde-saphyr = { version = "2", default-features = false, features = ["deserialize"] }
|
|
48
49
|
thiserror = "2"
|
|
49
50
|
tokio = { version = "1.47", features = ["rt", "rt-multi-thread", "sync", "macros", "signal", "time"] }
|
|
50
51
|
tokio-util = "0.7"
|
|
@@ -52,7 +53,7 @@ toml = "1"
|
|
|
52
53
|
toml_edit = "0.25"
|
|
53
54
|
tokei = { version = "15", default-features = false }
|
|
54
55
|
pep440_rs = "0.7"
|
|
55
|
-
sha2 = "0.
|
|
56
|
+
sha2 = "0.11"
|
|
56
57
|
keyring-core = "1"
|
|
57
58
|
zip = { version = "9", default-features = false, features = ["deflate-flate2-zlib-rs"] }
|
|
58
59
|
|
|
@@ -319,6 +319,16 @@ impl Model {
|
|
|
319
319
|
self.promotion.iter().any(|[a, b]| a == from && b == to)
|
|
320
320
|
}
|
|
321
321
|
|
|
322
|
+
/// The environments `from` may be promoted into, in configuration order.
|
|
323
|
+
#[must_use]
|
|
324
|
+
pub fn targets(&self, from: &str) -> Vec<&str> {
|
|
325
|
+
self.promotion
|
|
326
|
+
.iter()
|
|
327
|
+
.filter(|[a, _]| a == from)
|
|
328
|
+
.map(|[_, b]| b.as_str())
|
|
329
|
+
.collect()
|
|
330
|
+
}
|
|
331
|
+
|
|
322
332
|
/// The environment a promotion into `to` comes from when `--from` is
|
|
323
333
|
/// not given: the one allowed source that is not disposable, else the
|
|
324
334
|
/// one allowed source.
|
|
@@ -469,6 +479,7 @@ mod tests {
|
|
|
469
479
|
assert_eq!(main.get("test").unwrap().branch, "main");
|
|
470
480
|
assert!(main.allows("test", "prod") && main.allows("prod", "test"));
|
|
471
481
|
assert!(!main.allows("test", "test"));
|
|
482
|
+
assert_eq!(main.targets("test"), ["prod"]);
|
|
472
483
|
let sh = model("[tool.odx.environments]\npreset = \"odoo-sh\"\n")
|
|
473
484
|
.unwrap()
|
|
474
485
|
.unwrap();
|
|
@@ -87,6 +87,16 @@ impl<H: Http> Http for CachedHttp<H> {
|
|
|
87
87
|
) -> Result<HttpResponse, ForgeError> {
|
|
88
88
|
self.inner.put(url, headers, body)
|
|
89
89
|
}
|
|
90
|
+
|
|
91
|
+
/// Not cached either.
|
|
92
|
+
fn patch(
|
|
93
|
+
&self,
|
|
94
|
+
url: &str,
|
|
95
|
+
headers: &[(&str, String)],
|
|
96
|
+
body: &serde_json::Value,
|
|
97
|
+
) -> Result<HttpResponse, ForgeError> {
|
|
98
|
+
self.inner.patch(url, headers, body)
|
|
99
|
+
}
|
|
90
100
|
}
|
|
91
101
|
|
|
92
102
|
#[cfg(test)]
|
|
@@ -161,6 +171,14 @@ mod tests {
|
|
|
161
171
|
.status,
|
|
162
172
|
200
|
|
163
173
|
);
|
|
174
|
+
let patching = CachedHttp::new(Scripted::new(vec![Ok(reply(200, ""))]), tmp.path());
|
|
175
|
+
assert_eq!(
|
|
176
|
+
patching
|
|
177
|
+
.patch("https://x/a", &[], &serde_json::json!({}))
|
|
178
|
+
.unwrap()
|
|
179
|
+
.status,
|
|
180
|
+
200
|
|
181
|
+
);
|
|
164
182
|
let failing = CachedHttp::new(
|
|
165
183
|
Scripted::new(vec![Err(ForgeError::Http("down".into()))]),
|
|
166
184
|
tmp.path(),
|
|
@@ -216,6 +216,16 @@ impl<'a> ForgeClient<'a> {
|
|
|
216
216
|
self.http.put(url, &self.headers(repo, kind), body)
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
+
pub(crate) fn patch(
|
|
220
|
+
&self,
|
|
221
|
+
url: &str,
|
|
222
|
+
repo: &RepoUrl,
|
|
223
|
+
kind: ForgeKind,
|
|
224
|
+
body: &Value,
|
|
225
|
+
) -> Result<HttpResponse, ForgeError> {
|
|
226
|
+
self.http.patch(url, &self.headers(repo, kind), body)
|
|
227
|
+
}
|
|
228
|
+
|
|
219
229
|
fn get(&self, url: &str, repo: &RepoUrl, kind: ForgeKind) -> Result<HttpResponse, ForgeError> {
|
|
220
230
|
let headers = self.headers(repo, kind);
|
|
221
231
|
for _ in 0..ATTEMPTS {
|
|
@@ -33,7 +33,7 @@ pub struct Proposal<'a> {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/// The JSON of a `200` or `201` answer.
|
|
36
|
-
fn created(response: &HttpResponse, repo: &RepoUrl) -> Result<Value, ForgeError> {
|
|
36
|
+
pub(crate) fn created(response: &HttpResponse, repo: &RepoUrl) -> Result<Value, ForgeError> {
|
|
37
37
|
if !matches!(response.status, 200..=202) {
|
|
38
38
|
return Err(ForgeError::Status {
|
|
39
39
|
host: repo.host.clone(),
|
|
@@ -57,6 +57,25 @@ pub trait Http: fmt::Debug + Send + Sync {
|
|
|
57
57
|
headers: &[(&str, String)],
|
|
58
58
|
body: &serde_json::Value,
|
|
59
59
|
) -> Result<HttpResponse, ForgeError>;
|
|
60
|
+
|
|
61
|
+
/// PATCH `body` as JSON to `url` with `headers`. Clients that only
|
|
62
|
+
/// read, or only create, need not answer it.
|
|
63
|
+
///
|
|
64
|
+
/// # Errors
|
|
65
|
+
///
|
|
66
|
+
/// [`ForgeError::Http`] when no response arrives (DNS, TLS, connection),
|
|
67
|
+
/// or when the client does not send PATCH requests.
|
|
68
|
+
fn patch(
|
|
69
|
+
&self,
|
|
70
|
+
url: &str,
|
|
71
|
+
headers: &[(&str, String)],
|
|
72
|
+
body: &serde_json::Value,
|
|
73
|
+
) -> Result<HttpResponse, ForgeError> {
|
|
74
|
+
let _ = (url, headers, body);
|
|
75
|
+
Err(ForgeError::Http(
|
|
76
|
+
"this client does not send PATCH requests".to_owned(),
|
|
77
|
+
))
|
|
78
|
+
}
|
|
60
79
|
}
|
|
61
80
|
|
|
62
81
|
/// [`Http`] over `reqwest` with rustls, verifying certificates against the
|
|
@@ -146,6 +165,15 @@ impl Http for ReqwestHttp {
|
|
|
146
165
|
) -> Result<HttpResponse, ForgeError> {
|
|
147
166
|
Self::execute(self.client.put(url).json(body), headers)
|
|
148
167
|
}
|
|
168
|
+
|
|
169
|
+
fn patch(
|
|
170
|
+
&self,
|
|
171
|
+
url: &str,
|
|
172
|
+
headers: &[(&str, String)],
|
|
173
|
+
body: &serde_json::Value,
|
|
174
|
+
) -> Result<HttpResponse, ForgeError> {
|
|
175
|
+
Self::execute(self.client.patch(url).json(body), headers)
|
|
176
|
+
}
|
|
149
177
|
}
|
|
150
178
|
|
|
151
179
|
#[cfg(test)]
|
|
@@ -189,6 +217,51 @@ mod tests {
|
|
|
189
217
|
assert!(request.contains("user-agent: odx/"), "{request}");
|
|
190
218
|
}
|
|
191
219
|
|
|
220
|
+
#[test]
|
|
221
|
+
fn patches() {
|
|
222
|
+
/// A client that only reads.
|
|
223
|
+
#[derive(Debug)]
|
|
224
|
+
struct Reader;
|
|
225
|
+
impl Http for Reader {
|
|
226
|
+
fn get(&self, _: &str, _: &[(&str, String)]) -> Result<HttpResponse, ForgeError> {
|
|
227
|
+
Ok(HttpResponse::default())
|
|
228
|
+
}
|
|
229
|
+
fn post(
|
|
230
|
+
&self,
|
|
231
|
+
_: &str,
|
|
232
|
+
_: &[(&str, String)],
|
|
233
|
+
_: &serde_json::Value,
|
|
234
|
+
) -> Result<HttpResponse, ForgeError> {
|
|
235
|
+
Ok(HttpResponse::default())
|
|
236
|
+
}
|
|
237
|
+
fn put(
|
|
238
|
+
&self,
|
|
239
|
+
_: &str,
|
|
240
|
+
_: &[(&str, String)],
|
|
241
|
+
_: &serde_json::Value,
|
|
242
|
+
) -> Result<HttpResponse, ForgeError> {
|
|
243
|
+
Ok(HttpResponse::default())
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
let (url, server) = serve_once(b"HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\n{}");
|
|
247
|
+
let http = ReqwestHttp::new().unwrap();
|
|
248
|
+
let response = http.patch(&url, &[], &serde_json::json!({"a": 1})).unwrap();
|
|
249
|
+
assert_eq!(response.status, 200);
|
|
250
|
+
let request = server.join().unwrap();
|
|
251
|
+
assert!(request.starts_with("PATCH /repos/a/b "), "{request}");
|
|
252
|
+
assert!(request.ends_with(r#"{"a":1}"#), "{request}");
|
|
253
|
+
|
|
254
|
+
assert!(Reader.get("u", &[]).is_ok());
|
|
255
|
+
assert!(Reader.post("u", &[], &serde_json::json!({})).is_ok());
|
|
256
|
+
assert!(Reader.put("u", &[], &serde_json::json!({})).is_ok());
|
|
257
|
+
assert_eq!(
|
|
258
|
+
Reader.patch("u", &[], &serde_json::json!({})),
|
|
259
|
+
Err(ForgeError::Http(
|
|
260
|
+
"this client does not send PATCH requests".to_owned()
|
|
261
|
+
))
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
|
|
192
265
|
#[test]
|
|
193
266
|
fn connection_and_body_failures() {
|
|
194
267
|
let http = ReqwestHttp::new().unwrap();
|