[INFO] fetching crate gitgrip 1.5.0...
[INFO] checking gitgrip-1.5.0 against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] extracting crate gitgrip 1.5.0 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate gitgrip 1.5.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate gitgrip 1.5.0
[INFO] tweaked toml for crates.io crate gitgrip 1.5.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate gitgrip 1.5.0 on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate gitgrip 1.5.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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: file `/workspace/builds/worker-5-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: explicit `package.readme` can be inferred
[INFO] [stderr]    --> Cargo.toml:170:1
[INFO] [stderr]     |
[INFO] [stderr] 170 | readme = "README.md"
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:166:12
[INFO] [stderr]     |
[INFO] [stderr] 166 | homepage = "https://github.com/synapt-dev/grip"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 | repository = "https://github.com/synapt-dev/grip"
[INFO] [stderr]     |              ------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gitgrip` (manifest) generated 3 warnings
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded openssl-sys v0.9.113
[INFO] [stderr]   Downloaded gix-actor v0.33.2
[INFO] [stderr]   Downloaded gix-lock v15.0.1
[INFO] [stderr]   Downloaded gix-submodule v0.16.0
[INFO] [stderr]   Downloaded gix-ignore v0.12.1
[INFO] [stderr]   Downloaded gix-fs v0.12.1
[INFO] [stderr]   Downloaded gix-glob v0.17.1
[INFO] [stderr]   Downloaded gix-url v0.28.2
[INFO] [stderr]   Downloaded gix-negotiate v0.17.0
[INFO] [stderr]   Downloaded gix-hashtable v0.6.0
[INFO] [stderr]   Downloaded gix-revwalk v0.17.0
[INFO] [stderr]   Downloaded gix-hash v0.15.1
[INFO] [stderr]   Downloaded gix-prompt v0.8.9
[INFO] [stderr]   Downloaded gix-tempfile v15.0.0
[INFO] [stderr]   Downloaded gix-attributes v0.23.1
[INFO] [stderr]   Downloaded gix-refspec v0.27.0
[INFO] [stderr]   Downloaded maybe-async v0.2.10
[INFO] [stderr]   Downloaded gix-bitmap v0.2.16
[INFO] [stderr]   Downloaded gix-pathspec v0.8.1
[INFO] [stderr]   Downloaded gix-packetline-blocking v0.18.3
[INFO] [stderr]   Downloaded gix-worktree v0.38.0
[INFO] [stderr]   Downloaded gix-commitgraph v0.25.1
[INFO] [stderr]   Downloaded gix-packetline v0.18.4
[INFO] [stderr]   Downloaded gix-credentials v0.25.1
[INFO] [stderr]   Downloaded gix-revision v0.31.1
[INFO] [stderr]   Downloaded gix-features v0.39.1
[INFO] [stderr]   Downloaded gix-filter v0.15.0
[INFO] [stderr]   Downloaded gix-index v0.37.0
[INFO] [stderr]   Downloaded gix-protocol v0.46.1
[INFO] [stderr]   Downloaded gix-traverse v0.43.1
[INFO] [stderr]   Downloaded gix-discover v0.37.0
[INFO] [stderr]   Downloaded assert_cmd v2.2.0
[INFO] [stderr]   Downloaded gix-transport v0.43.1
[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 gix-object v0.46.1
[INFO] [stderr]   Downloaded gix-config v0.42.0
[INFO] [stderr]   Downloaded gix-odb v0.65.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.12
[INFO] [stderr]   Downloaded prodash v29.0.2
[INFO] [stderr]   Downloaded gix-pack v0.55.0
[INFO] [stderr]   Downloaded openssl v0.10.77
[INFO] [stderr]   Downloaded gix v0.68.0
[INFO] [stderr]   Downloaded octocrab v0.41.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9628348794fe13b4b524d4cbb8dc1859e3bf95c9c89acb3552ff2718f4e117dd
[INFO] running `Command { std: "docker" "start" "9628348794fe13b4b524d4cbb8dc1859e3bf95c9c89acb3552ff2718f4e117dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9628348794fe13b4b524d4cbb8dc1859e3bf95c9c89acb3552ff2718f4e117dd", 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" "9628348794fe13b4b524d4cbb8dc1859e3bf95c9c89acb3552ff2718f4e117dd" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9628348794fe13b4b524d4cbb8dc1859e3bf95c9c89acb3552ff2718f4e117dd", 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" "9628348794fe13b4b524d4cbb8dc1859e3bf95c9c89acb3552ff2718f4e117dd" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "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: explicit `package.readme` can be inferred
[INFO] [stderr]    --> Cargo.toml:170:1
[INFO] [stderr]     |
[INFO] [stderr] 170 | readme = "README.md"
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:166:12
[INFO] [stderr]     |
[INFO] [stderr] 166 | homepage = "https://github.com/synapt-dev/grip"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 | repository = "https://github.com/synapt-dev/grip"
[INFO] [stderr]     |              ------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gitgrip` (manifest) generated 3 warnings
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling openssl v0.10.77
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking iri-string v0.7.12
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking arc-swap v1.9.1
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]    Compiling gitgrip v1.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking which v7.0.3
[INFO] [stderr]     Checking hashlink v0.11.0
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking regex-automata v0.4.14
[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 libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking rustls-webpki v0.103.12
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking predicates v3.1.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]     Checking tokio v1.52.0
[INFO] [stderr]    Compiling snafu-derive v0.8.9
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking simple_asn1 v0.6.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking dialoguer v0.11.0
[INFO] [stderr]     Checking clap_complete v4.6.2
[INFO] [stderr]     Checking snafu v0.8.9
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking jsonwebtoken v9.3.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking quick-xml v0.37.5
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking rusqlite v0.39.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking deadpool v0.12.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking git2 v0.19.0
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[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: 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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_reference_repo`, `add_repo_with_files`, and `with_manifest_repo` are never used
[INFO] [stdout]    --> tests/common/fixtures.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl WorkspaceBuilder {
[INFO] [stdout]     | --------------------- methods in this implementation
[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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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: 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 `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 `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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | 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 `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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `remotes_dir` is never read
[INFO] [stdout]   --> tests/common/playground.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PlaygroundHarness {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub remotes_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remote_url` and `run_in_workspace` are never used
[INFO] [stdout]   --> tests/common/playground.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl PlaygroundHarness {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn remote_url(&self, name: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn run_in_workspace<I, S>(&self, args: I)
[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 `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 `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_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | pub async fn mock_merge_pr_405_generic(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_rate_limited` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | 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_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | 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 `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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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 `setup_github_mock` is never used
[INFO] [stdout]   --> tests/common/mock_platform.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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 `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 `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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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 `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 `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_get_pr` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub async fn mock_pr_diff(server: &MockServer, number: u64, diff_content: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_server_error` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | 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_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | 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 `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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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`, 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 `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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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 `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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | 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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &str) {
[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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(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:625:14
[INFO] [stdout]     |
[INFO] [stdout] 625 | 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:635:14
[INFO] [stdout]     |
[INFO] [stdout] 635 | 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:649:14
[INFO] [stdout]     |
[INFO] [stdout] 649 | 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:662:14
[INFO] [stdout]     |
[INFO] [stdout] 662 | 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:676:14
[INFO] [stdout]     |
[INFO] [stdout] 676 | 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:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | 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:710:14
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub async fn mock_server_error_put(server: &MockServer, path_str: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_repo_at_mock` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:727:8
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub fn point_repo_at_mock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info_with_methods` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:745:14
[INFO] [stdout]     |
[INFO] [stdout] 745 | pub async fn mock_repo_info_with_methods(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_repo_info` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 | 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:781:14
[INFO] [stdout]     |
[INFO] [stdout] 781 | 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:795:4
[INFO] [stdout]     |
[INFO] [stdout] 795 | 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:810:14
[INFO] [stdout]     |
[INFO] [stdout] 810 | 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:821:14
[INFO] [stdout]     |
[INFO] [stdout] 821 | 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:835:14
[INFO] [stdout]     |
[INFO] [stdout] 835 | 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:849:14
[INFO] [stdout]     |
[INFO] [stdout] 849 | 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:865:14
[INFO] [stdout]     |
[INFO] [stdout] 865 | 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:893:14
[INFO] [stdout]     |
[INFO] [stdout] 893 | pub async fn mock_bb_reviewers(server: &MockServer, id: u64, reviewers: Vec<bool>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_branch_exists` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub async fn mock_branch_exists(server: &MockServer, owner: &str, repo: &str, branch: &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_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:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | 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:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | 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:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | 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:323:14
[INFO] [stdout]     |
[INFO] [stdout] 323 | 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:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 | 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:353:14
[INFO] [stdout]     |
[INFO] [stdout] 353 | 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:367:14
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub async fn mock_merge_pr(server: &MockServer, number: u64, merged: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_lifecycle` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub async fn mock_pr_lifecycle(server: &MockServer, number: u64) -> Arc<AtomicBool> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_merge_pr_behind` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 | 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:466:14
[INFO] [stdout]     |
[INFO] [stdout] 466 | 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:480:14
[INFO] [stdout]     |
[INFO] [stdout] 480 | 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:497:14
[INFO] [stdout]     |
[INFO] [stdout] 497 | 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:514:14
[INFO] [stdout]     |
[INFO] [stdout] 514 | 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:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 | pub async fn mock_check_runs(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_legacy_combined_status` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub async fn mock_legacy_combined_status(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_update_pull_request` is never used
[INFO] [stdout]    --> tests/common/mock_platform.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn mock_update_pull_request(server: &MockServer, number: u64) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_pr_diff` is never used
[WARN] too many lines in the log, truncating it
