[INFO] fetching crate gitgrip 1.0.0...
[INFO] checking gitgrip-1.0.0 against f10db292a3733b5c67c8da8c7661195ff4b05774 for pr-158914
[INFO] extracting crate gitgrip 1.0.0 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate gitgrip 1.0.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate gitgrip 1.0.0
[INFO] tweaked toml for crates.io crate gitgrip 1.0.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate gitgrip 1.0.0 on toolchain f10db292a3733b5c67c8da8c7661195ff4b05774
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate gitgrip 1.0.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" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: file `/workspace/builds/worker-1-tc1/source/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `bin` target `gitgrip`
[INFO] [stderr]   * `bin` target `gr`
[INFO] [stderr] warning: `gitgrip` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rsqlite-vfs v0.1.0
[INFO] [stderr]   Downloaded env_home v0.1.0
[INFO] [stderr]   Downloaded which v7.0.3
[INFO] [stderr]   Downloaded hashlink v0.11.0
[INFO] [stderr]   Downloaded rusqlite v0.39.0
[INFO] [stderr]   Downloaded faster-hex v0.9.0
[INFO] [stderr]   Downloaded gix-hash v0.15.1
[INFO] [stderr]   Downloaded gix-validate v0.9.4
[INFO] [stderr]   Downloaded gix-trace v0.1.18
[INFO] [stderr]   Downloaded gix-utils v0.1.14
[INFO] [stderr]   Downloaded gix-quote v0.4.15
[INFO] [stderr]   Downloaded gix-date v0.9.4
[INFO] [stderr]   Downloaded gix-ignore v0.12.1
[INFO] [stderr]   Downloaded gix-config-value v0.14.12
[INFO] [stderr]   Downloaded gix-revwalk v0.17.0
[INFO] [stderr]   Downloaded gix-bitmap v0.2.16
[INFO] [stderr]   Downloaded unicode-bom v2.0.3
[INFO] [stderr]   Downloaded gix-lock v15.0.1
[INFO] [stderr]   Downloaded gix-glob v0.17.1
[INFO] [stderr]   Downloaded gix-negotiate v0.17.0
[INFO] [stderr]   Downloaded gix-features v0.39.1
[INFO] [stderr]   Downloaded gix-chunk v0.4.12
[INFO] [stderr]   Downloaded gix-sec v0.10.12
[INFO] [stderr]   Downloaded gix-command v0.3.11
[INFO] [stderr]   Downloaded gix-prompt v0.8.9
[INFO] [stderr]   Downloaded gix-url v0.28.2
[INFO] [stderr]   Downloaded gix-submodule v0.16.0
[INFO] [stderr]   Downloaded gix-worktree v0.38.0
[INFO] [stderr]   Downloaded gix-hashtable v0.6.0
[INFO] [stderr]   Downloaded gix-actor v0.33.2
[INFO] [stderr]   Downloaded gix-fs v0.12.1
[INFO] [stderr]   Downloaded gix-attributes v0.23.1
[INFO] [stderr]   Downloaded gix-traverse v0.43.1
[INFO] [stderr]   Downloaded openssl-sys v0.9.113
[INFO] [stderr]   Downloaded gix-refspec v0.27.0
[INFO] [stderr]   Downloaded clru v0.6.3
[INFO] [stderr]   Downloaded gix-discover v0.37.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.12
[INFO] [stderr]   Downloaded gix-tempfile v15.0.0
[INFO] [stderr]   Downloaded kstring v2.0.2
[INFO] [stderr]   Downloaded gix-commitgraph v0.25.1
[INFO] [stderr]   Downloaded gix-pathspec v0.8.1
[INFO] [stderr]   Downloaded gix-packetline v0.18.4
[INFO] [stderr]   Downloaded maybe-async v0.2.10
[INFO] [stderr]   Downloaded gix-revision v0.31.1
[INFO] [stderr]   Downloaded gix-object v0.46.1
[INFO] [stderr]   Downloaded gix-filter v0.15.0
[INFO] [stderr]   Downloaded gix-credentials v0.25.1
[INFO] [stderr]   Downloaded gix-protocol v0.46.1
[INFO] [stderr]   Downloaded gix-index v0.37.0
[INFO] [stderr]   Downloaded gix-odb v0.65.0
[INFO] [stderr]   Downloaded gix-packetline-blocking v0.18.3
[INFO] [stderr]   Downloaded gix-transport v0.43.1
[INFO] [stderr]   Downloaded gix-config v0.42.0
[INFO] [stderr]   Downloaded gix-ref v0.49.1
[INFO] [stderr]   Downloaded gix-diff v0.48.0
[INFO] [stderr]   Downloaded clap_complete v4.6.2
[INFO] [stderr]   Downloaded prodash v29.0.2
[INFO] [stderr]   Downloaded gix-pack v0.55.0
[INFO] [stderr]   Downloaded winnow v0.6.26
[INFO] [stderr]   Downloaded git2 v0.19.0
[INFO] [stderr]   Downloaded openssl v0.10.77
[INFO] [stderr]   Downloaded gix v0.68.0
[INFO] [stderr]   Downloaded octocrab v0.41.2
[INFO] [stderr]   Downloaded libz-sys v1.1.28
[INFO] [stderr]   Downloaded libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]   Downloaded libsqlite3-sys v0.37.0
[INFO] [stderr]   Downloaded sqlite-wasm-rs v0.5.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 81b08d2128883a7e3e9e0ae1a395236711132d19d03bd23abd5ae95be25a79c8
[INFO] running `Command { std: "docker" "start" "81b08d2128883a7e3e9e0ae1a395236711132d19d03bd23abd5ae95be25a79c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "81b08d2128883a7e3e9e0ae1a395236711132d19d03bd23abd5ae95be25a79c8", 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" "81b08d2128883a7e3e9e0ae1a395236711132d19d03bd23abd5ae95be25a79c8" "/opt/rustwide/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "81b08d2128883a7e3e9e0ae1a395236711132d19d03bd23abd5ae95be25a79c8", 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" "81b08d2128883a7e3e9e0ae1a395236711132d19d03bd23abd5ae95be25a79c8" "/opt/rustwide/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: file `/opt/rustwide/workdir/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `bin` target `gitgrip`
[INFO] [stderr]   * `bin` target `gr`
[INFO] [stderr] warning: `gitgrip` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking hashbrown v0.17.0
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling openssl v0.10.77
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking colorchoice v1.0.5
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking iri-string v0.7.12
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking tokio v1.52.0
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling snafu-derive v0.8.9
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking arc-swap v1.9.1
[INFO] [stderr]     Checking hashlink v0.11.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking simple_asn1 v0.6.4
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling openssl-sys v0.9.113
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libz-sys v1.1.28
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]    Compiling libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling gitgrip v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking env_home v0.1.0
[INFO] [stderr]     Checking shell-words v1.1.1
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking snafu v0.8.9
[INFO] [stderr]     Checking which v7.0.3
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking dialoguer v0.11.0
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking clap_complete v4.6.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking predicates-core v1.0.10
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking predicates v3.1.4
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking predicates-tree v1.0.13
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking quick-xml v0.37.5
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking deadpool v0.12.3
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking rustls-webpki v0.103.12
[INFO] [stderr]     Checking jsonwebtoken v9.3.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking git2 v0.19.0
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking rusqlite v0.39.0
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking wiremock v0.6.5
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking octocrab v0.41.2
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tempfile::TempDir;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_suffix` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn random_suffix() -> String {
[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 `gr_binary` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn gr_binary() -> std::path::PathBuf {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_gr` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn run_gr(args: &[&str], workspace: &Path) -> std::process::Output {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_gr_in_dir` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn run_gr_in_dir(args: &[&str], workspace: &Path) -> std::process::Output {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_repo` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn clone_repo(url: &str, name: &str, parent: &Path) -> std::path::PathBuf {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_file` is never used
[INFO] [stdout]    --> tests/multi_provider_e2e.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn create_test_file(repo_path: &Path, filename: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `git_in_repo` is never used
[INFO] [stdout]    --> tests/multi_provider_e2e.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn git_in_repo(args: &[&str], repo_path: &Path) -> std::process::Output {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPO1` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 |         pub const REPO1: &str = "git@github.com:laynepenney/gitgrip-test-1.git";
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPO2` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |         pub const REPO2: &str = "git@github.com:laynepenney/gitgrip-test-2.git";
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANIFEST` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 |         pub const MANIFEST: &str = "git@github.com:laynepenney/gitgrip-test-manifest.git";
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPO1` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 |         pub const REPO1: &str = "git@gitlab.com:laynepenney/gitgrip-test-1.git";
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPO2` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 28 |         pub const REPO2: &str = "git@gitlab.com:laynepenney/gitgrip-test-2.git";
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANIFEST` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:29:19
[INFO] [stdout]    |
[INFO] [stdout] 29 |         pub const MANIFEST: &str = "git@gitlab.com:laynepenney/gitgrip-test-manifest.git";
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPO1` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 33 |         pub const REPO1: &str = "git@ssh.dev.azure.com:v3/laynepenney/gitgrip/gitgrip-test-1";
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockSpawnState` is never constructed
[INFO] [stdout]   --> tests/test_spawn_tmux.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct MockSpawnState {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TeamDbEntry` is never constructed
[INFO] [stdout]   --> tests/test_spawn_tmux.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct TeamDbEntry {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPO2` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 |         pub const REPO2: &str = "git@ssh.dev.azure.com:v3/laynepenney/gitgrip/gitgrip-test-2";
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANIFEST` is never used
[INFO] [stdout]   --> tests/multi_provider_e2e.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 |         pub const MANIFEST: &str =
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[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 `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_files` and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[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 `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkspaceFixture` is never constructed
[INFO] [stdout]   --> tests/common/fixtures.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `repo_path`, `remote_path`, `remote_url`, and `load_manifest` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 30 |     /// Get the path to a repo within the workspace.
[INFO] [stdout] 31 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn load_manifest(&self) -> gitgrip::core::manifest::Manifest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkspaceBuilder` is never constructed
[INFO] [stdout]   --> tests/common/fixtures.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct WorkspaceBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepoSpec` is never constructed
[INFO] [stdout]   --> tests/common/fixtures.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  89 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn add_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn build(self) -> WorkspaceFixture {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_manifest` is never used
[INFO] [stdout]    --> tests/common/fixtures.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn generate_manifest(repos: &[RepoSpec], remotes_dir: &Path) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_bare_repo` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn init_bare_repo(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_repo` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn init_repo(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_file` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn commit_file(repo_path: &Path, filename: &str, content: &str, message: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn push_upstream(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn add_remote(repo_path: &Path, name: &str, url: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_head_sha` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn get_head_sha(repo_path: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_repo` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn clone_repo(url: &str, dest: &Path) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `configure_identity` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn configure_identity(repo_path: &Path) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `git` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn git(dir: &Path, args: &[&str]) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `git_output` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn git_output(dir: &Path, args: &[&str]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[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 `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `repo_names` and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remote_url` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[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 `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, and `add_repo_with_files` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `repo_path`, `remote_path`, and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 30 |     /// Get the path to a repo within the workspace.
[INFO] [stdout] 31 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/cli_tests.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let mut config = GriptreeConfig::new("feat/base", &ws.workspace_root.to_string_lossy());
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path`, `remote_url`, and `load_manifest` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn load_manifest(&self) -> gitgrip::core::manifest::Manifest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `repo_path`, `remote_path`, and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 30 |     /// Get the path to a repo within the workspace.
[INFO] [stdout] 31 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[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 `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[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 `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `repo_names` and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_on_branch` is never used
[INFO] [stdout]  --> tests/common/assertions.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn assert_on_branch(repo_path: &Path, expected: &str) {
[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 `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_not_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn assert_branch_not_exists(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_file_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn assert_file_exists(path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remotes_dir`, `repo_names`, and `reference_repos` are never read
[INFO] [stdout]   --> tests/common/fixtures.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     /// Names of repos that were created.
[INFO] [stdout] 24 |     pub repo_names: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     /// Names of reference repos.
[INFO] [stdout] 26 |     pub reference_repos: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_path` and `remote_url` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `with_remote` is never read
[INFO] [stdout]   --> tests/common/fixtures.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     with_remote: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_repo_with_groups`, `add_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn push_branch(repo_path: &Path, remote: &str, branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn current_branch(repo_path: &Path) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_exists` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn branch_exists(repo_path: &Path, branch_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_repo_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn github_repo_json(owner: &str, repo: &str) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn github_pr_json(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn mock_create_pr(server: &MockServer, number: u64, html_url: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub async fn mock_get_pr(server: &MockServer, number: u64, state: &str, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_list_prs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:351:14
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub async fn mock_list_prs(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:365:14
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:380:14
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub async fn mock_merge_pr_behind(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_protected` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_merge_pr_protected(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:408:14
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub async fn mock_update_branch(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_branch_conflict` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:425:14
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn mock_update_branch_conflict(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_reviews` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:442:14
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub async fn mock_pr_reviews(server: &MockServer, number: u64, reviews: Vec<(&str, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_check_runs` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:511:14
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_not_found` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:521:14
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub async fn mock_not_found(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:535:14
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub async fn mock_server_error(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_405_generic` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_create_pr_validation_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:562:14
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub async fn mock_create_pr_validation_error(server: &MockServer) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:577:14
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub async fn mock_rate_limited(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error_put` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:596:14
[INFO] [stdout]     |
[INFO] [stdout] 596 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:609:14
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub async fn mock_repo_info(server: &MockServer, owner: &str, repo: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_bitbucket_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:623:14
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub async fn setup_bitbucket_mock() -> (MockServer, gitgrip::platform::bitbucket::BitbucketAdapter)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bb_pr_json` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn bb_pr_json(id: u64, state: &str, head_branch: &str, base_branch: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_create_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:652:14
[INFO] [stdout]     |
[INFO] [stdout] 652 | pub async fn mock_bb_create_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:663:14
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub async fn mock_bb_get_pr(server: &MockServer, id: u64, state: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_merge_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:677:14
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub async fn mock_bb_merge_pr(server: &MockServer, id: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_find_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn mock_bb_find_pr(server: &MockServer, prs: Vec<(u64, &str)>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_status_checks` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:707:14
[INFO] [stdout]     |
[INFO] [stdout] 707 | pub async fn mock_bb_status_checks(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_bb_reviewers` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaygroundHarness` is never constructed
[INFO] [stdout]   --> tests/common/playground.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/playground.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl PlaygroundHarness {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  20 |     pub fn new(repo_names: &[&str]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn init_from_dirs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn run_from_manifest_dir<I, S>(&self, args: I)
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn run_in_workspace_output<I, S>(&self, args: I) -> std::process::Output
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn ensure_repo_identities(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn run<I, S>(&self, args: I, current_dir: &Path)
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn run_output<I, S>(&self, args: I, current_dir: &Path) -> std::process::Output
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_branch_exists` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn assert_branch_exists(repo_path: &Path, branch_name: &str) {
[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 `assert_repo_clean` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn assert_repo_clean(repo_path: &Path) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_all_on_branch` is never used
[INFO] [stdout]   --> tests/common/assertions.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn assert_all_on_branch(workspace_root: &Path, repo_names: &[String], branch: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkspaceFixture` is never constructed
[INFO] [stdout]   --> tests/common/fixtures.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct WorkspaceFixture {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `repo_path`, `remote_path`, `remote_url`, and `load_manifest` are never used
[INFO] [stdout]   --> tests/common/fixtures.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl WorkspaceFixture {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 30 |     /// Get the path to a repo within the workspace.
[INFO] [stdout] 31 |     pub fn repo_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn remote_path(&self, name: &str) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn load_manifest(&self) -> gitgrip::core::manifest::Manifest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_griptree_config` is never used
[INFO] [stdout]   --> tests/common/fixtures.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn write_griptree_config(workspace_root: &Path, branch: &str, repo: &str, upstream: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkspaceBuilder` is never constructed
[INFO] [stdout]   --> tests/common/fixtures.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct WorkspaceBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepoSpec` is never constructed
[INFO] [stdout]   --> tests/common/fixtures.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct RepoSpec {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  89 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn add_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn add_repo_with_groups(mut self, name: &str, groups: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn add_reference_repo(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn add_repo_with_files(mut self, name: &str, files: Vec<(&str, &str)>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn with_manifest_repo(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn build(self) -> WorkspaceFixture {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_manifest` is never used
[INFO] [stdout]    --> tests/common/fixtures.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn generate_manifest(repos: &[RepoSpec], remotes_dir: &Path) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_branch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn create_branch(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkout` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn checkout(repo_path: &Path, branch_name: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn fetch(repo_path: &Path, remote: &str, branch: Option<&str>) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_remote` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn remove_remote(repo_path: &Path, name: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_upstream` is never used
[INFO] [stdout]   --> tests/common/git_helpers.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn branch_upstream(repo_path: &Path, branch_name: &str) -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_contains` is never used
[INFO] [stdout]    --> tests/common/git_helpers.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn log_contains(repo_path: &Path, message: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_github_mock() -> (MockServer, gitgrip::platform::github::GitHubAdapter) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `github_user_json` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn github_user_json(login: &str, id: u64) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[WARN] too many lines in the log, truncating it
