[INFO] fetching crate github-bot-sdk 0.2.0...
[INFO] testing github-bot-sdk-0.2.0 against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] extracting crate github-bot-sdk 0.2.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate github-bot-sdk 0.2.0
[INFO] finished tweaking crates.io crate github-bot-sdk 0.2.0
[INFO] tweaked toml for crates.io crate github-bot-sdk 0.2.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate github-bot-sdk 0.2.0 on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate github-bot-sdk 0.2.0 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" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded rustls v0.23.38
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343
[INFO] running `Command { std: "docker" "start" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aws-lc-rs v1.16.3
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling hybrid-array v0.4.10
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling ff v0.13.1
[INFO] [stderr]    Compiling group v0.13.0
[INFO] [stderr]    Compiling crypto-bigint v0.5.5
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling hmac v0.13.0
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling aws-lc-sys v0.40.0
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling primeorder v0.13.6
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling p384 v0.13.1
[INFO] [stderr]    Compiling p256 v0.13.2
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling simple_asn1 v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling rsa v0.9.10
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling jsonwebtoken v10.3.0
[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 tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling github-bot-sdk v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 37s
[INFO] running `Command { std: "docker" "inspect" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling jsonwebtoken v10.3.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling github-bot-sdk v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: associated function `new_with_error` is never used
[INFO] [stdout]   --> src/client/test_helpers.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl MockAuthProvider {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn new_with_error(error_message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_client` is never used
[INFO] [stdout]    --> src/client/test_helpers.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub async fn create_test_client(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 55.12s
[INFO] running `Command { std: "docker" "inspect" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: associated function `new_with_error` is never used
[INFO] [stderr]   --> src/client/test_helpers.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl MockAuthProvider {
[INFO] [stderr]    | --------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub fn new_with_error(error_message: &str) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_test_client` is never used
[INFO] [stderr]    --> src/client/test_helpers.rs:133:14
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub async fn create_test_client(
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `github-bot-sdk` (lib test) generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/github_bot_sdk-dd5110d296d75e5f)
[INFO] [stdout] 
[INFO] [stdout] running 611 tests
[INFO] [stdout] test auth::cache::tests::construction_tests::test_create_cache ... ok
[INFO] [stdout] test auth::cache::tests::cleanup_tests::test_cleanup_expired_tokens ... ok
[INFO] [stdout] test auth::cache::tests::construction_tests::test_default_cache ... ok
[INFO] [stdout] test auth::cache::tests::cleanup_tests::test_cleanup_empty_cache ... ok
[INFO] [stdout] test auth::cache::tests::installation_token_cache_tests::test_expired_installation_token_handling ... ok
[INFO] [stdout] test auth::cache::tests::installation_token_cache_tests::test_installation_token_replacement ... ok
[INFO] [stdout] test auth::cache::tests::installation_token_cache_tests::test_get_installation_token_not_found ... ok
[INFO] [stdout] test auth::cache::tests::invalidation_tests::test_invalidate_installation_token ... ok
[INFO] [stdout] test auth::cache::tests::invalidation_tests::test_invalidate_nonexistent_token ... ok
[INFO] [stdout] test auth::cache::tests::installation_token_cache_tests::test_store_and_get_installation_token ... ok
[INFO] [stdout] test auth::cache::tests::jwt_cache_tests::test_get_jwt_not_found ... ok
[INFO] [stdout] test auth::cache::tests::jwt_cache_tests::test_jwt_replacement ... ok
[INFO] [stdout] test auth::cache::tests::jwt_cache_tests::test_expired_jwt_handling ... ok
[INFO] [stdout] test auth::cache::tests::thread_safety_tests::test_concurrent_installation_token_access ... ok
[INFO] [stdout] test auth::cache::tests::thread_safety_tests::test_concurrent_jwt_access ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_claims_tests::test_jwt_claims_construction ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_claims_tests::test_jwt_claims_serialization ... ok
[INFO] [stdout] test auth::jwt::tests::private_key_tests::test_generate_jwt_with_invalid_private_key ... ok
[INFO] [stdout] test auth::jwt::tests::private_key_tests::test_private_key_from_empty_pem ... ok
[INFO] [stdout] test auth::jwt::tests::private_key_tests::test_private_key_from_malformed_pem ... ok
[INFO] [stdout] test auth::jwt::tests::private_key_tests::test_private_key_from_pem_with_whitespace ... ok
[INFO] [stdout] test auth::jwt::tests::private_key_tests::test_private_key_from_valid_pem ... ok
[INFO] [stdout] test auth::cache::tests::jwt_cache_tests::test_store_and_get_jwt ... ok
[INFO] [stdout] test auth::jwt::tests::trait_implementation_tests::test_jwt_generator_expiration_duration ... ok
[INFO] [stdout] test auth::tests::test_default_permissions ... ok
[INFO] [stdout] test auth::jwt::tests::trait_implementation_tests::test_jwt_generator_custom_expiration_duration ... ok
[INFO] [stdout] test auth::jwt::tests::private_key_tests::test_private_key_debug_redaction ... ok
[INFO] [stdout] test auth::tests::test_github_app_id ... ok
[INFO] [stdout] test auth::tests::test_installation_id ... ok
[INFO] [stdout] test auth::tests::test_installation_token_expiry ... ok
[INFO] [stdout] test auth::tests::test_installation_token_security ... ok
[INFO] [stdout] test auth::tests::test_installation_token_permissions ... ok
[INFO] [stdout] test auth::tests::test_jwt_claims_serialization ... ok
[INFO] [stdout] test auth::tests::test_jwt_token_security ... ok
[INFO] [stdout] test auth::tests::test_jwt_token_expiry ... ok
[INFO] [stdout] test auth::tests::test_jwt_token_time_until_expiry ... ok
[INFO] [stdout] test auth::tests::test_permission_enum_all_variants ... ok
[INFO] [stdout] test auth::tests::test_permission_level_ordering ... ok
[INFO] [stdout] test auth::tests::test_private_key_security ... ok
[INFO] [stdout] test auth::tests::test_repository_helpers ... ok
[INFO] [stdout] test auth::tests::test_repository_id ... ok
[INFO] [stdout] test auth::tests::test_account_type ... ok
[INFO] [stdout] test auth::tests::test_repository_selection_variants ... ok
[INFO] [stdout] test auth::tests::test_target_type ... ok
[INFO] [stdout] test auth::tests::test_user_id ... ok
[INFO] [stdout] test auth::tests::test_user_type_variants ... ok
[INFO] [stdout] test auth::tokens::tests::app_token_tests::test_app_token_cache_failure_fallback ... ok
[INFO] [stdout] test auth::tokens::tests::app_token_tests::test_app_token_generates_jwt ... ok
[INFO] [stdout] test auth::tokens::tests::app_token_tests::test_app_token_signing_failure ... ok
[INFO] [stdout] test auth::tokens::tests::app_token_tests::test_app_token_uses_cache ... ok
[INFO] [stdout] test auth::tokens::tests::auth_config_tests::test_default_auth_config ... ok
[INFO] [stdout] test auth::tokens::tests::construction_tests::test_create_github_app_auth ... ok
[INFO] [stdout] test auth::tests::test_installation_structure ... ok
[INFO] [stdout] test auth::tokens::tests::construction_tests::test_create_with_custom_config ... ok
[INFO] [stdout] test auth::tokens::tests::app_token_tests::test_app_token_refreshes_expired ... ok
[INFO] [stdout] test auth::tokens::tests::get_repositories_tests::test_get_installation_repositories ... ok
[INFO] [stdout] test auth::tests::test_key_algorithm ... ok
[INFO] [stdout] test auth::tokens::tests::get_repositories_tests::test_get_installation_repositories_failure ... ok
[INFO] [stdout] test auth::tokens::tests::installation_token_tests::test_installation_token_caching ... ok
[INFO] [stdout] test auth::tokens::tests::installation_token_tests::test_installation_token_exchange ... ok
[INFO] [stdout] test auth::tokens::tests::list_installations_tests::test_list_installations ... ok
[INFO] [stdout] test auth::tokens::tests::list_installations_tests::test_list_installations_api_failure ... ok
[INFO] [stdout] test auth::tokens::tests::refresh_token_tests::test_refresh_bypasses_cache ... ok
[INFO] [stdout] test client::app::tests::test_app_clone ... ok
[INFO] [stdout] test client::app::tests::test_app_construction ... ok
[INFO] [stdout] test client::app::tests::test_app_deserialization ... ok
[INFO] [stdout] test client::app::tests::test_app_serialization ... ok
[INFO] [stdout] test client::app::tests::test_app_with_optional_description ... ok
[INFO] [stdout] test auth::tokens::tests::installation_token_tests::test_installation_token_not_found ... ok
[INFO] [stdout] test auth::tokens::tests::installation_token_tests::test_installation_token_refresh_expired ... ok
[INFO] [stdout] test auth::jwt::tests::expiration_tests::test_jwt_expires_soon_detection ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_generate_jwt_with_valid_credentials ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_jwt_expiration_matches_duration ... ok
[INFO] [stdout] test auth::jwt::tests::expiration_tests::test_jwt_time_until_expiry ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_jwt_with_custom_expiration ... ok
[INFO] [stdout] test auth::jwt::tests::trait_implementation_tests::test_jwt_generator_trait_object ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_compare_commits_identical ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_jwt_has_valid_structure ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_jwt_issued_at_is_current ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_401_returns_authentication_failed ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_compare_commits_404_returns_not_found ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_jwt_rejects_expiration_over_10_minutes - should panic ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_compare_commits_401_returns_authentication_failed ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_by_branch ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_compare_commits_with_file_changes ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_compare_commits_403_returns_authorization_failed ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_jwt_generation_with_different_app_ids ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_compare_commits_ahead ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_404_returns_not_found ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_by_sha ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_401_returns_authentication_failed ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_403_returns_authorization_failed ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_page_parameter ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_url_encodes_ref_name ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_empty_repo_returns_invalid_request ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_403_returns_authorization_failed ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_comparison_all_fields ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_file_change_no_patch ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_per_page_clamped_to_100 ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_full_commit_optional_fields_absent ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_404_returns_not_found ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_full_commit_with_all_fields ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_merge_commit ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_initial_commit ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_serialize_file_change_omits_optional_none_fields ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_by_tag ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_file_change_renamed ... ok
[INFO] [stdout] test client::commit::tests::deserialization::test_deserialize_verified_commit ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_date_range ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_path_filter ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_author_filter ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_default_branch ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_per_page_not_clamped ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_per_page_zero_clamped_to_one ... ok
[INFO] [stdout] test client::installation::tests::authorization_header_tests::test_user_agent_header ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_compare_commits_server_error ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_422_returns_invalid_request ... ok
[INFO] [stdout] test client::installation::tests::authorization_header_tests::test_accept_header ... ok
[INFO] [stdout] test client::installation::tests::construction_tests::test_installation_client_creation ... ok
[INFO] [stdout] test client::installation::tests::http_request_tests::test_delete_request ... ok
[INFO] [stdout] test client::installation::tests::http_request_tests::test_patch_request ... ok
[INFO] [stdout] test client::installation::tests::http_request_tests::test_get_request ... ok
[INFO] [stdout] test client::installation::tests::construction_tests::test_installation_id_accessor ... ok
[INFO] [stdout] test client::installation::tests::authorization_header_tests::test_bearer_token_header ... ok
[INFO] [stdout] test client::installation::tests::construction_tests::test_github_client_installation_by_id ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_sha_filter ... ok
[INFO] [stdout] test client::installation::tests::http_request_tests::test_post_request ... ok
[INFO] [stdout] test client::installation::tests::path_normalization_tests::test_path_with_leading_slash ... ok
[INFO] [stdout] test client::installation::tests::http_request_tests::test_put_request ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_graphql_error ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_error_type_without_message ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_http_401 ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_missing_data_field ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_success ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_concurrent_requests_same_installation ... ok
[INFO] [stdout] test client::installation::tests::path_normalization_tests::test_path_without_leading_slash ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_not_found_error ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_http_500_retries ... ok
[INFO] [stdout] test client::installation::tests::post_graphql_tests::test_post_graphql_uses_bearer_token ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_get_commit_server_error ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_handles_malformed_rate_limit_headers ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_non_retryable_401_fails_immediately ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_non_retryable_404_fails_immediately ... ok
[INFO] [stdout] test auth::jwt::tests::jwt_generator_tests::test_multiple_jwt_generations_are_unique ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_403_permission_denied_fails_immediately ... ok
[INFO] [stdout] test client::commit::tests::commit_operations::test_list_commits_server_error ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_patch_request_retry ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_post_request_retry ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_put_request_retry ... ok
[INFO] [stdout] test client::installation::tests::token_management_tests::test_token_error_propagation ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_retry_on_500_error_succeeds ... ok
[INFO] [stdout] test client::installation::tests::token_management_tests::test_installation_token_retrieval ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_delete_request_retry ... ok
[INFO] [stdout] test client::issue::tests::activity_operations::test_list_activity_events ... ok
[INFO] [stdout] test client::issue::tests::assignee_operations::test_remove_assignees ... ok
[INFO] [stdout] test client::issue::tests::assignee_operations::test_add_assignees ... ok
[INFO] [stdout] test client::issue::tests::activity_operations::test_list_timeline ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_delete_issue_comment ... ok
[INFO] [stdout] test client::issue::tests::assignee_operations::test_list_available_assignees ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_create_issue_comment ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_get_issue_comment ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_get_issue_comment_not_found ... ok
[INFO] [stdout] test client::issue::tests::construction::test_create_comment_request ... ok
[INFO] [stdout] test client::issue::tests::construction::test_create_issue_request_full ... ok
[INFO] [stdout] test client::issue::tests::construction::test_create_issue_request_minimal ... ok
[INFO] [stdout] test client::issue::tests::construction::test_create_label_request ... ok
[INFO] [stdout] test client::issue::tests::construction::test_update_issue_request_partial ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_retry_on_503_error_succeeds ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_exponential_backoff_progression ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_update_issue_comment ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_list_issue_comments_multi_page ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_list_issue_comments_empty ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_max_retries_exceeded ... ok
[INFO] [stdout] test client::issue::tests::error_handling::test_issue_not_found ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_list_issue_comments ... ok
[INFO] [stdout] test client::issue::tests::error_handling::test_validation_error ... ok
[INFO] [stdout] test client::issue::tests::comment_operations::test_list_issue_comments_not_found ... ok
[INFO] [stdout] test client::issue::tests::error_handling::test_forbidden_access ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_create_issue_full ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_clear_issue_milestone ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_get_issue_not_found ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_get_issue_found ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_list_issues_filtered_by_state ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_create_issue_minimal ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_delete_label ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_update_issue ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_complete_rate_limit_lifecycle ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_get_label ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_set_issue_milestone ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_add_labels_to_issue ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_create_label ... ok
[INFO] [stdout] test client::issue::tests::issue_operations::test_list_issues_all ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_list_labels ... ok
[INFO] [stdout] test client::issue::tests::lock_operations::test_lock_unauthorized ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_remove_label_from_issue ... ok
[INFO] [stdout] test client::issue::tests::lock_operations::test_unlock_issue ... ok
[INFO] [stdout] test client::issue::tests::lock_operations::test_lock_issue_with_reason ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_get_label_not_found ... ok
[INFO] [stdout] test client::issue::tests::milestone_operations::test_create_milestone ... ok
[INFO] [stdout] test client::issue::tests::label_operations::test_update_label ... ok
[INFO] [stdout] test client::issue::tests::milestone_operations::test_get_milestone ... ok
[INFO] [stdout] test client::issue::tests::milestone_operations::test_list_milestones ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_multiple_consecutive_retries ... ok
[INFO] [stdout] test client::issue::tests::serialization::test_comment_deserialize ... ok
[INFO] [stdout] test client::issue::tests::serialization::test_create_issue_request_serialize ... ok
[INFO] [stdout] test client::issue::tests::serialization::test_issue_deserialize ... ok
[INFO] [stdout] test client::issue::tests::serialization::test_issue_deserialize_closed ... ok
[INFO] [stdout] test client::issue::tests::serialization::test_label_deserialize ... ok
[INFO] [stdout] test client::issue::tests::serialization::test_milestone_deserialize ... ok
[INFO] [stdout] test client::issue::tests::serialization::test_update_issue_request_serialize_partial ... ok
[INFO] [stdout] test client::pagination::tests::construction::test_paged_response_creation ... ok
[INFO] [stdout] test client::pagination::tests::construction::test_pagination_default ... ok
[INFO] [stdout] test client::pagination::tests::extract_page_number::test_extract_page_number_invalid_page_value ... ok
[INFO] [stdout] test client::pagination::tests::extract_page_number::test_extract_page_number_invalid_url ... ok
[INFO] [stdout] test client::pagination::tests::extract_page_number::test_extract_page_number_page_zero ... ok
[INFO] [stdout] test client::pagination::tests::extract_page_number::test_extract_page_number_with_multiple_params ... ok
[INFO] [stdout] test client::pagination::tests::extract_page_number::test_extract_page_number_with_page_param ... ok
[INFO] [stdout] test client::pagination::tests::extract_page_number::test_extract_page_number_without_page_param ... ok
[INFO] [stdout] test client::pagination::tests::link_header_parsing::test_parse_link_header_empty ... ok
[INFO] [stdout] test client::pagination::tests::link_header_parsing::test_parse_link_header_malformed ... ok
[INFO] [stdout] test client::pagination::tests::link_header_parsing::test_parse_link_header_none ... ok
[INFO] [stdout] test client::pagination::tests::link_header_parsing::test_parse_link_header_with_all_links ... ok
[INFO] [stdout] test client::pagination::tests::link_header_parsing::test_parse_link_header_with_next ... ok
[INFO] [stdout] test client::pagination::tests::link_header_parsing::test_parse_link_header_with_spaces ... ok
[INFO] [stdout] test client::pagination::tests::paged_response_helpers::test_has_next_page ... ok
[INFO] [stdout] test client::pagination::tests::paged_response_helpers::test_has_next_page_false ... ok
[INFO] [stdout] test client::pagination::tests::paged_response_helpers::test_is_last_page ... ok
[INFO] [stdout] test client::pagination::tests::paged_response_helpers::test_is_last_page_false ... ok
[INFO] [stdout] test client::pagination::tests::paged_response_helpers::test_next_page_number ... ok
[INFO] [stdout] test client::pagination::tests::paged_response_helpers::test_next_page_number_none ... ok
[INFO] [stdout] test client::pagination::tests::pagination_methods::test_has_next_false ... ok
[INFO] [stdout] test client::pagination::tests::pagination_methods::test_has_next_true ... ok
[INFO] [stdout] test client::pagination::tests::pagination_methods::test_has_prev_false ... ok
[INFO] [stdout] test client::issue::tests::lock_operations::test_lock_issue ... ok
[INFO] [stdout] test client::pagination::tests::pagination_methods::test_next_page ... ok
[INFO] [stdout] test client::pagination::tests::pagination_methods::test_prev_page ... ok
[INFO] [stdout] test client::pagination::tests::pagination_methods::test_prev_page_at_first_page ... ok
[INFO] [stdout] test client::pagination::tests::serialization::test_paged_response_deserialize ... ok
[INFO] [stdout] test client::pagination::tests::serialization::test_paged_response_serialize ... ok
[INFO] [stdout] test client::pagination::tests::serialization::test_pagination_deserialize ... ok
[INFO] [stdout] test client::pagination::tests::serialization::test_pagination_serialize ... ok
[INFO] [stdout] test client::issue::tests::reaction_operations::test_list_comment_reactions ... ok
[INFO] [stdout] test client::issue::tests::milestone_operations::test_delete_milestone ... ok
[INFO] [stdout] test client::pagination::tests::pagination_methods::test_has_prev_true ... ok
[INFO] [stdout] test client::issue::tests::milestone_operations::test_get_milestone_not_found ... ok
[INFO] [stdout] test client::issue::tests::reaction_operations::test_delete_comment_reaction ... ok
[INFO] [stdout] test client::issue::tests::reaction_operations::test_list_reactions ... ok
[INFO] [stdout] test client::issue::tests::milestone_operations::test_update_milestone ... ok
[INFO] [stdout] test client::project::tests::construction::test_add_project_item_request ... ok
[INFO] [stdout] test client::project::tests::error_handling::test_forbidden_access ... ignored, TODO: Mock: 403 response returns ApiError::Forbidden
[INFO] [stdout] test client::project::tests::error_handling::test_organization_not_found ... ignored, TODO: Mock: 404 when org doesn't exist
[INFO] [stdout] test client::project::tests::error_handling::test_project_not_found ... ignored, TODO: Mock: 404 response returns ApiError::NotFound
[INFO] [stdout] test client::project::tests::add_item_to_project_tests::test_returns_authentication_failed_on_401 ... ok
[INFO] [stdout] test client::project::tests::add_item_to_project_tests::test_falls_back_to_user_when_org_not_found ... ok
[INFO] [stdout] test client::project::tests::add_item_to_project_tests::test_returns_graphql_error_when_item_already_in_project ... ok
[INFO] [stdout] test client::project::tests::add_item_to_project_tests::test_returns_error_when_item_type_missing ... ok
[INFO] [stdout] test client::project::tests::add_item_to_project_tests::test_successful_add_returns_populated_item ... ok
[INFO] [stdout] test client::project::tests::add_item_to_project_tests::test_returns_error_when_item_timestamps_missing ... ok
[INFO] [stdout] test client::project::tests::project_operations::test_get_project_not_found ... ignored, GitHub Projects V2 HTTP tests deferred: REST endpoints for listing/fetching org/user projects are in preview and require GraphQL for advanced features. Tracked in GitHub issue #47.
[INFO] [stdout] test client::project::tests::project_operations::test_get_project_organization ... ignored, GitHub Projects V2 HTTP tests deferred: REST endpoints for listing/fetching org/user projects are in preview and require GraphQL for advanced features. Tracked in GitHub issue #47.
[INFO] [stdout] test client::project::tests::project_operations::test_get_project_user ... ignored, GitHub Projects V2 HTTP tests deferred: REST endpoints for listing/fetching org/user projects are in preview and require GraphQL for advanced features. Tracked in GitHub issue #47.
[INFO] [stdout] test client::project::tests::project_operations::test_list_organization_projects ... ignored, GitHub Projects V2 HTTP tests deferred: REST endpoints for listing/fetching org/user projects are in preview and require GraphQL for advanced features. Tracked in GitHub issue #47.
[INFO] [stdout] test client::project::tests::project_operations::test_list_user_projects ... ignored, GitHub Projects V2 HTTP tests deferred: REST endpoints for listing/fetching org/user projects are in preview and require GraphQL for advanced features. Tracked in GitHub issue #47.
[INFO] [stdout] test client::project::tests::project_operations::test_remove_item_from_project ... ignored, GitHub Projects V2 HTTP tests deferred: REST endpoints for listing/fetching org/user projects are in preview and require GraphQL for advanced features. Tracked in GitHub issue #47.
[INFO] [stdout] test client::project::tests::project_operations::test_remove_item_not_found ... ignored, GitHub Projects V2 HTTP tests deferred: REST endpoints for listing/fetching org/user projects are in preview and require GraphQL for advanced features. Tracked in GitHub issue #47.
[INFO] [stdout] test client::project::tests::serialization::test_add_project_item_request_serialize ... ok
[INFO] [stdout] test client::project::tests::serialization::test_project_owner_deserialize ... ok
[INFO] [stdout] test client::project::tests::serialization::test_project_v2_deserialize ... ok
[INFO] [stdout] test client::issue::tests::reaction_operations::test_delete_reaction ... ok
[INFO] [stdout] test client::project::tests::serialization::test_project_v2_item_deserialize ... ok
[INFO] [stdout] test client::project::tests::get_issue_linked_projects_tests::test_returns_empty_vec_when_issue_has_no_linked_projects ... ok
[INFO] [stdout] test client::issue::tests::reaction_operations::test_create_comment_reaction ... ok
[INFO] [stdout] test client::pull_request::tests::construction::test_create_pr_request_with_maintainer_modify ... ok
[INFO] [stdout] test client::issue::tests::reaction_operations::test_create_reaction ... ok
[INFO] [stdout] test client::pull_request::tests::construction::test_create_pull_request_request_full ... ok
[INFO] [stdout] test client::pull_request::tests::construction::test_create_pull_request_request_minimal ... ok
[INFO] [stdout] test client::pull_request::tests::construction::test_create_review_request ... ok
[INFO] [stdout] test client::pull_request::tests::construction::test_merge_pull_request_request ... ok
[INFO] [stdout] test client::pull_request::tests::construction::test_update_pull_request_request_partial ... ok
[INFO] [stdout] test client::pull_request::tests::construction::test_create_pr_request_without_maintainer_modify ... ok
[INFO] [stdout] test client::project::tests::get_issue_linked_projects_tests::test_returns_authentication_failed_on_401 ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_429_respects_retry_after_header_integration ... ok
[INFO] [stdout] test client::project::tests::get_issue_linked_projects_tests::test_returns_projects_when_issue_has_linked_projects ... ok
[INFO] [stdout] test client::project::tests::get_issue_linked_projects_tests::test_returns_not_found_for_missing_repository_or_issue ... ok
[INFO] [stdout] test client::project::tests::get_issue_linked_projects_tests::test_returns_all_projects_across_multiple_pages ... ok
[INFO] [stdout] test client::pull_request::tests::label_operations::test_add_labels ... ok
[INFO] [stdout] test client::project::tests::get_issue_linked_projects_tests::test_returns_not_found_when_issue_is_null ... ok
[INFO] [stdout] test client::pull_request::tests::comment_operations::test_update_comment ... ok
[INFO] [stdout] test client::pull_request::tests::comment_operations::test_delete_comment ... ok
[INFO] [stdout] test client::pull_request::tests::label_operations::test_remove_label ... ok
[INFO] [stdout] test client::project::tests::add_item_to_project_tests::test_returns_not_found_when_project_does_not_exist ... ok
[INFO] [stdout] test client::rate_limit::tests::parse_rate_limit_tests::test_parse_rate_limit_defaults_to_core_resource ... ok
[INFO] [stdout] test client::rate_limit::tests::parse_rate_limit_tests::test_parse_rate_limit_returns_none_when_headers_invalid ... ok
[INFO] [stdout] test client::rate_limit::tests::parse_rate_limit_tests::test_parse_rate_limit_returns_none_when_headers_missing ... ok
[INFO] [stdout] test client::rate_limit::tests::parse_rate_limit_tests::test_parse_valid_rate_limit_headers ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limit_tests::test_rate_limit_creation_and_accessors ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limit_tests::test_rate_limit_has_not_reset_before_time ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limit_tests::test_rate_limit_has_reset_after_time ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limit_tests::test_rate_limit_is_exhausted_when_zero_remaining ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limit_tests::test_rate_limit_near_exhaustion_below_margin ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limit_tests::test_rate_limit_not_exhausted_when_remaining ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limit_tests::test_rate_limit_not_near_exhaustion_above_margin ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_allows_after_reset ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_allows_when_no_data ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_blocks_when_exhausted ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_blocks_when_near_exhaustion ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_can_proceed_when_healthy_app ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_can_proceed_when_healthy_installation ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_clamps_margin_to_valid_range ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_contexts_independent ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_creation_with_margin ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_get_limit_returns_none_when_no_data ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_get_limit_returns_stored_data ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_tracks_app_and_installation_separately ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_tracks_installations_separately ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_updates_from_headers_app_context ... ok
[INFO] [stdout] test client::pull_request::tests::label_operations::test_replace_labels_clears_all ... ok
[INFO] [stdout] test client::rate_limit::tests::rate_limiter_tests::test_rate_limiter_updates_from_headers_installation_context ... ok
[INFO] [stdout] test client::pull_request::tests::label_operations::test_remove_label_not_found ... ok
[INFO] [stdout] test client::release::tests::construction::test_create_release_request_minimal ... ok
[INFO] [stdout] test client::pull_request::tests::label_operations::test_replace_labels ... ok
[INFO] [stdout] test client::release::tests::construction::test_create_release_request_without_generate_notes ... ok
[INFO] [stdout] test client::release::tests::construction::test_create_release_request_full ... ok
[INFO] [stdout] test client::release::tests::construction::test_update_release_request_partial ... ok
[INFO] [stdout] test client::release::tests::construction::test_create_release_request_with_generate_notes ... ok
[INFO] [stdout] test client::pull_request::tests::milestone_operations::test_set_milestone_clear_uses_issues_api ... ok
[INFO] [stdout] test client::pull_request::tests::pull_request_operations::test_create_pull_request ... ok
[INFO] [stdout] test client::pull_request::tests::comment_operations::test_update_comment_not_found ... ok
[INFO] [stdout] test client::pull_request::tests::milestone_operations::test_set_milestone_uses_issues_api ... ok
[INFO] [stdout] test client::pull_request::tests::pull_request_operations::test_list_pull_requests ... ok
[INFO] [stdout] test client::pull_request::tests::pull_request_operations::test_get_pull_request_not_found ... ok
[INFO] [stdout] test client::pull_request::tests::milestone_operations::test_set_milestone_propagates_issues_api_error ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_429_with_retry_after_header ... ok
[INFO] [stdout] test client::release::tests::error_handling::test_release_unauthorized ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_create_release_draft ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_delete_release ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_get_latest_release_not_found ... ok
[INFO] [stdout] test client::release::tests::error_handling::test_release_not_found ... ok
[INFO] [stdout] test client::release::tests::serialization::test_create_release_request_serialize ... ok
[INFO] [stdout] test client::release::tests::serialization::test_release_asset_deserialize ... ok
[INFO] [stdout] test client::release::tests::serialization::test_release_deserialize ... ok
[INFO] [stdout] test client::release::tests::serialization::test_update_release_request_serialize_partial ... ok
[INFO] [stdout] test client::release::tests::error_handling::test_forbidden_access ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_get_latest_release ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_update_release ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_list_releases ... ok
[INFO] [stdout] test client::repository::tests::branch_operations_tests::test_get_branch ... ok
[INFO] [stdout] test client::pull_request::tests::pull_request_operations::test_get_pull_request ... ok
[INFO] [stdout] test client::release::tests::error_handling::test_tag_already_exists ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_get_release ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_create_release_prerelease ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_get_release_by_tag_with_slash ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_create_release ... ok
[INFO] [stdout] test client::repository::tests::git_ref_operations_tests::test_delete_git_ref ... ok
[INFO] [stdout] test client::repository::tests::branch_operations_tests::test_get_branch_not_found ... ok
[INFO] [stdout] test client::release::tests::release_operations::test_get_release_by_tag ... ok
[INFO] [stdout] test client::repository::tests::branch_operations_tests::test_list_branches ... ok
[INFO] [stdout] test client::repository::tests::type_serialization_tests::test_branch_deserialization ... ok
[INFO] [stdout] test client::repository::tests::type_serialization_tests::test_git_object_type_serialization ... ok
[INFO] [stdout] test client::repository::tests::type_serialization_tests::test_git_ref_deserialization ... ok
[INFO] [stdout] test client::repository::tests::type_serialization_tests::test_owner_type_serialization ... ok
[INFO] [stdout] test client::repository::tests::type_serialization_tests::test_repository_deserialization ... ok
[INFO] [stdout] test client::repository::tests::git_ref_operations_tests::test_create_git_ref ... ok
[INFO] [stdout] test client::repository::tests::type_serialization_tests::test_tag_deserialization ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_default ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_http_date ... ok
[INFO] [stdout] test client::repository::tests::type_serialization_tests::test_repository_deserialization_without_description ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_invalid_retry_after ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_large_value ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_invalid_reset ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_retry_after_priority ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_past_reset ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_zero ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_from_headers_invalid ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_from_headers_missing ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_from_headers_valid ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_is_limited ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_is_near_limit_false ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_is_near_limit_true ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_is_not_limited ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_time_until_reset_future ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_info::test_time_until_reset_past ... ok
[INFO] [stdout] test client::retry::tests::retry_after_parsing::test_parse_retry_after_delta_seconds ... ok
[INFO] [stdout] test client::retry::tests::retry_after_parsing::test_parse_retry_after_http_date ... ok
[INFO] [stdout] test client::retry::tests::retry_after_parsing::test_parse_retry_after_invalid ... ok
[INFO] [stdout] test client::retry::tests::retry_after_parsing::test_parse_retry_after_large_values ... ok
[INFO] [stdout] test client::retry::tests::retry_after_parsing::test_parse_retry_after_past_date ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_builder_pattern ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_calculate_delay_attempt_zero ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_calculate_delay_exponential_backoff ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_calculate_delay_jitter_respects_bounds ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_calculate_delay_max_cap ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_calculate_delay_with_jitter ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_calculate_delay_without_jitter ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_default ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_new ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_should_retry_false ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_should_retry_true ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_with_jitter ... ok
[INFO] [stdout] test client::retry::tests::retry_policy::test_without_jitter ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_abuse_message ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_case_insensitive ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_empty_body ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_no_partial_match ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_non_json_body ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_not_403 ... ok
[INFO] [stdout] test client::retry::tests::rate_limit_delay_calculation::test_calculate_rate_limit_delay_uses_reset ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_permission_denied ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_rate_limit_message ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_rate_limit_underscore ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_real_github_response ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_substring_match ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_too_many_requests ... ok
[INFO] [stdout] test client::retry::tests::secondary_rate_limit_detection::test_detect_secondary_rate_limit_unrelated_403 ... ok
[INFO] [stdout] test client::retry::tests::serialization::test_rate_limit_info_deserialize ... ok
[INFO] [stdout] test client::retry::tests::serialization::test_rate_limit_info_serialize ... ok
[INFO] [stdout] test client::retry::tests::serialization::test_retry_policy_deserialize ... ok
[INFO] [stdout] test client::retry::tests::serialization::test_retry_policy_serialize ... ok
[INFO] [stdout] test client::repository::tests::git_ref_operations_tests::test_get_git_ref ... ok
[INFO] [stdout] test client::repository::tests::git_ref_operations_tests::test_delete_git_ref_not_found ... ok
[INFO] [stdout] test client::repository::tests::git_ref_operations_tests::test_update_git_ref_force ... ok
[INFO] [stdout] test client::repository::tests::repository_operations_tests::test_get_repository_permission_denied ... ok
[INFO] [stdout] test client::repository::tests::tag_operations_tests::test_list_tags ... ok
[INFO] [stdout] test client::repository::tests::tag_operations_tests::test_list_tags_empty_repo ... ok
[INFO] [stdout] test client::repository::tests::git_ref_operations_tests::test_update_git_ref_fast_forward ... ok
[INFO] [stdout] test client::repository::tests::repository_operations_tests::test_get_repository ... ok
[INFO] [stdout] test client::repository::tests::git_ref_operations_tests::test_create_git_ref_already_exists ... ok
[INFO] [stdout] test client::repository::tests::repository_operations_tests::test_get_repository_not_found ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_as_app_returns_error_responses ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_as_app_with_leading_slash ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_app_success ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_as_app_success ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_app_malformed_response ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_builder_default ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_builder_pattern ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_method_chaining ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_installation_not_found ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_rate_limit_margin_clamped ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_with_github_api_url ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_with_max_retries ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_with_rate_limit_margin ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_with_timeout ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_config_with_user_agent ... ok
[INFO] [stdout] test client::tests::client_config_tests::test_default_config_values ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_as_app_jwt_generation_failure ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_app_jwt_generation_failure ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_installation_success ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_get_app_http_failure ... ok
[INFO] [stdout] test client::release::tests::error_handling::test_release_server_error ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_post_as_app_returns_error_responses ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_list_installations_empty ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_auth_provider_error_propagates ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_post_as_app_success ... ok
[INFO] [stdout] test client::tests::rate_limiting_tests::test_parse_rate_limit_from_headers_complete ... ok
[INFO] [stdout] test client::tests::rate_limiting_tests::test_parse_rate_limit_from_headers_invalid ... ok
[INFO] [stdout] test client::tests::rate_limiting_tests::test_parse_rate_limit_from_headers_missing ... ok
[INFO] [stdout] test client::tests::rate_limiting_tests::test_parse_rate_limit_from_headers_partial ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_debug_output_hides_sensitive_data ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_builder_with_custom_config ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_list_installations_success ... ok
[INFO] [stdout] test client::workflow::tests::construction::test_trigger_workflow_request_minimal ... ok
[INFO] [stdout] test client::workflow::tests::construction::test_trigger_workflow_request_with_inputs ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_can_get_installation_token_from_provider ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_post_as_app_with_empty_body ... ok
[INFO] [stdout] test client::tests::app_operations_tests::test_post_as_app_jwt_generation_failure ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_config_is_immutable_after_creation ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_can_get_jwt_from_provider ... ok
[INFO] [stdout] test client::tests::rate_limiting_tests::test_rate_limit_exceeded_response ... ok
[INFO] [stdout] test client::workflow::tests::serialization::test_trigger_workflow_request_serialize ... ok
[INFO] [stdout] test client::workflow::tests::serialization::test_trigger_workflow_request_serialize_with_inputs ... ok
[INFO] [stdout] test client::workflow::tests::serialization::test_workflow_deserialize ... ok
[INFO] [stdout] test client::workflow::tests::serialization::test_workflow_run_deserialize ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_builder_fluent_interface ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_builder_with_default_config ... ok
[INFO] [stdout] test client::tests::rate_limiting_tests::test_rate_limit_headers_in_response ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_client_has_auth_provider ... ok
[INFO] [stdout] test client::workflow::tests::error_handling::test_workflow_disabled ... ok
[INFO] [stdout] test client::workflow::tests::error_handling::test_forbidden_access ... ok
[INFO] [stdout] test client::workflow::tests::error_handling::test_workflow_not_found ... ok
[INFO] [stdout] test client::workflow::tests::error_handling::test_workflow_unauthorized ... ok
[INFO] [stdout] test error::tests::test_api_error_transience ... ok
[INFO] [stdout] test error::tests::test_auth_error_retry_after ... ok
[INFO] [stdout] test error::tests::test_auth_error_should_retry_alias ... ok
[INFO] [stdout] test error::tests::test_auth_error_transience ... ok
[INFO] [stdout] test error::tests::test_cache_error_serialization ... ok
[INFO] [stdout] test error::tests::test_graphql_error_is_not_transient ... ok
[INFO] [stdout] test error::tests::test_secret_error_transience ... ok
[INFO] [stdout] test error::tests::test_validation_error_messages ... ok
[INFO] [stdout] test events::github_events::tests::test_check_run_action_serialization ... ok
[INFO] [stdout] test events::github_events::tests::test_check_run_event_serde ... ok
[INFO] [stdout] test events::github_events::tests::test_check_suite_action_serialization ... ok
[INFO] [stdout] test events::github_events::tests::test_check_suite_event_serde ... ok
[INFO] [stdout] test events::github_events::tests::test_commit_structure ... ok
[INFO] [stdout] test events::github_events::tests::test_event_user_type_field ... ok
[INFO] [stdout] test events::github_events::tests::test_issue_action_display ... ok
[INFO] [stdout] test events::github_events::tests::test_issue_action_serialization ... ok
[INFO] [stdout] test events::github_events::tests::test_issue_event_serde ... ok
[INFO] [stdout] test events::github_events::tests::test_pull_request_action_display ... ok
[INFO] [stdout] test events::github_events::tests::test_pull_request_action_serialization ... ok
[INFO] [stdout] test events::github_events::tests::test_pull_request_event_serde ... ok
[INFO] [stdout] test events::github_events::tests::test_push_event_ref_field_rename ... ok
[INFO] [stdout] test events::github_events::tests::test_push_event_serde ... ok
[INFO] [stdout] test events::processor::tests::test_extract_entity_info_issues ... ok
[INFO] [stdout] test events::processor::tests::test_extract_entity_info_pull_request ... ok
[INFO] [stdout] test events::processor::tests::test_extract_entity_info_push ... ok
[INFO] [stdout] test events::processor::tests::test_generate_session_id_entity_strategy ... ok
[INFO] [stdout] test events::processor::tests::test_generate_session_id_none_strategy ... ok
[INFO] [stdout] test events::processor::tests::test_generate_session_id_repository_strategy ... ok
[INFO] [stdout] test events::processor::tests::test_process_webhook_invalid_json ... ok
[INFO] [stdout] test events::processor::tests::test_process_webhook_issues ... ok
[INFO] [stdout] test events::processor::tests::test_process_webhook_payload_too_large ... ok
[INFO] [stdout] test events::processor::tests::test_process_webhook_pull_request ... ok
[INFO] [stdout] test events::processor::tests::test_processor_config_default ... ok
[INFO] [stdout] test events::session::tests::test_custom_session_strategy ... ok
[INFO] [stdout] test events::session::tests::test_entity_session_strategy_builder ... ok
[INFO] [stdout] test client::tests::github_client_tests::test_multiple_clients_with_same_auth_provider ... ok
[INFO] [stdout] test events::session::tests::test_extract_ordering_key ... ok
[INFO] [stdout] test events::session::tests::test_repository_session_strategy_builder ... ok
[INFO] [stdout] test events::session::tests::test_session_manager_entity_strategy_issue ... ok
[INFO] [stdout] test events::session::tests::test_session_manager_entity_strategy_no_entity_id ... ok
[INFO] [stdout] test events::session::tests::test_session_manager_entity_strategy_pull_request ... ok
[INFO] [stdout] test events::session::tests::test_session_manager_none_strategy ... ok
[INFO] [stdout] test events::session::tests::test_session_manager_repository_strategy ... ok
[INFO] [stdout] test events::tests::test_check_run_action_variants ... ok
[INFO] [stdout] test events::tests::test_check_suite_action_variants ... ok
[INFO] [stdout] test events::tests::test_entity_type_from_event_type_issues ... ok
[INFO] [stdout] test events::tests::test_entity_type_from_event_type_pull_request ... ok
[INFO] [stdout] test events::tests::test_entity_type_from_event_type_push ... ok
[INFO] [stdout] test events::tests::test_entity_type_from_event_type_unknown ... ok
[INFO] [stdout] test events::tests::test_entity_type_serde ... ok
[INFO] [stdout] test events::tests::test_entity_type_supports_ordering_false ... ok
[INFO] [stdout] test events::tests::test_entity_type_supports_ordering_true ... ok
[INFO] [stdout] test events::tests::test_entity_type_variants ... ok
[INFO] [stdout] test events::tests::test_event_envelope_correlation_id ... ok
[INFO] [stdout] test events::tests::test_event_envelope_creation ... ok
[INFO] [stdout] test events::tests::test_event_envelope_entity_key_pull_request ... ok
[INFO] [stdout] test events::tests::test_event_envelope_entity_key_repository_level ... ok
[INFO] [stdout] test events::tests::test_event_envelope_serde ... ok
[INFO] [stdout] test events::tests::test_event_envelope_with_session_id ... ok
[INFO] [stdout] test events::tests::test_event_envelope_with_trace_context ... ok
[INFO] [stdout] test events::tests::test_event_id_default ... ok
[INFO] [stdout] test events::tests::test_event_id_display ... ok
[INFO] [stdout] test events::tests::test_event_id_from_github_delivery ... ok
[INFO] [stdout] test events::tests::test_event_id_new ... ok
[INFO] [stdout] test events::tests::test_event_id_serde ... ok
[INFO] [stdout] test events::tests::test_event_metadata_customization ... ok
[INFO] [stdout] test events::tests::test_event_metadata_default ... ok
[INFO] [stdout] test events::tests::test_event_metadata_received_at ... ok
[INFO] [stdout] test events::tests::test_event_payload_parse_issue ... ok
[INFO] [stdout] test events::tests::test_event_payload_parse_pull_request ... ok
[INFO] [stdout] test events::tests::test_event_payload_new ... ok
[INFO] [stdout] test events::tests::test_event_source_enum_variants ... ok
[INFO] [stdout] test events::tests::test_event_payload_serde ... ok
[INFO] [stdout] test events::tests::test_event_source_variants ... ok
[INFO] [stdout] test events::tests::test_issue_action_variants ... ok
[INFO] [stdout] test client::workflow::tests::workflow_run_operations::test_cancel_workflow_run ... ok
[INFO] [stdout] test events::tests::test_module_exports ... ok
[INFO] [stdout] test events::tests::test_event_source_serde ... ok
[INFO] [stdout] test events::tests::test_trace_context_creation ... ok
[INFO] [stdout] test events::tests::test_session_id_strategy_variants ... ok
[INFO] [stdout] test events::tests::test_pull_request_action_variants ... ok
[INFO] [stdout] test webhook::handler::tests::test_handler_can_access_event_metadata ... ok
[INFO] [stdout] test webhook::handler::tests::test_handler_error_is_propagated ... ok
[INFO] [stdout] test webhook::handler::tests::test_handler_processes_multiple_event_types ... ok
[INFO] [stdout] test events::tests::test_trace_context_no_parent ... ok
[INFO] [stdout] test webhook::handler::tests::test_handler_receives_event_envelope ... ok
[INFO] [stdout] test events::tests::test_trace_context_serde ... ok
[INFO] [stdout] test webhook::handler::tests::test_handler_supports_concurrent_execution ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_handler_errors_dont_affect_response ... ok
[INFO] [stdout] test client::tests::rate_limiting_tests::test_secondary_rate_limit_response ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_processes_different_event_types ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_processes_valid_webhook ... ok
[INFO] [stdout] test webhook::handler::tests::test_handler_supports_async_operations ... ok
[INFO] [stdout] test client::workflow::tests::workflow_run_operations::test_rerun_workflow_run ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_rejects_invalid_signature ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_rejects_malformed_json ... ok
[INFO] [stdout] test client::workflow::tests::workflow_run_operations::test_list_workflow_runs ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_rejects_missing_event_type ... ok
[INFO] [stdout] test webhook::receiver::tests::test_webhook_request_case_insensitive_headers ... ok
[INFO] [stdout] test webhook::receiver::tests::test_webhook_response_status_codes ... ok
[INFO] [stdout] test webhook::tests::test_module_exports_signature_validator ... ok
[INFO] [stdout] test webhook::validation::tests::test_debug_output_does_not_expose_secrets ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_rejects_missing_signature ... ok
[INFO] [stdout] test webhook::validation::tests::test_uses_constant_time_comparison ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_empty_payload ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_empty_signature ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_returns_response_quickly ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_github_example_payload ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_invalid_hex_encoding ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_missing_prefix ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_modified_signature ... ok
[INFO] [stdout] test webhook::receiver::tests::test_webhook_request_header_extraction ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_tampered_payload ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_special_characters_in_secret ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_valid_signature ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_wrong_secret ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_wrong_algorithm_prefix ... ok
[INFO] [stdout] test client::workflow::tests::workflow_operations::test_get_workflow ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_unicode_in_payload ... ok
[INFO] [stdout] test client::workflow::tests::workflow_operations::test_trigger_workflow ... ok
[INFO] [stdout] test client::workflow::tests::workflow_operations::test_get_workflow_not_found ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_invokes_multiple_handlers ... ok
[INFO] [stdout] test client::workflow::tests::workflow_operations::test_list_workflows ... ok
[INFO] [stdout] test client::workflow::tests::workflow_operations::test_trigger_workflow_with_inputs ... ok
[INFO] [stdout] test client::workflow::tests::workflow_run_operations::test_get_workflow_run ... ok
[INFO] [stdout] test webhook::receiver::tests::test_receiver_invokes_handlers_async ... ok
[INFO] [stdout] test webhook::validation::tests::test_validate_with_large_payload ... ok
[INFO] [stdout] test client::workflow::tests::error_handling::test_workflow_server_error ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_429_without_retry_after_uses_default_delay has been running for over 60 seconds
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_secondary_rate_limit_handling_integration has been running for over 60 seconds
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_403_secondary_rate_limit_retry has been running for over 60 seconds
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_secondary_rate_limit_handling_integration ... ok
[INFO] [stdout] test client::installation::tests::rate_limit_integration_tests::test_429_without_retry_after_uses_default_delay ... ok
[INFO] [stdout] test client::installation::tests::retry_logic_tests::test_403_secondary_rate_limit_retry ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 601 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out; finished in 62.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests github_bot_sdk
[INFO] [stdout] 
[INFO] [stdout] running 120 tests
[INFO] [stdout] test src/auth/jwt.rs - auth::jwt::PrivateKey::from_pem (line 228) - compile ... ok
[INFO] [stdout] test src/auth/jwt.rs - auth::jwt::RS256JwtGenerator (line 91) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth (line 177) - compile ... ok
[INFO] [stdout] test src/auth/jwt.rs - auth::jwt::RS256JwtGenerator::new (line 115) - compile ... ok
[INFO] [stdout] test src/auth/jwt.rs - auth::jwt::JwtGenerator (line 28) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::Installation (line 934) - compile ... ok
[INFO] [stdout] test src/auth/jwt.rs - auth::jwt::JwtGenerator::generate_jwt (line 63) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::AuthenticationProvider::installation_token (line 1099) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::AuthenticationProvider::app_token (line 1072) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth (line 91) - compile ... ok
[INFO] [stdout] test src/auth/jwt.rs - auth::jwt::RS256JwtGenerator::with_expiration (line 142) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::CommitDetails (line 76) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::CommitReference (line 147) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::FullCommit (line 21) - compile ... ok
[INFO] [stdout] test src/client/app.rs - client::app::App (line 18) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::Comparison (line 215) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::FileChange (line 282) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 114) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::GitSignature (line 120) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::Verification (line 173) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::RepositoriesClient::get_commit (line 372) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::RepositoriesClient::compare (line 560) - compile ... ok
[INFO] [stdout] test src/client/commit.rs - client::commit::RepositoriesClient::list_commits (line 442) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth (line 151) ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 129) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth (line 68) ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 183) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 99) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 216) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 199) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 150) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 28) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 84) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth (line 48) ... ok
[INFO] [stdout] test src/client/mod.rs - client::GitHubClient::get_app (line 569) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::GitHubAppId (line 270) ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::GitHubAppId::new (line 285) ... ok
[INFO] [stdout] test src/client/mod.rs - client::GitHubClient::builder (line 529) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client::GitHubClient::get_as_app (line 812) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client::GitHubClient::get_installation (line 723) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client::GitHubClient::post_as_app (line 881) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::InstallationId (line 328) ... ok
[INFO] [stdout] test src/client/mod.rs - client::GitHubClient (line 499) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client::GitHubClient::list_installations (line 643) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::InstallationToken::has_permission (line 675) ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::JsonWebToken (line 460) ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::InstallationToken (line 564) ... ok
[INFO] [stdout] test src/client/pull_request.rs - client::pull_request::PullRequestsClient::list (line 359) - compile ... ok
[INFO] [stdout] test src/client/rate_limit.rs - client::rate_limit::parse_rate_limit_from_headers (line 167) - compile ... ok
[INFO] [stdout] test src/auth/mod.rs - auth::InstallationPermissions (line 769) ... ok
[INFO] [stdout] test src/client/release.rs - client::release::ReleasesClient::create (line 389) - compile ... ok
[INFO] [stdout] test src/client/pull_request.rs - client::pull_request::CreatePullRequestRequest::maintainer_can_modify (line 207) ... ok
[INFO] [stdout] test src/client/release.rs - client::release::ReleasesClient::list (line 217) - compile ... ok
[INFO] [stdout] test src/client/release.rs - client::release::ReleasesClient::get (line 347) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::create_branch (line 535) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 61) ... ok
[INFO] [stdout] test src/client/mod.rs - client::ClientConfig (line 359) ... ok
[INFO] [stdout] test src/client/release.rs - client::release::ReleasesClient::delete (line 498) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::create_ref (line 334) - compile ... ok
[INFO] [stdout] test src/client/release.rs - client::release::ReleasesClient::get_by_tag (line 300) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::create_tag (line 581) - compile ... ok
[INFO] [stdout] test src/client/release.rs - client::release::ReleasesClient::get_latest (line 259) - compile ... ok
[INFO] [stdout] test src/client/mod.rs - client (line 243) ... ok
[INFO] [stdout] test src/client/pagination.rs - client::pagination::extract_page_number (line 176) ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::delete_ref (line 447) - compile ... ok
[INFO] [stdout] test src/client/pagination.rs - client::pagination::PagedResponse<T>::next_page_number (line 95) ... ok
[INFO] [stdout] test src/client/release.rs - client::release::ReleasesClient::update (line 446) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::get_branch (line 243) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::list_tags (line 491) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::get (line 156) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::get_ref (line 288) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::list_branches (line 199) - compile ... ok
[INFO] [stdout] test src/client/repository.rs - client::repository::RepositoriesClient::update_ref (line 393) - compile ... ok
[INFO] [stdout] test src/client/workflow.rs - client::workflow::WorkflowsClient::cancel_run (line 500) - compile ... ok
[INFO] [stdout] test src/client/workflow.rs - client::workflow::WorkflowsClient::list (line 237) - compile ... ok
[INFO] [stdout] test src/client/workflow.rs - client::workflow::WorkflowsClient::get_run (line 453) - compile ... ok
[INFO] [stdout] test src/client/workflow.rs - client::workflow::WorkflowsClient::rerun_run (line 542) - compile ... ok
[INFO] [stdout] test src/client/workflow.rs - client::workflow::WorkflowsClient::get (line 287) - compile ... ok
[INFO] [stdout] test src/client/release.rs - client::release::CreateReleaseRequest::generate_release_notes (line 133) ... ok
[INFO] [stdout] test src/events/mod.rs - events (line 19) - compile ... ok
[INFO] [stdout] test src/client/workflow.rs - client::workflow::WorkflowsClient::list_runs (line 396) - compile ... ok
[INFO] [stdout] test src/client/workflow.rs - client::workflow::WorkflowsClient::trigger (line 338) - compile ... ok
[INFO] [stdout] test src/events/mod.rs - events (line 42) - compile ... ok
[INFO] [stdout] test src/events/processor.rs - events::processor::EventProcessor (line 70) - compile ... ok
[INFO] [stdout] test src/client/rate_limit.rs - client::rate_limit::RateLimit (line 47) ... ok
[INFO] [stdout] test src/client/rate_limit.rs - client::rate_limit::RateLimitContext (line 20) ... ok
[INFO] [stdout] test src/client/rate_limit.rs - client::rate_limit::RateLimiter::new (line 242) ... ok
[INFO] [stdout] test src/client/retry.rs - client::retry::RetryPolicy::without_jitter (line 144) ... ok
[INFO] [stdout] test src/client/retry.rs - client::retry::RetryPolicy::calculate_delay (line 165) ... ok
[INFO] [stdout] test src/client/rate_limit.rs - client::rate_limit::RateLimiter (line 208) ... ok
[INFO] [stdout] test src/client/retry.rs - client::retry::RetryPolicy::with_jitter (line 128) ... ok
[INFO] [stdout] test src/lib.rs - (line 119) - compile ... ok
[INFO] [stdout] test src/client/retry.rs - client::retry::detect_secondary_rate_limit (line 358) ... ok
[INFO] [stdout] test src/webhook/mod.rs - webhook (line 144) ... ignored
[INFO] [stdout] test src/lib.rs - (line 86) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 102) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 57) - compile ... ok
[INFO] [stdout] test src/client/retry.rs - client::retry::calculate_rate_limit_delay (line 285) ... ok
[INFO] [stdout] test src/client/rate_limit.rs - client::rate_limit::RateLimit::is_near_exhaustion (line 127) ... ok
[INFO] [stdout] test src/client/retry.rs - client::retry::parse_retry_after (line 230) ... ok
[INFO] [stdout] test src/webhook/handler.rs - webhook::handler::WebhookHandler (line 56) - compile ... ok
[INFO] [stdout] test src/webhook/mod.rs - webhook (line 91) - compile ... ok
[INFO] [stdout] test src/events/mod.rs - events::EventEnvelope::new (line 159) ... ok
[INFO] [stdout] test src/events/mod.rs - events::EventEnvelope (line 88) ... ok
[INFO] [stdout] test src/webhook/receiver.rs - webhook::receiver::WebhookReceiver::new (line 229) - compile ... ok
[INFO] [stdout] test src/webhook/receiver.rs - webhook::receiver::WebhookReceiver::add_handler (line 261) - compile ... ok
[INFO] [stdout] test src/webhook/receiver.rs - webhook::receiver::WebhookReceiver (line 201) - compile ... ok
[INFO] [stdout] test src/webhook/handler.rs - webhook::handler::WebhookHandler::handle_event (line 92) - compile ... ok
[INFO] [stdout] test src/webhook/mod.rs - webhook (line 207) - compile ... ok
[INFO] [stdout] test src/webhook/handler.rs - webhook::handler (line 15) - compile ... ok
[INFO] [stdout] test src/webhook/receiver.rs - webhook::receiver (line 21) - compile ... ok
[INFO] [stdout] test src/webhook/mod.rs - webhook (line 32) - compile ... ok
[INFO] [stdout] test src/webhook/validation.rs - webhook::validation::SignatureValidator::new (line 58) - compile ... ok
[INFO] [stdout] test src/events/mod.rs - events::EntityType::from_event_type (line 332) ... ok
[INFO] [stdout] test src/events/mod.rs - events::EventId (line 248) ... ok
[INFO] [stdout] test src/webhook/validation.rs - webhook::validation::SignatureValidator (line 25) - compile ... ok
[INFO] [stdout] test src/webhook/validation.rs - webhook::validation::SignatureValidator::validate (line 89) - compile ... ok
[INFO] [stdout] test src/events/session.rs - events::session::SessionManager (line 14) ... ok
[INFO] [stdout] test src/lib.rs - (line 146) ... ok
[INFO] [stdout] test src/webhook/receiver.rs - webhook::receiver::WebhookRequest (line 72) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 119 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 20.56s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343", kill_on_drop: false }`
[INFO] [stdout] 0522fbef55e7222b318b60b7390a7cfef3dfe35aefb512bfbf48f36c75d7d343
