[INFO] cloning repository https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMasahiro-Obuchi%2Fgitbucket-mcp-server-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMasahiro-Obuchi%2Fgitbucket-mcp-server-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 743808f385333eb8b03848865b04c350d1af6088 [INFO] testing Masahiro-Obuchi/gitbucket-mcp-server-rs against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMasahiro-Obuchi%2Fgitbucket-mcp-server-rs" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs [INFO] finished tweaking git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs [INFO] tweaked toml for git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 08057f99650afb275320329df3492e5b957c7ce0a1027e3dc658bca140009434 [INFO] running `Command { std: "docker" "start" "-a" "08057f99650afb275320329df3492e5b957c7ce0a1027e3dc658bca140009434", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "08057f99650afb275320329df3492e5b957c7ce0a1027e3dc658bca140009434", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "08057f99650afb275320329df3492e5b957c7ce0a1027e3dc658bca140009434", kill_on_drop: false }` [INFO] [stdout] 08057f99650afb275320329df3492e5b957c7ce0a1027e3dc658bca140009434 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0ca91c10d2d1ffeb151091d85234d6da64cffb007c2bd86ada9409c736400af9 [INFO] running `Command { std: "docker" "start" "-a" "0ca91c10d2d1ffeb151091d85234d6da64cffb007c2bd86ada9409c736400af9", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling psl-types v2.0.11 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling iri-string v0.7.11 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling rmcp v1.3.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling pastey v0.2.1 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling rmcp-macros v1.3.0 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling publicsuffix v2.3.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling cookie_store v0.22.1 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling gitbucket-mcp-server v0.2.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s [INFO] running `Command { std: "docker" "inspect" "0ca91c10d2d1ffeb151091d85234d6da64cffb007c2bd86ada9409c736400af9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ca91c10d2d1ffeb151091d85234d6da64cffb007c2bd86ada9409c736400af9", kill_on_drop: false }` [INFO] [stdout] 0ca91c10d2d1ffeb151091d85234d6da64cffb007c2bd86ada9409c736400af9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5097b89ba3fd75bbd9eb960a8d9f05b7acf7aea0e8b4178b7b461e5343f6cf24 [INFO] running `Command { std: "docker" "start" "-a" "5097b89ba3fd75bbd9eb960a8d9f05b7acf7aea0e8b4178b7b461e5343f6cf24", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling rmcp v1.3.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling serial_test v3.4.0 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling gitbucket-mcp-server v0.2.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 01s [INFO] running `Command { std: "docker" "inspect" "5097b89ba3fd75bbd9eb960a8d9f05b7acf7aea0e8b4178b7b461e5343f6cf24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5097b89ba3fd75bbd9eb960a8d9f05b7acf7aea0e8b4178b7b461e5343f6cf24", kill_on_drop: false }` [INFO] [stdout] 5097b89ba3fd75bbd9eb960a8d9f05b7acf7aea0e8b4178b7b461e5343f6cf24 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 31784418e4b1b6eae11c2081bf63f5c299c5761e66dc18a7ba9890f51e85ad0d [INFO] running `Command { std: "docker" "start" "-a" "31784418e4b1b6eae11c2081bf63f5c299c5761e66dc18a7ba9890f51e85ad0d", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gitbucket_mcp_server-b6334ff15aa341dd) [INFO] [stdout] [INFO] [stdout] running 120 tests [INFO] [stdout] test api::client::tests::test_normalize_empty_fails ... ok [INFO] [stdout] test api::client::tests::test_normalize_whitespace_only_fails ... ok [INFO] [stdout] test api::client::tests::test_normalize_trailing_slash ... ok [INFO] [stdout] test api::client::tests::test_normalize_simple_hostname ... ok [INFO] [stdout] test api::client::tests::test_normalize_with_http ... ok [INFO] [stdout] test api::client::tests::test_normalize_already_has_api_v3 ... ok [INFO] [stdout] test api::client::tests::test_new_client_with_partial_web_auth_fails ... ok [INFO] [stdout] test api::client::tests::test_normalize_with_https ... ok [INFO] [stdout] test api::client::tests::test_normalize_with_path_prefix ... ok [INFO] [stdout] test api::client::tests::test_parse_success_body_accepts_wrapped_json_string ... ok [INFO] [stdout] test api::client::tests::test_parse_success_body_maps_wrapped_404_to_api_error ... ok [INFO] [stdout] test api::client::tests::test_parse_success_body_accepts_status_body_wrapper ... ok [INFO] [stdout] test api::web::tests::test_label_id_from_page_does_not_match_label_prefix ... ok [INFO] [stdout] test api::web::tests::test_label_id_from_page_finds_plain_label_name ... ok [INFO] [stdout] test api::client::tests::test_parse_success_body_maps_wrapped_error_message_to_api_error ... ok [INFO] [stdout] test api::web::tests::test_normalize_web_base_url ... ok [INFO] [stdout] test api::web::tests::test_label_id_from_page_finds_encoded_label_name ... ok [INFO] [stdout] test config::tests::test_config_dir_from_env ... ok [INFO] [stdout] test config::tests::test_from_env_missing_token ... ok [INFO] [stdout] test config::tests::test_from_env_missing_url ... ok [INFO] [stdout] test config::tests::test_from_env_empty_url ... ok [INFO] [stdout] test config::tests::test_config_file_deserialize ... ok [INFO] [stdout] test config::tests::test_from_env_empty_token ... ok [INFO] [stdout] test config::tests::test_config_file_deserialize_empty ... ok [INFO] [stdout] test config::tests::test_config_dir_default ... ok [INFO] [stdout] test config::tests::test_config_file_serialize ... ok [INFO] [stdout] test config::tests::test_config_file_load_missing_returns_default ... ok [INFO] [stdout] test config::tests::test_config_file_permissions ... ok [INFO] [stdout] test config::tests::test_load_invalid_toml_from_config_dir_returns_parse_error ... ok [INFO] [stdout] test error::tests::test_api_error_display ... ok [INFO] [stdout] test error::tests::test_json_error_from ... ok [INFO] [stdout] test error::tests::test_other_error_display ... ok [INFO] [stdout] test error::tests::test_config_error_display ... ok [INFO] [stdout] test models::comment::tests::test_deserialize_comment ... ok [INFO] [stdout] test config::tests::test_load_with_partial_web_credentials_fails ... ok [INFO] [stdout] test models::issue::tests::test_deserialize_issue ... ok [INFO] [stdout] test models::comment::tests::test_serialize_create_comment ... ok [INFO] [stdout] test config::tests::test_load_no_config_at_all ... ok [INFO] [stdout] test models::issue::tests::test_serialize_update_issue ... ok [INFO] [stdout] test config::tests::test_load_with_file_invalid_toml_returns_parse_error ... ok [INFO] [stdout] test models::issue::tests::test_deserialize_issue_minimal ... ok [INFO] [stdout] test models::issue::tests::test_serialize_create_issue ... ok [INFO] [stdout] test models::label::tests::test_deserialize_label_minimal ... ok [INFO] [stdout] test models::label::tests::test_serialize_create_label ... ok [INFO] [stdout] test models::label::tests::test_serialize_update_label_skips_missing_fields ... ok [INFO] [stdout] test models::milestone::tests::test_deserialize_milestone ... ok [INFO] [stdout] test models::pull_request::tests::test_deserialize_pull_request ... ok [INFO] [stdout] test models::milestone::tests::test_serialize_create_milestone ... ok [INFO] [stdout] test models::pull_request::tests::test_serialize_create_pull_request ... ok [INFO] [stdout] test models::milestone::tests::test_serialize_update_milestone ... ok [INFO] [stdout] test models::pull_request::tests::test_deserialize_merge_result ... ok [INFO] [stdout] test config::tests::test_load_partial_env_partial_file ... ok [INFO] [stdout] test config::tests::test_load_from_toml_file ... ok [INFO] [stdout] test config::tests::test_from_env_with_optional_web_credentials ... ok [INFO] [stdout] test config::tests::test_load_with_file_password_in_toml_fails ... ok [INFO] [stdout] test models::pull_request::tests::test_serialize_merge_pull_request_minimal ... ok [INFO] [stdout] test models::repository::tests::test_deserialize_repository ... ok [INFO] [stdout] test models::pull_request::tests::test_serialize_update_pull_request_skips_missing_fields ... ok [INFO] [stdout] test models::repository::tests::test_deserialize_branch ... ok [INFO] [stdout] test models::repository::tests::test_serialize_create_repository_minimal ... ok [INFO] [stdout] test models::user::tests::test_serialize_user ... ok [INFO] [stdout] test models::user::tests::test_deserialize_user_full ... ok [INFO] [stdout] test models::user::tests::test_deserialize_user_minimal ... ok [INFO] [stdout] test tools::issue::tests::test_add_issue_comment_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test config::tests::test_config_file_save_and_load ... ok [INFO] [stdout] test models::label::tests::test_deserialize_label ... ok [INFO] [stdout] test models::repository::tests::test_serialize_create_repository ... ok [INFO] [stdout] test tools::issue::tests::test_list_issues_passes_trimmed_fields_and_state_to_api ... ok [INFO] [stdout] test tools::issue::tests::test_list_issue_comments_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::issue::tests::test_create_issue_passes_body_to_api_and_serializes_response ... ok [INFO] [stdout] test tools::issue::tests::test_update_issue_passes_trimmed_body_to_api_and_serializes_response ... ok [INFO] [stdout] test tools::label::tests::test_list_labels_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::issue::tests::test_get_issue_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::label::tests::test_create_label_passes_trimmed_fields_and_normalized_color ... ok [INFO] [stdout] test tools::label::tests::test_update_label_passes_trimmed_fields_and_normalized_color ... ok [INFO] [stdout] test tools::milestone::tests::test_list_milestones_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::label::tests::test_delete_label_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::label::tests::test_get_label_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::milestone::tests::test_delete_milestone_serializes_confirmation ... ok [INFO] [stdout] test tools::label::tests::test_update_label_rejects_empty_change_set ... ok [INFO] [stdout] test tools::pull_request::tests::test_add_pull_request_comment_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::pull_request::tests::test_create_pull_request_passes_trimmed_fields_to_api_and_serializes_response ... ok [INFO] [stdout] test tools::milestone::tests::test_update_milestone_trims_fields_and_preserves_clear_values ... ok [INFO] [stdout] test tools::milestone::tests::test_create_milestone_trims_optional_fields_and_serializes_response ... ok [INFO] [stdout] test tools::pull_request::tests::test_get_pull_request_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::pull_request::tests::test_list_pull_requests_passes_trimmed_fields_and_state_to_api ... ok [INFO] [stdout] test tools::pull_request::tests::test_merge_pull_request_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::pull_request::tests::test_update_pull_request_passes_trimmed_fields_to_api_and_serializes_response ... ok [INFO] [stdout] test tools::repository::tests::test_create_repository_passes_body_to_api_and_serializes_response ... ok [INFO] [stdout] test api::client::tests::test_new_client_with_web_auth_creates_successfully ... ok [INFO] [stdout] test tools::milestone::tests::test_update_milestone_rejects_empty_change_set ... ok [INFO] [stdout] test tools::repository::tests::test_get_repository_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test api::client::tests::test_new_client_creates_successfully ... ok [INFO] [stdout] test tools::repository::tests::test_fork_repository_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test server::tests::test_server_info ... ok [INFO] [stdout] test tools::user::tests::test_get_authenticated_user_serializes_response ... ok [INFO] [stdout] test tools::repository::tests::test_list_repositories_passes_trimmed_owner_and_serializes_response ... ok [INFO] [stdout] test tools::repository::tests::test_list_branches_passes_trimmed_fields_and_serializes_response ... ok [INFO] [stdout] test tools::validation::tests::test_issue_state_rejects_invalid_value ... ok [INFO] [stdout] test tools::validation::tests::test_label_color_accepts_hash_prefix ... ok [INFO] [stdout] test tools::validation::tests::test_label_color_rejects_invalid_value ... ok [INFO] [stdout] test tools::issue::tests::test_add_issue_comment_rejects_blank_body ... ok [INFO] [stdout] test tools::pull_request::tests::test_update_pull_request_rejects_empty_change_set ... ok [INFO] [stdout] test tools::user::tests::test_get_user_uses_trimmed_username_and_serializes_response ... ok [INFO] [stdout] test tools::issue::tests::test_list_issues_rejects_invalid_state ... ok [INFO] [stdout] test tools::validation::tests::test_label_color_rejects_multiple_hash_prefix ... ok [INFO] [stdout] test tools::validation::tests::test_list_state_rejects_invalid_value ... ok [INFO] [stdout] test tools::validation::tests::test_required_trimmed_rejects_blank ... ok [INFO] [stdout] test tools::validation::tests::test_required_trimmed_trims_value ... ok [INFO] [stdout] test tools::milestone::tests::test_list_milestones_rejects_blank_owner ... ok [INFO] [stdout] test tools::pull_request::tests::test_add_pull_request_comment_rejects_blank_body ... ok [INFO] [stdout] test tools::pull_request::tests::test_create_pull_request_rejects_blank_head ... ok [INFO] [stdout] test tools::pull_request::tests::test_list_pull_requests_rejects_invalid_state ... ok [INFO] [stdout] test tools::repository::tests::test_create_repository_rejects_blank_name ... ok [INFO] [stdout] test tools::repository::tests::test_list_repositories_rejects_blank_owner ... ok [INFO] [stdout] test tools::label::tests::test_create_label_rejects_invalid_color ... ok [INFO] [stdout] test tools::issue::tests::test_update_issue_requires_a_change ... ok [INFO] [stdout] test tools::user::tests::test_get_user_rejects_blank_username ... ok [INFO] [stdout] test config::tests::test_from_env_success ... ok [INFO] [stdout] test config::tests::test_load_env_overrides_file ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 120 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gitbucket_mcp_server-b115c1e8b4aa58ce) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/api_client_test.rs (/opt/rustwide/target/debug/deps/api_client_test-5ded6332697d886e) [INFO] [stdout] [INFO] [stdout] running 48 tests [INFO] [stdout] test test_create_pull_request ... ok [INFO] [stdout] test test_create_label ... ok [INFO] [stdout] test test_create_repository ... ok [INFO] [stdout] test test_create_issue ... ok [INFO] [stdout] test test_delete_milestone ... ok [INFO] [stdout] test test_fork_repository ... ok [INFO] [stdout] test test_create_milestone ... ok [INFO] [stdout] test test_delete_label_url_encodes_name ... ok [INFO] [stdout] test test_get_issue ... ok [INFO] [stdout] test test_api_error_404 ... ok [INFO] [stdout] test test_get_closed_issue_fills_closed_at_from_updated_at_when_missing ... ok [INFO] [stdout] test test_add_issue_comment ... ok [INFO] [stdout] test test_get_authenticated_user ... ok [INFO] [stdout] test test_get_label_url_encodes_name ... ok [INFO] [stdout] test test_get_pull_request_maps_wrapped_404_to_api_error ... ok [INFO] [stdout] test test_list_labels ... ok [INFO] [stdout] test test_list_repositories_fallback_to_org ... ok [INFO] [stdout] test test_list_branches ... ok [INFO] [stdout] test test_get_user ... ok [INFO] [stdout] test test_list_repositories ... ok [INFO] [stdout] test test_list_pull_requests_paginates ... ok [INFO] [stdout] test test_list_pull_requests ... ok [INFO] [stdout] test test_list_milestones ... ok [INFO] [stdout] test test_list_issue_comments_paginates ... ok [INFO] [stdout] test test_merge_pull_request ... ok [INFO] [stdout] test test_get_milestone ... ok [INFO] [stdout] test test_get_repository ... ok [INFO] [stdout] test test_list_issues ... ok [INFO] [stdout] test test_merge_pull_request_maps_wrapped_404_to_api_error ... ok [INFO] [stdout] test test_api_error_401 ... ok [INFO] [stdout] test test_update_issue_missing_issue_does_not_fallback_on_404 ... ok [INFO] [stdout] test test_create_milestone_falls_back_to_web_session_on_404 ... ok [INFO] [stdout] test test_delete_milestone_falls_back_to_web_session_on_404 ... ok [INFO] [stdout] test test_update_milestone ... ok [INFO] [stdout] test test_update_pull_request ... ok [INFO] [stdout] test test_update_issue_state_without_web_credentials_returns_clear_error ... ok [INFO] [stdout] test test_update_label_url_encodes_name ... ok [INFO] [stdout] test test_update_issue_close ... ok [INFO] [stdout] test test_list_repositories_paginates_across_user_pages ... ok [INFO] [stdout] test test_update_pull_request_falls_back_to_issue_update_on_404 ... ok [INFO] [stdout] test test_update_pull_request_maps_wrapped_404_to_api_error ... ok [INFO] [stdout] test test_update_label_fallback_rejects_description_change ... ok [INFO] [stdout] test test_update_milestone_falls_back_to_web_session_on_404 ... ok [INFO] [stdout] test test_update_pull_request_missing_pr_does_not_fallback_on_404 ... ok [INFO] [stdout] test test_update_pull_request_fallback_rejects_base_branch_change ... ok [INFO] [stdout] test test_update_label_falls_back_to_web_session_on_404 ... ok [INFO] [stdout] test test_update_issue_title_body_fallback_updates_via_web_session ... ok [INFO] [stdout] test test_update_issue_state_falls_back_to_web_session_on_404 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.69s [INFO] [stdout] [INFO] [stderr] Running tests/e2e_test.rs (/opt/rustwide/target/debug/deps/e2e_test-54378655f97f4a4c) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test test_e2e_add_issue_comment ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_add_pull_request_comment ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, GITBUCKET_E2E_REPO, GITBUCKET_E2E_GIT_USERNAME, and GITBUCKET_E2E_GIT_PASSWORD [INFO] [stdout] test test_e2e_create_issue ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_create_pull_request ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, GITBUCKET_E2E_REPO, GITBUCKET_E2E_GIT_USERNAME, and GITBUCKET_E2E_GIT_PASSWORD [INFO] [stdout] test test_e2e_create_repository ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN [INFO] [stdout] test test_e2e_get_authenticated_user ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN [INFO] [stdout] test test_e2e_get_repository ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_get_user_for_authenticated_login ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN [INFO] [stdout] test test_e2e_label_lifecycle ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_list_branches_for_created_repository ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN [INFO] [stdout] test test_e2e_list_issues ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_list_pull_requests ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_list_repositories_for_owner ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN [INFO] [stdout] test test_e2e_merge_pull_request ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, GITBUCKET_E2E_REPO, GITBUCKET_E2E_GIT_USERNAME, and GITBUCKET_E2E_GIT_PASSWORD [INFO] [stdout] test test_e2e_milestone_lifecycle ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_update_issue ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] test test_e2e_update_issue_with_title_body_on_web_fallback_instance ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 17 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/mcp_server_test.rs (/opt/rustwide/target/debug/deps/mcp_server_test-dcb185492147427d) [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test test_mcp_call_tool_create_issue_trims_fields_and_hits_api ... ok [INFO] [stdout] test test_mcp_call_tool_delete_milestone_serializes_confirmation ... ok [INFO] [stdout] test test_mcp_call_tool_create_label_normalizes_color_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_returns_validation_error_for_blank_username ... ok [INFO] [stdout] test test_mcp_call_tool_get_repository_trims_fields_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_update_label_normalizes_color_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_rejects_invalid_state_before_api_call ... ok [INFO] [stdout] test test_mcp_call_tool_create_milestone_trims_fields_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_list_labels_trims_fields_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_delete_label_trims_fields_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_list_pull_requests_passes_state_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_returns_validation_error_for_empty_issue_update ... ok [INFO] [stdout] test test_mcp_call_tool_list_repositories_trims_owner_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_get_authenticated_user_returns_json_and_hits_api ... ok [INFO] [stdout] test test_mcp_call_tool_rejects_invalid_label_color_before_api_call ... ok [INFO] [stdout] test test_mcp_call_tool_update_milestone_rejects_empty_change_set ... ok [INFO] [stdout] test test_mcp_call_tool_list_milestones_trims_fields_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_merge_pull_request_trims_commit_message_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_update_pull_request_trims_fields_and_serializes_json ... ok [INFO] [stdout] test test_mcp_call_tool_returns_validation_error_for_empty_pull_request_update ... ok [INFO] [stdout] test test_mcp_lists_all_expected_tools_and_required_inputs ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Doc-tests gitbucket_mcp_server [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "31784418e4b1b6eae11c2081bf63f5c299c5761e66dc18a7ba9890f51e85ad0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "31784418e4b1b6eae11c2081bf63f5c299c5761e66dc18a7ba9890f51e85ad0d", kill_on_drop: false }` [INFO] [stdout] 31784418e4b1b6eae11c2081bf63f5c299c5761e66dc18a7ba9890f51e85ad0d