[INFO] cloning repository https://github.com/p6m-dev/p6m-cli [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/p6m-dev/p6m-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fp6m-dev%2Fp6m-cli", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fp6m-dev%2Fp6m-cli'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 865ea1009d21afacc754019ec4542ebca1bc42dd [INFO] linting p6m-dev/p6m-cli against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fp6m-dev%2Fp6m-cli" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/p6m-dev/p6m-cli [INFO] finished tweaking git repo https://github.com/p6m-dev/p6m-cli [INFO] tweaked toml for git repo https://github.com/p6m-dev/p6m-cli written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/p6m-dev/p6m-cli on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/p6m-dev/p6m-cli 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde-value v0.7.0 [INFO] [stderr] Downloaded hyper-timeout v0.4.1 [INFO] [stderr] Downloaded is-terminal v0.4.9 [INFO] [stderr] Downloaded walkdir v2.3.3 [INFO] [stderr] Downloaded anstyle-query v1.0.0 [INFO] [stderr] Downloaded tokio-openssl v0.6.5 [INFO] [stderr] Downloaded execute-command-macro-impl v0.1.9 [INFO] [stderr] Downloaded execute-command-macro v0.1.8 [INFO] [stderr] Downloaded unicode-ident v1.0.11 [INFO] [stderr] Downloaded anstyle-wincon v1.0.2 [INFO] [stderr] Downloaded globset v0.4.13 [INFO] [stderr] Downloaded aws-types v0.56.1 [INFO] [stderr] Downloaded const_fn v0.4.9 [INFO] [stderr] Downloaded aws-smithy-async v0.56.1 [INFO] [stderr] Downloaded aws-smithy-xml v0.56.1 [INFO] [stderr] Downloaded aws-runtime v0.56.1 [INFO] [stderr] Downloaded aws-smithy-query v0.56.1 [INFO] [stderr] Downloaded aws-sdk-sso v0.30.0 [INFO] [stderr] Downloaded aws-sdk-sso v0.33.0 [INFO] [stderr] Downloaded aws-config v0.56.1 [INFO] [stderr] Downloaded clap_builder v4.3.24 [INFO] [stderr] Downloaded aws-sdk-sts v0.30.0 [INFO] [stderr] Downloaded hyper v0.14.27 [INFO] [stderr] Downloaded reqwest v0.11.24 [INFO] [stderr] Downloaded regex v1.9.3 [INFO] [stderr] Downloaded rustls v0.21.6 [INFO] [stderr] Downloaded jsonpath_lib v0.3.0 [INFO] [stderr] Downloaded object v0.32.0 [INFO] [stderr] Downloaded syn v2.0.90 [INFO] [stderr] Downloaded bstr v1.6.0 [INFO] [stderr] Downloaded regex-syntax v0.7.4 [INFO] [stderr] Downloaded git2 v0.19.0 [INFO] [stderr] Downloaded chrono v0.4.39 [INFO] [stderr] Downloaded aho-corasick v1.0.4 [INFO] [stderr] Downloaded rustls-webpki v0.101.4 [INFO] [stderr] Downloaded reqwest v0.12.4 [INFO] [stderr] Downloaded hyper v1.6.0 [INFO] [stderr] Downloaded libssh2-sys v0.3.0 [INFO] [stderr] Downloaded serde_with v3.12.0 [INFO] [stderr] Downloaded oauth2 v4.4.2 [INFO] [stderr] Downloaded regex-automata v0.3.6 [INFO] [stderr] Downloaded tz-rs v0.6.14 [INFO] [stderr] Downloaded tower-http v0.4.3 [INFO] [stderr] Downloaded octocrab v0.25.1 [INFO] [stderr] Downloaded aws-smithy-runtime v0.56.1 [INFO] [stderr] Downloaded aws-smithy-runtime-api v0.56.1 [INFO] [stderr] Downloaded aws-smithy-client v0.56.1 [INFO] [stderr] Downloaded aws-smithy-http v0.56.1 [INFO] [stderr] Downloaded aws-smithy-types v0.56.1 [INFO] [stderr] Downloaded serde_qs v0.8.5 [INFO] [stderr] Downloaded azure_core v0.19.0 [INFO] [stderr] Downloaded azure_identity v0.19.0 [INFO] [stderr] Downloaded http-types v2.12.0 [INFO] [stderr] Downloaded anstyle-parse v0.2.1 [INFO] [stderr] Downloaded minijinja v1.0.6 [INFO] [stderr] Downloaded combine v4.6.6 [INFO] [stderr] Downloaded tokio v1.43.0 [INFO] [stderr] Downloaded libz-sys v1.1.20 [INFO] [stderr] Downloaded aws-http v0.56.1 [INFO] [stderr] Downloaded aws-sigv4 v0.56.1 [INFO] [stderr] Downloaded aws-smithy-json v0.56.1 [INFO] [stderr] Downloaded aws-credential-types v0.56.1 [INFO] [stderr] Downloaded clap_complete v4.3.2 [INFO] [stderr] Downloaded cc v1.2.3 [INFO] [stderr] Downloaded bytes-utils v0.1.3 [INFO] [stderr] Downloaded pin-project v1.1.3 [INFO] [stderr] Downloaded hyper-util v0.1.10 [INFO] [stderr] Downloaded serde_yaml v0.9.34+deprecated [INFO] [stderr] Downloaded bytes v1.10.0 [INFO] [stderr] Downloaded memchr v2.5.0 [INFO] [stderr] Downloaded aws-smithy-http-tower v0.56.1 [INFO] [stderr] Downloaded outref v0.5.1 [INFO] [stderr] Downloaded aws-sdk-eks v0.33.0 [INFO] [stderr] Downloaded inquire v0.6.2 [INFO] [stderr] Downloaded base64 v0.20.0 [INFO] [stderr] Downloaded kube-client v0.83.0 [INFO] [stderr] Downloaded arc-swap v1.6.0 [INFO] [stderr] Downloaded rustls-pki-types v1.11.0 [INFO] [stderr] Downloaded unsafe-libyaml v0.2.11 [INFO] [stderr] Downloaded socket2 v0.5.8 [INFO] [stderr] Downloaded uuid v1.4.1 [INFO] [stderr] Downloaded serde v1.0.215 [INFO] [stderr] Downloaded bumpalo v3.13.0 [INFO] [stderr] Downloaded infer v0.2.3 [INFO] [stderr] Downloaded anstream v0.3.2 [INFO] [stderr] Downloaded json-patch v1.4.0 [INFO] [stderr] Downloaded kube-runtime v0.83.0 [INFO] [stderr] Downloaded socket2 v0.4.9 [INFO] [stderr] Downloaded jsonwebtoken v8.3.0 [INFO] [stderr] Downloaded snafu v0.7.5 [INFO] [stderr] Downloaded schannel v0.1.22 [INFO] [stderr] Downloaded tempfile v3.10.0 [INFO] [stderr] Downloaded serde_with_macros v3.12.0 [INFO] [stderr] Downloaded typenum v1.16.0 [INFO] [stderr] Downloaded url v2.4.0 [INFO] [stderr] Downloaded webbrowser v0.8.11 [INFO] [stderr] Downloaded clap_lex v0.5.0 [INFO] [stderr] Downloaded clap_derive v4.3.12 [INFO] [stderr] Downloaded jsonwebtokens v1.2.0 [INFO] [stderr] Downloaded kube-core v0.83.0 [INFO] [stderr] Downloaded sct v0.7.0 [INFO] [stderr] Downloaded hyper-rustls v0.24.1 [INFO] [stderr] Downloaded serde_path_to_error v0.1.14 [INFO] [stderr] Downloaded snafu-derive v0.7.5 [INFO] [stderr] Downloaded winreg v0.52.0 [INFO] [stderr] Downloaded serde_derive v1.0.215 [INFO] [stderr] Downloaded linked_hash_set v0.1.5 [INFO] [stderr] Downloaded rustls-pemfile v1.0.3 [INFO] [stderr] Downloaded libgit2-sys v0.17.0+1.8.1 [INFO] [stderr] Downloaded pin-project-internal v1.1.3 [INFO] [stderr] Downloaded httparse v1.10.0 [INFO] [stderr] Downloaded rustls-pemfile v2.1.2 [INFO] [stderr] Downloaded security-framework-sys v2.14.0 [INFO] [stderr] Downloaded iana-time-zone v0.1.57 [INFO] [stderr] Downloaded num_threads v0.1.6 [INFO] [stderr] Downloaded core-foundation v0.9.3 [INFO] [stderr] Downloaded thiserror v1.0.47 [INFO] [stderr] Downloaded anstyle v1.0.2 [INFO] [stderr] Downloaded clap v4.3.24 [INFO] [stderr] Downloaded execute v0.2.12 [INFO] [stderr] Downloaded unicode-width v0.1.10 [INFO] [stderr] Downloaded loggerv v0.7.2 [INFO] [stderr] Downloaded tokio-io-timeout v1.2.0 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.37 [INFO] [stderr] Downloaded execute-command-tokens v0.1.6 [INFO] [stderr] Downloaded newline-converter v0.2.2 [INFO] [stderr] Downloaded kube-derive v0.83.0 [INFO] [stderr] Downloaded dirs-next v2.0.0 [INFO] [stderr] Downloaded hyper-openssl v0.9.2 [INFO] [stderr] Downloaded ordered-float v2.10.1 [INFO] [stderr] Downloaded kube v0.83.0 [INFO] [stderr] Downloaded http-body v0.4.5 [INFO] [stderr] Downloaded http-range-header v0.3.1 [INFO] [stderr] Downloaded home v0.5.5 [INFO] [stderr] Downloaded doc-comment v0.3.3 [INFO] [stderr] Downloaded thiserror-impl v1.0.47 [INFO] [stderr] Downloaded dyn-clone v1.0.13 [INFO] [stderr] Downloaded simple_asn1 v0.6.2 [INFO] [stderr] Downloaded try-lock v0.2.4 [INFO] [stderr] Downloaded k8s-openapi v0.18.0 [INFO] [stderr] Downloaded windows v0.48.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e35ee3d01cc2276445ae8e20a35fd0a779bb98dcc694585188d2d8a8c56ef0b8 [INFO] running `Command { std: "docker" "start" "-a" "e35ee3d01cc2276445ae8e20a35fd0a779bb98dcc694585188d2d8a8c56ef0b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e35ee3d01cc2276445ae8e20a35fd0a779bb98dcc694585188d2d8a8c56ef0b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e35ee3d01cc2276445ae8e20a35fd0a779bb98dcc694585188d2d8a8c56ef0b8", kill_on_drop: false }` [INFO] [stdout] e35ee3d01cc2276445ae8e20a35fd0a779bb98dcc694585188d2d8a8c56ef0b8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 73653365e4838a8a6bf264336a38539ab66469d8ea95def221cd0aa20003489d [INFO] running `Command { std: "docker" "start" "-a" "73653365e4838a8a6bf264336a38539ab66469d8ea95def221cd0aa20003489d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking itoa v1.0.9 [INFO] [stderr] Compiling serde v1.0.215 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Checking once_cell v1.18.0 [INFO] [stderr] Checking bytes v1.10.0 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Compiling parking_lot_core v0.9.8 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking futures-sink v0.3.28 [INFO] [stderr] Compiling futures-task v0.3.28 [INFO] [stderr] Compiling futures-channel v0.3.28 [INFO] [stderr] Checking futures-io v0.3.28 [INFO] [stderr] Compiling futures-util v0.3.28 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Compiling httparse v1.10.0 [INFO] [stderr] Checking percent-encoding v2.3.0 [INFO] [stderr] Compiling pkg-config v0.3.29 [INFO] [stderr] Checking try-lock v0.2.4 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking tracing-core v0.1.31 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Checking httpdate v1.0.3 [INFO] [stderr] Compiling lock_api v0.4.10 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking http v0.2.9 [INFO] [stderr] Checking num_threads v0.1.6 [INFO] [stderr] Checking form_urlencoded v1.2.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking bitflags v2.8.0 [INFO] [stderr] Checking openssl-probe v0.1.5 [INFO] [stderr] Compiling serde_json v1.0.138 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking outref v0.5.1 [INFO] [stderr] Checking untrusted v0.7.1 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking vsimd v0.8.0 [INFO] [stderr] Compiling typenum v1.16.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Checking tinyvec v1.6.0 [INFO] [stderr] Compiling thiserror v1.0.47 [INFO] [stderr] Compiling semver v1.0.20 [INFO] [stderr] Checking rustls-pemfile v1.0.3 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Checking unicode-bidi v0.3.13 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling openssl v0.10.63 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling rustls v0.21.6 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking bytes-utils v0.1.3 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking subtle v2.5.0 [INFO] [stderr] Checking http-body v0.4.5 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Checking base64-simd v0.8.0 [INFO] [stderr] Checking rustls-native-certs v0.6.3 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking aho-corasick v1.0.4 [INFO] [stderr] Checking unicode-normalization v0.1.22 [INFO] [stderr] Checking regex-syntax v0.7.4 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking cpufeatures v0.2.9 [INFO] [stderr] Checking fastrand v2.0.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Compiling aws-types v0.56.1 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking dyn-clone v1.0.13 [INFO] [stderr] Checking iana-time-zone v0.1.57 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Compiling k8s-openapi v0.18.0 [INFO] [stderr] Compiling rustix v0.38.31 [INFO] [stderr] Compiling schemars v0.8.21 [INFO] [stderr] Compiling async-trait v0.1.73 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking socket2 v0.4.9 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Compiling cc v1.2.3 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking parking v2.2.0 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking concurrent-queue v2.4.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking pem v1.1.1 [INFO] [stderr] Compiling num-bigint v0.4.4 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking linux-raw-sys v0.4.13 [INFO] [stderr] Compiling tokio-openssl v0.6.5 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking utf8parse v0.2.1 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling hyper-openssl v0.9.2 [INFO] [stderr] Compiling anyhow v1.0.75 [INFO] [stderr] Checking http-range-header v0.3.1 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking anstyle-parse v0.2.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking encoding_rs v0.8.33 [INFO] [stderr] Checking linked_hash_set v0.1.5 [INFO] [stderr] Checking ipnet v2.9.0 [INFO] [stderr] Checking event-listener v2.5.3 [INFO] [stderr] Compiling http-types v2.12.0 [INFO] [stderr] Checking anstyle-query v1.0.0 [INFO] [stderr] Checking base64 v0.20.0 [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Checking waker-fn v1.1.1 [INFO] [stderr] Checking colorchoice v1.0.0 [INFO] [stderr] Checking fastrand v1.9.0 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking gimli v0.28.0 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking sync_wrapper v0.1.2 [INFO] [stderr] Checking anstyle v1.0.2 [INFO] [stderr] Compiling paste v1.0.14 [INFO] [stderr] Compiling const_fn v0.4.9 [INFO] [stderr] Checking async-channel v1.9.0 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking futures-lite v1.13.0 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking event-listener v4.0.3 [INFO] [stderr] Checking mio v0.8.8 [INFO] [stderr] Compiling azure_core v0.19.0 [INFO] [stderr] Checking object v0.32.0 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking rustc-demangle v0.1.23 [INFO] [stderr] Checking clap_lex v0.5.0 [INFO] [stderr] Compiling openssl-sys v0.9.99 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Checking regex-automata v0.3.6 [INFO] [stderr] Compiling libz-sys v1.1.20 [INFO] [stderr] Compiling libssh2-sys v0.3.0 [INFO] [stderr] Compiling backtrace v0.3.69 [INFO] [stderr] Compiling libgit2-sys v0.17.0+1.8.1 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Checking infer v0.2.3 [INFO] [stderr] Checking xmlparser v0.13.6 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling execute-command-tokens v0.1.6 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking backoff v0.4.0 [INFO] [stderr] Checking event-listener-strategy v0.4.0 [INFO] [stderr] Checking aws-smithy-xml v0.56.1 [INFO] [stderr] Checking rustls-pki-types v1.11.0 [INFO] [stderr] Compiling camino v1.1.7 [INFO] [stderr] Checking unicode-segmentation v1.10.1 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking rustls-pemfile v2.1.2 [INFO] [stderr] Checking crossterm v0.25.0 [INFO] [stderr] Checking async-lock v3.3.0 [INFO] [stderr] Checking is-terminal v0.4.9 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking tz-rs v0.6.14 [INFO] [stderr] Checking anstream v0.3.2 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking bstr v1.6.0 [INFO] [stderr] Checking clap_builder v4.3.24 [INFO] [stderr] Checking newline-converter v0.2.2 [INFO] [stderr] Compiling p6m v0.7.5 (/opt/rustwide/workdir) [INFO] [stderr] Checking home v0.5.5 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Checking arc-swap v1.6.0 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Checking walkdir v2.3.3 [INFO] [stderr] Checking loggerv v0.7.2 [INFO] [stderr] Compiling darling_core v0.14.4 [INFO] [stderr] Checking shellexpand v3.1.0 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Checking glob v0.3.1 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking addr2line v0.21.0 [INFO] [stderr] Checking regex v1.9.3 [INFO] [stderr] Compiling snafu-derive v0.7.5 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking globset v0.4.13 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling darling_macro v0.14.4 [INFO] [stderr] Compiling darling v0.14.4 [INFO] [stderr] Compiling serde_derive v1.0.215 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.28 [INFO] [stderr] Compiling tracing-attributes v0.1.26 [INFO] [stderr] Compiling pin-project-internal v1.1.3 [INFO] [stderr] Compiling thiserror-impl v1.0.47 [INFO] [stderr] Checking rustls-webpki v0.101.4 [INFO] [stderr] Checking sct v0.7.0 [INFO] [stderr] Checking tokio v1.43.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling schemars_derive v0.8.21 [INFO] [stderr] Compiling execute-command-macro-impl v0.1.9 [INFO] [stderr] Compiling clap_derive v4.3.12 [INFO] [stderr] Checking pin-project v1.1.3 [INFO] [stderr] Checking execute-command-macro v0.1.8 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Checking tracing v0.1.37 [INFO] [stderr] Checking execute v0.2.12 [INFO] [stderr] Checking snafu v0.7.5 [INFO] [stderr] Checking inquire v0.6.2 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling serde_with_macros v3.12.0 [INFO] [stderr] Checking clap v4.3.24 [INFO] [stderr] Checking clap_complete v4.3.2 [INFO] [stderr] Checking futures-executor v0.3.28 [INFO] [stderr] Checking tower-http v0.4.3 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking futures v0.3.28 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking url v2.4.0 [INFO] [stderr] Checking chrono v0.4.39 [INFO] [stderr] Checking uuid v1.4.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking secrecy v0.8.0 [INFO] [stderr] Checking serde_qs v0.8.5 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking serde_path_to_error v0.1.14 [INFO] [stderr] Checking serde_with v3.12.0 [INFO] [stderr] Checking minijinja v1.0.6 [INFO] [stderr] Checking tokio-util v0.7.8 [INFO] [stderr] Checking tokio-stream v0.1.14 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tokio-io-timeout v1.2.0 [INFO] [stderr] Checking webbrowser v0.8.11 [INFO] [stderr] Checking aws-smithy-async v0.56.1 [INFO] [stderr] Checking git2 v0.19.0 [INFO] [stderr] Checking h2 v0.3.21 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking h2 v0.4.5 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking json-patch v1.4.0 [INFO] [stderr] Checking jsonpath_lib v0.3.0 [INFO] [stderr] Checking oauth2 v4.4.2 [INFO] [stderr] Checking aws-smithy-types v0.56.1 [INFO] [stderr] Checking simple_asn1 v0.6.2 [INFO] [stderr] Checking jsonwebtoken v8.3.0 [INFO] [stderr] Checking jsonwebtokens v1.2.0 [INFO] [stderr] Checking aws-credential-types v0.56.1 [INFO] [stderr] Checking aws-smithy-json v0.56.1 [INFO] [stderr] Checking aws-smithy-query v0.56.1 [INFO] [stderr] Compiling kube-derive v0.83.0 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking hyper v0.14.27 [INFO] [stderr] Checking hyper-util v0.1.10 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.4 [INFO] [stderr] Checking aws-smithy-http v0.56.1 [INFO] [stderr] Checking hyper-rustls v0.24.1 [INFO] [stderr] Checking hyper-timeout v0.4.1 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.24 [INFO] [stderr] Checking octocrab v0.25.1 [INFO] [stderr] Checking aws-smithy-http-tower v0.56.1 [INFO] [stderr] Checking aws-smithy-runtime-api v0.56.1 [INFO] [stderr] Checking aws-sigv4 v0.56.1 [INFO] [stderr] Checking aws-smithy-client v0.56.1 [INFO] [stderr] Checking azure_identity v0.19.0 [INFO] [stderr] Checking aws-smithy-runtime v0.56.1 [INFO] [stderr] Checking aws-http v0.56.1 [INFO] [stderr] Checking aws-runtime v0.56.1 [INFO] [stderr] Checking aws-sdk-sts v0.30.0 [INFO] [stderr] Checking aws-sdk-sso v0.30.0 [INFO] [stderr] Checking aws-sdk-sso v0.33.0 [INFO] [stderr] Checking aws-sdk-eks v0.33.0 [INFO] [stderr] Checking aws-config v0.56.1 [INFO] [stderr] Checking kube-core v0.83.0 [INFO] [stderr] Checking kube-client v0.83.0 [INFO] [stderr] Checking kube-runtime v0.83.0 [INFO] [stderr] Checking kube v0.83.0 [INFO] [stdout] warning: struct `UserInfo` is never constructed [INFO] [stdout] --> src/auth/openid.rs:281:12 [INFO] [stdout] | [INFO] [stdout] 281 | pub struct UserInfo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserInfo` is never constructed [INFO] [stdout] --> src/auth/openid.rs:281:12 [INFO] [stdout] | [INFO] [stdout] 281 | pub struct UserInfo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/auth/token_repository.rs:214:1 [INFO] [stdout] | [INFO] [stdout] 214 | impl Into for Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 214 ~ impl From> for Claims { [INFO] [stdout] 215 ~ fn from(val: Option) -> Self { [INFO] [stdout] 216 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/auth/token_repository.rs:214:1 [INFO] [stdout] | [INFO] [stdout] 214 | impl Into for Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 214 ~ impl From> for Claims { [INFO] [stdout] 215 ~ fn from(val: Option) -> Self { [INFO] [stdout] 216 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/auth/token_repository.rs:256:28 [INFO] [stdout] | [INFO] [stdout] 256 | fs::create_dir_all(&auth_dir)?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `auth_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> src/auth/token_repository.rs:309:14 [INFO] [stdout] | [INFO] [stdout] 309 | .map_err(|e| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] = note: `#[warn(clippy::manual_inspect)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 309 ~ .inspect_err(|e| { [INFO] [stdout] 310 ~ debug!("Unable to find organization {organization} in claims: {id_claims}",); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/auth/token_repository.rs:304:34 [INFO] [stdout] | [INFO] [stdout] 304 | org.0 == organization.to_string() || org.1 == organization.to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*organization` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/auth/token_repository.rs:304:71 [INFO] [stdout] | [INFO] [stdout] 304 | org.0 == organization.to_string() || org.1 == organization.to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*organization` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/auth/token_repository.rs:256:28 [INFO] [stdout] | [INFO] [stdout] 256 | fs::create_dir_all(&auth_dir)?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `auth_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> src/auth/token_repository.rs:309:14 [INFO] [stdout] | [INFO] [stdout] 309 | .map_err(|e| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] = note: `#[warn(clippy::manual_inspect)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 309 ~ .inspect_err(|e| { [INFO] [stdout] 310 ~ debug!("Unable to find organization {organization} in claims: {id_claims}",); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/auth/token_repository.rs:326:51 [INFO] [stdout] | [INFO] [stdout] 326 | pub async fn with_authn_app_id(&mut self, id: &String) -> Result<&mut Self> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 326 - pub async fn with_authn_app_id(&mut self, id: &String) -> Result<&mut Self> { [INFO] [stdout] 326 + pub async fn with_authn_app_id(&mut self, id: &str) -> Result<&mut Self> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/auth/token_repository.rs:304:34 [INFO] [stdout] | [INFO] [stdout] 304 | org.0 == organization.to_string() || org.1 == organization.to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*organization` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/auth/token_repository.rs:304:71 [INFO] [stdout] | [INFO] [stdout] 304 | org.0 == organization.to_string() || org.1 == organization.to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*organization` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/auth/token_repository.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | / match self [INFO] [stdout] 336 | | .try_refresh(&TryReason::RefreshFor(app.clone())) [INFO] [stdout] 337 | | .await [INFO] [stdout] 338 | | .map_err(|e| { [INFO] [stdout] ... | [INFO] [stdout] 351 | | _ => {} [INFO] [stdout] 352 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 335 ~ if let None = self [INFO] [stdout] 336 + .try_refresh(&TryReason::RefreshFor(app.clone())) [INFO] [stdout] 337 + .await [INFO] [stdout] 338 + .map_err(|e| { [INFO] [stdout] 339 + debug!("Unable to refresh: {}", e); [INFO] [stdout] 340 + e [INFO] [stdout] 341 + }) [INFO] [stdout] 342 + .ok() { [INFO] [stdout] 343 + // TODO [INFO] [stdout] 344 + debug!("Unable to refresh, trying to login"); [INFO] [stdout] 345 + self.force() [INFO] [stdout] 346 + .try_login(&&TryReason::LoginTo(app.clone())) [INFO] [stdout] 347 + .await?; [INFO] [stdout] 348 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/auth/token_repository.rs:326:51 [INFO] [stdout] | [INFO] [stdout] 326 | pub async fn with_authn_app_id(&mut self, id: &String) -> Result<&mut Self> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 326 - pub async fn with_authn_app_id(&mut self, id: &String) -> Result<&mut Self> { [INFO] [stdout] 326 + pub async fn with_authn_app_id(&mut self, id: &str) -> Result<&mut Self> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/auth/token_repository.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | / match self [INFO] [stdout] 336 | | .try_refresh(&TryReason::RefreshFor(app.clone())) [INFO] [stdout] 337 | | .await [INFO] [stdout] 338 | | .map_err(|e| { [INFO] [stdout] ... | [INFO] [stdout] 351 | | _ => {} [INFO] [stdout] 352 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 335 ~ if let None = self [INFO] [stdout] 336 + .try_refresh(&TryReason::RefreshFor(app.clone())) [INFO] [stdout] 337 + .await [INFO] [stdout] 338 + .map_err(|e| { [INFO] [stdout] 339 + debug!("Unable to refresh: {}", e); [INFO] [stdout] 340 + e [INFO] [stdout] 341 + }) [INFO] [stdout] 342 + .ok() { [INFO] [stdout] 343 + // TODO [INFO] [stdout] 344 + debug!("Unable to refresh, trying to login"); [INFO] [stdout] 345 + self.force() [INFO] [stdout] 346 + .try_login(&&TryReason::LoginTo(app.clone())) [INFO] [stdout] 347 + .await?; [INFO] [stdout] 348 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/auth/token_repository.rs:348:32 [INFO] [stdout] | [INFO] [stdout] 348 | .try_login(&&TryReason::LoginTo(app.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(&TryReason::LoginTo(app.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/auth/token_repository.rs:348:32 [INFO] [stdout] | [INFO] [stdout] 348 | .try_login(&&TryReason::LoginTo(app.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(&TryReason::LoginTo(app.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::env::Args` [INFO] [stdout] --> src/auth/token_repository.rs:429:23 [INFO] [stdout] | [INFO] [stdout] 429 | let cmd = env::args().into_iter().collect::>().join(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `env::args()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::env::Args` [INFO] [stdout] --> src/auth/token_repository.rs:429:23 [INFO] [stdout] | [INFO] [stdout] 429 | let cmd = env::args().into_iter().collect::>().join(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `env::args()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/auth/token_repository.rs:562:9 [INFO] [stdout] | [INFO] [stdout] 562 | return refresh_token.is_some(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 562 - return refresh_token.is_some(); [INFO] [stdout] 562 + refresh_token.is_some() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/auth/token_repository.rs:562:9 [INFO] [stdout] | [INFO] [stdout] 562 | return refresh_token.is_some(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 562 - return refresh_token.is_some(); [INFO] [stdout] 562 + refresh_token.is_some() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `auth::token_repository::TokenRepository` [INFO] [stdout] --> src/auth/token_repository.rs:638:5 [INFO] [stdout] | [INFO] [stdout] 638 | / pub fn to_string(&self) -> String { [INFO] [stdout] 639 | | if let Some(claims) = self.read_claims(AuthToken::Id).unwrap_or(None) { [INFO] [stdout] 640 | | let detail: Vec = match ( [INFO] [stdout] 641 | | claims.email.as_ref(), [INFO] [stdout] ... | [INFO] [stdout] 665 | | "Not logged in".into() [INFO] [stdout] 666 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `auth::token_repository::TokenRepository` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `auth::token_repository::TokenRepository` [INFO] [stdout] --> src/auth/token_repository.rs:638:5 [INFO] [stdout] | [INFO] [stdout] 638 | / pub fn to_string(&self) -> String { [INFO] [stdout] 639 | | if let Some(claims) = self.read_claims(AuthToken::Id).unwrap_or(None) { [INFO] [stdout] 640 | | let detail: Vec = match ( [INFO] [stdout] 641 | | claims.email.as_ref(), [INFO] [stdout] ... | [INFO] [stdout] 665 | | "Not logged in".into() [INFO] [stdout] 666 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `auth::token_repository::TokenRepository` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/auth/token_repository.rs:707:12 [INFO] [stdout] | [INFO] [stdout] 707 | if acr_values.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!acr_values.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/auth0/api.rs:26:46 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn with_base_url(mut self, base_url: &String) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 26 ~ pub fn with_base_url(mut self, base_url: &str) -> Self { [INFO] [stdout] 27 ~ self.base_url = Some(base_url.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/auth/token_repository.rs:707:12 [INFO] [stdout] | [INFO] [stdout] 707 | if acr_values.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!acr_values.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/auth0/api.rs:207:39 [INFO] [stdout] | [INFO] [stdout] 207 | ... Err(_) => format!("{body}"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `body.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/auth0/api.rs:26:46 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn with_base_url(mut self, base_url: &String) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 26 ~ pub fn with_base_url(mut self, base_url: &str) -> Self { [INFO] [stdout] 27 ~ self.base_url = Some(base_url.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/auth0/api.rs:207:39 [INFO] [stdout] | [INFO] [stdout] 207 | ... Err(_) => format!("{body}"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `body.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/auth0/types.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return self.apps_uri.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return self.apps_uri.clone(); [INFO] [stdout] 57 + self.apps_uri.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/auth0/types.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn login_form_data(&self, scope: &String) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 60 ~ pub fn login_form_data(&self, scope: &str) -> Result> { [INFO] [stdout] 61 | let mut form = BTreeMap::new(); [INFO] [stdout] ... [INFO] [stdout] 66 | if scope.trim().len() > 0 { [INFO] [stdout] 67 ~ form.insert("scope".to_string(), scope.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/auth0/types.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | if scope.trim().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!scope.trim().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/auth0/types.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return self.apps_uri.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return self.apps_uri.clone(); [INFO] [stdout] 57 + self.apps_uri.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/auth0/types.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn login_form_data(&self, scope: &String) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 60 ~ pub fn login_form_data(&self, scope: &str) -> Result> { [INFO] [stdout] 61 | let mut form = BTreeMap::new(); [INFO] [stdout] ... [INFO] [stdout] 66 | if scope.trim().len() > 0 { [INFO] [stdout] 67 ~ form.insert("scope".to_string(), scope.to_owned()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/auth0/types.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | if scope.trim().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!scope.trim().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/models/artifact.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / impl Default for StorageProvider { [INFO] [stdout] 12 | | fn default() -> Self { [INFO] [stdout] 13 | | StorageProvider::Artifactory [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 6 + #[derive(Default)] [INFO] [stdout] 7 | pub enum StorageProvider { [INFO] [stdout] 8 ~ #[default] [INFO] [stdout] 9 ~ Artifactory, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/models/artifact.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / impl Default for StorageProvider { [INFO] [stdout] 12 | | fn default() -> Self { [INFO] [stdout] 13 | | StorageProvider::Artifactory [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 6 + #[derive(Default)] [INFO] [stdout] 7 | pub enum StorageProvider { [INFO] [stdout] 8 ~ #[default] [INFO] [stdout] 9 ~ Artifactory, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:223:22 [INFO] [stdout] | [INFO] [stdout] 223 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:240:22 [INFO] [stdout] | [INFO] [stdout] 240 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:250:22 [INFO] [stdout] | [INFO] [stdout] 250 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:269:18 [INFO] [stdout] | [INFO] [stdout] 269 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:223:22 [INFO] [stdout] | [INFO] [stdout] 223 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:240:22 [INFO] [stdout] | [INFO] [stdout] 240 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:250:22 [INFO] [stdout] | [INFO] [stdout] 250 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/repositories.rs:269:18 [INFO] [stdout] | [INFO] [stdout] 269 | .arg(&repository.local_path()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `repository.local_path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/sso/auth0.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | kubeconfig.api_version = Some("v1".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `kube::config::Kubeconfig { api_version: Some("v1".to_string()), kind: Some("Config".to_string()), preferences: Some(Preferences { [INFO] [stdout] colors: None, [INFO] [stdout] extensions: None, [INFO] [stdout] }), clusters: vec![NamedCluster { [INFO] [stdout] name: url.clone(), [INFO] [stdout] cluster: Some(Cluster { [INFO] [stdout] server: Some(url.clone()), [INFO] [stdout] certificate_authority_data: Some(ca.clone()), [INFO] [stdout] ..Default::default() [INFO] [stdout] }), [INFO] [stdout] }], ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/sso/auth0.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | let mut kubeconfig = Kubeconfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/sso/auth0.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | org.clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `org.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/sso/auth0.rs:166:66 [INFO] [stdout] | [INFO] [stdout] 166 | let existing = Kubeconfig::read_from(path.clone().as_path()).unwrap_or(Kubeconfig::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/sso/auth0.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | kubeconfig.api_version = Some("v1".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `kube::config::Kubeconfig { api_version: Some("v1".to_string()), kind: Some("Config".to_string()), preferences: Some(Preferences { [INFO] [stdout] colors: None, [INFO] [stdout] extensions: None, [INFO] [stdout] }), clusters: vec![NamedCluster { [INFO] [stdout] name: url.clone(), [INFO] [stdout] cluster: Some(Cluster { [INFO] [stdout] server: Some(url.clone()), [INFO] [stdout] certificate_authority_data: Some(ca.clone()), [INFO] [stdout] ..Default::default() [INFO] [stdout] }), [INFO] [stdout] }], ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/sso/auth0.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | let mut kubeconfig = Kubeconfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/sso/aws.rs:124:55 [INFO] [stdout] | [INFO] [stdout] 124 | ...: Some(format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/sso/aws.rs:124:145 [INFO] [stdout] | [INFO] [stdout] 124 | ...GION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/sso/aws.rs:126:52 [INFO] [stdout] | [INFO] [stdout] 126 | ...: Some(format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/sso/auth0.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | org.clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `org.clone()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/sso/aws.rs:126:142 [INFO] [stdout] | [INFO] [stdout] 126 | ...GION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/sso/aws.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | / match update_vcluster_kubecfgs(options).await { [INFO] [stdout] 144 | | Err(err) => { [INFO] [stdout] 145 | | log::warn!("aws: unable to update vcluster kubeconfigs: {}", err); [INFO] [stdout] ... | [INFO] [stdout] 148 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 143 ~ if let Err(err) = update_vcluster_kubecfgs(options).await { [INFO] [stdout] 144 + log::warn!("aws: unable to update vcluster kubeconfigs: {}", err); [INFO] [stdout] 145 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/sso/auth0.rs:166:66 [INFO] [stdout] | [INFO] [stdout] 166 | let existing = Kubeconfig::read_from(path.clone().as_path()).unwrap_or(Kubeconfig::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/sso/aws.rs:273:5 [INFO] [stdout] | [INFO] [stdout] 273 | / match selected_role { [INFO] [stdout] 274 | | Some((role_name, _)) => Some(role_name), [INFO] [stdout] 275 | | None => None, [INFO] [stdout] 276 | | } [INFO] [stdout] | |_____^ help: try: `selected_role.map(|(role_name, _)| role_name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | return s.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 304 - return s.to_string(); [INFO] [stdout] 304 + s.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:342:25 [INFO] [stdout] | [INFO] [stdout] 342 | Ok(json_res) => return Ok(json_res), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 342 - Ok(json_res) => return Ok(json_res), [INFO] [stdout] 342 + Ok(json_res) => Ok(json_res), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:345:13 [INFO] [stdout] | [INFO] [stdout] 345 | return Err(Error::msg("invalid json")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 345 - return Err(Error::msg("invalid json")); [INFO] [stdout] 345 + Err(Error::msg("invalid json")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/sso/aws.rs:124:55 [INFO] [stdout] | [INFO] [stdout] 124 | ...: Some(format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/sso/aws.rs:124:145 [INFO] [stdout] | [INFO] [stdout] 124 | ...GION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/aws.rs:309:14 [INFO] [stdout] | [INFO] [stdout] 309 | cmd.args(&["eks", "list-clusters"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["eks", "list-clusters"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/sso/aws.rs:126:52 [INFO] [stdout] | [INFO] [stdout] 126 | ...: Some(format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `format!("arn:aws:eks:{POORLY_HARDCODED_REGION}:{}:cluster/{}", account.account_id, cluster.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/sso/aws.rs:126:142 [INFO] [stdout] | [INFO] [stdout] 126 | ...GION}:{}:cluster/{}", account.account_id, cluster.to_string()).into()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:380:23 [INFO] [stdout] | [INFO] [stdout] 380 | Ok(string) => return Ok(string), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 380 - Ok(string) => return Ok(string), [INFO] [stdout] 380 + Ok(string) => Ok(string), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/sso/aws.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | / match update_vcluster_kubecfgs(options).await { [INFO] [stdout] 144 | | Err(err) => { [INFO] [stdout] 145 | | log::warn!("aws: unable to update vcluster kubeconfigs: {}", err); [INFO] [stdout] ... | [INFO] [stdout] 148 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 143 ~ if let Err(err) = update_vcluster_kubecfgs(options).await { [INFO] [stdout] 144 + log::warn!("aws: unable to update vcluster kubeconfigs: {}", err); [INFO] [stdout] 145 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:383:13 [INFO] [stdout] | [INFO] [stdout] 383 | return Err(Error::msg("parsing error")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 383 - return Err(Error::msg("parsing error")); [INFO] [stdout] 383 + Err(Error::msg("parsing error")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/aws.rs:352:14 [INFO] [stdout] | [INFO] [stdout] 352 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 353 | | "eks", [INFO] [stdout] 354 | | "update-kubeconfig", [INFO] [stdout] 355 | | "--name", [INFO] [stdout] ... | [INFO] [stdout] 358 | | cluster.clone().as_str(), [INFO] [stdout] 359 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 352 ~ cmd.args([ [INFO] [stdout] 353 + "eks", [INFO] [stdout] 354 + "update-kubeconfig", [INFO] [stdout] 355 + "--name", [INFO] [stdout] 356 + cluster.as_str(), [INFO] [stdout] 357 + "--alias", [INFO] [stdout] 358 + cluster.clone().as_str(), [INFO] [stdout] 359 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:390:18 [INFO] [stdout] | [INFO] [stdout] 390 | ...=> return Err(Error::msg(format!("{} must be unset for this to work correctly. Try this in your current terminal session:\n\n\tunset {}\n", env_var, env_var))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 390 - Ok(_) => return Err(Error::msg(format!("{} must be unset for this to work correctly. Try this in your current terminal session:\n\n\tunset {}\n", env_var, env_var))), [INFO] [stdout] 390 + Ok(_) => Err(Error::msg(format!("{} must be unset for this to work correctly. Try this in your current terminal session:\n\n\tunset {}\n", env_var, env_var))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:391:19 [INFO] [stdout] | [INFO] [stdout] 391 | Err(_) => return Ok(()), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 391 - Err(_) => return Ok(()), [INFO] [stdout] 391 + Err(_) => Ok(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/sso/aws.rs:273:5 [INFO] [stdout] | [INFO] [stdout] 273 | / match selected_role { [INFO] [stdout] 274 | | Some((role_name, _)) => Some(role_name), [INFO] [stdout] 275 | | None => None, [INFO] [stdout] 276 | | } [INFO] [stdout] | |_____^ help: try: `selected_role.map(|(role_name, _)| role_name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | return s.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 304 - return s.to_string(); [INFO] [stdout] 304 + s.to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:342:25 [INFO] [stdout] | [INFO] [stdout] 342 | Ok(json_res) => return Ok(json_res), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 342 - Ok(json_res) => return Ok(json_res), [INFO] [stdout] 342 + Ok(json_res) => Ok(json_res), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:345:13 [INFO] [stdout] | [INFO] [stdout] 345 | return Err(Error::msg("invalid json")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 345 - return Err(Error::msg("invalid json")); [INFO] [stdout] 345 + Err(Error::msg("invalid json")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/aws.rs:309:14 [INFO] [stdout] | [INFO] [stdout] 309 | cmd.args(&["eks", "list-clusters"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["eks", "list-clusters"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:61:14 [INFO] [stdout] | [INFO] [stdout] 61 | cmd.args(&["account", "list", "--all"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["account", "list", "--all"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:95:14 [INFO] [stdout] | [INFO] [stdout] 95 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 96 | | "account", [INFO] [stdout] 97 | | "get-access-token", [INFO] [stdout] 98 | | "--subscription", [INFO] [stdout] 99 | | &azure_config.id, [INFO] [stdout] 100 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 95 ~ cmd.args([ [INFO] [stdout] 96 + "account", [INFO] [stdout] 97 + "get-access-token", [INFO] [stdout] 98 + "--subscription", [INFO] [stdout] 99 + &azure_config.id, [INFO] [stdout] 100 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:380:23 [INFO] [stdout] | [INFO] [stdout] 380 | Ok(string) => return Ok(string), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 380 - Ok(string) => return Ok(string), [INFO] [stdout] 380 + Ok(string) => Ok(string), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:383:13 [INFO] [stdout] | [INFO] [stdout] 383 | return Err(Error::msg("parsing error")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 383 - return Err(Error::msg("parsing error")); [INFO] [stdout] 383 + Err(Error::msg("parsing error")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/aws.rs:352:14 [INFO] [stdout] | [INFO] [stdout] 352 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 353 | | "eks", [INFO] [stdout] 354 | | "update-kubeconfig", [INFO] [stdout] 355 | | "--name", [INFO] [stdout] ... | [INFO] [stdout] 358 | | cluster.clone().as_str(), [INFO] [stdout] 359 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 352 ~ cmd.args([ [INFO] [stdout] 353 + "eks", [INFO] [stdout] 354 + "update-kubeconfig", [INFO] [stdout] 355 + "--name", [INFO] [stdout] 356 + cluster.as_str(), [INFO] [stdout] 357 + "--alias", [INFO] [stdout] 358 + cluster.clone().as_str(), [INFO] [stdout] 359 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:140:14 [INFO] [stdout] | [INFO] [stdout] 140 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 141 | | "aks", [INFO] [stdout] 142 | | "list", [INFO] [stdout] 143 | | "--query", [INFO] [stdout] ... | [INFO] [stdout] 146 | | &azure_config.id, [INFO] [stdout] 147 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 140 ~ cmd.args([ [INFO] [stdout] 141 + "aks", [INFO] [stdout] 142 + "list", [INFO] [stdout] 143 + "--query", [INFO] [stdout] 144 + "[].{ClusterName:name, ResourceGroup:resourceGroup}", [INFO] [stdout] 145 + "--subscription", [INFO] [stdout] 146 + &azure_config.id, [INFO] [stdout] 147 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:390:18 [INFO] [stdout] | [INFO] [stdout] 390 | ...=> return Err(Error::msg(format!("{} must be unset for this to work correctly. Try this in your current terminal session:\n\n\tunset {}\n", env_var, env_var))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 390 - Ok(_) => return Err(Error::msg(format!("{} must be unset for this to work correctly. Try this in your current terminal session:\n\n\tunset {}\n", env_var, env_var))), [INFO] [stdout] 390 + Ok(_) => Err(Error::msg(format!("{} must be unset for this to work correctly. Try this in your current terminal session:\n\n\tunset {}\n", env_var, env_var))), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sso/aws.rs:391:19 [INFO] [stdout] | [INFO] [stdout] 391 | Err(_) => return Ok(()), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 391 - Err(_) => return Ok(()), [INFO] [stdout] 391 + Err(_) => Ok(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 182 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 183 | | "aks", [INFO] [stdout] 184 | | "get-credentials", [INFO] [stdout] 185 | | "--name", [INFO] [stdout] ... | [INFO] [stdout] 193 | | "--overwrite-existing", [INFO] [stdout] 194 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 182 ~ cmd.args([ [INFO] [stdout] 183 + "aks", [INFO] [stdout] 184 + "get-credentials", [INFO] [stdout] 185 + "--name", [INFO] [stdout] 186 + &cluster.ClusterName, [INFO] [stdout] 187 + "--resource-group", [INFO] [stdout] 188 + &cluster.ResourceGroup, [INFO] [stdout] 189 + "--context", [INFO] [stdout] 190 + &cluster.ClusterName, [INFO] [stdout] 191 + "--subscription", [INFO] [stdout] 192 + &azure_config.id, [INFO] [stdout] 193 + "--overwrite-existing", [INFO] [stdout] 194 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:61:14 [INFO] [stdout] | [INFO] [stdout] 61 | cmd.args(&["account", "list", "--all"]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `["account", "list", "--all"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/sso/vcluster.rs:62:60 [INFO] [stdout] | [INFO] [stdout] 62 | let kubeconfig = Kubeconfig::read_from(path.as_path()).unwrap_or(Kubeconfig::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:95:14 [INFO] [stdout] | [INFO] [stdout] 95 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 96 | | "account", [INFO] [stdout] 97 | | "get-access-token", [INFO] [stdout] 98 | | "--subscription", [INFO] [stdout] 99 | | &azure_config.id, [INFO] [stdout] 100 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 95 ~ cmd.args([ [INFO] [stdout] 96 + "account", [INFO] [stdout] 97 + "get-access-token", [INFO] [stdout] 98 + "--subscription", [INFO] [stdout] 99 + &azure_config.id, [INFO] [stdout] 100 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:140:14 [INFO] [stdout] | [INFO] [stdout] 140 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 141 | | "aks", [INFO] [stdout] 142 | | "list", [INFO] [stdout] 143 | | "--query", [INFO] [stdout] ... | [INFO] [stdout] 146 | | &azure_config.id, [INFO] [stdout] 147 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 140 ~ cmd.args([ [INFO] [stdout] 141 + "aks", [INFO] [stdout] 142 + "list", [INFO] [stdout] 143 + "--query", [INFO] [stdout] 144 + "[].{ClusterName:name, ResourceGroup:resourceGroup}", [INFO] [stdout] 145 + "--subscription", [INFO] [stdout] 146 + &azure_config.id, [INFO] [stdout] 147 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/sso/azure.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 182 | cmd.args(&[ [INFO] [stdout] | ______________^ [INFO] [stdout] 183 | | "aks", [INFO] [stdout] 184 | | "get-credentials", [INFO] [stdout] 185 | | "--name", [INFO] [stdout] ... | [INFO] [stdout] 193 | | "--overwrite-existing", [INFO] [stdout] 194 | | ]); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 182 ~ cmd.args([ [INFO] [stdout] 183 + "aks", [INFO] [stdout] 184 + "get-credentials", [INFO] [stdout] 185 + "--name", [INFO] [stdout] 186 + &cluster.ClusterName, [INFO] [stdout] 187 + "--resource-group", [INFO] [stdout] 188 + &cluster.ResourceGroup, [INFO] [stdout] 189 + "--context", [INFO] [stdout] 190 + &cluster.ClusterName, [INFO] [stdout] 191 + "--subscription", [INFO] [stdout] 192 + &azure_config.id, [INFO] [stdout] 193 + "--overwrite-existing", [INFO] [stdout] 194 ~ ]); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/sso/vcluster.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | / context.context.as_mut().map(|c| { [INFO] [stdout] 152 | | c.cluster = cluster.name.clone(); [INFO] [stdout] 153 | | c.user = auth_info.name.clone(); [INFO] [stdout] 154 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 151 - context.context.as_mut().map(|c| { [INFO] [stdout] 152 - c.cluster = cluster.name.clone(); [INFO] [stdout] 153 - c.user = auth_info.name.clone(); [INFO] [stdout] 154 - }); [INFO] [stdout] 151 + if let Some(c) = context.context.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/sso/vcluster.rs:62:60 [INFO] [stdout] | [INFO] [stdout] 62 | let kubeconfig = Kubeconfig::read_from(path.as_path()).unwrap_or(Kubeconfig::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/sso/vcluster.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | / context.context.as_mut().map(|c| { [INFO] [stdout] 152 | | c.cluster = cluster.name.clone(); [INFO] [stdout] 153 | | c.user = auth_info.name.clone(); [INFO] [stdout] 154 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 151 - context.context.as_mut().map(|c| { [INFO] [stdout] 152 - c.cluster = cluster.name.clone(); [INFO] [stdout] 153 - c.user = auth_info.name.clone(); [INFO] [stdout] 154 - }); [INFO] [stdout] 151 + if let Some(c) = context.context.as_mut() { ... } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/whoami.rs:121:16 [INFO] [stdout] | [INFO] [stdout] 121 | if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::var("KUBERLR_RESOLVING_VERSION").is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/whoami.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | / if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] 122 | | token_repository [INFO] [stdout] 123 | | .with_authn_app_id(authn_app_id) [INFO] [stdout] 124 | | .await [INFO] [stdout] 125 | | .context(format!("Unable to authenticate"))?; [INFO] [stdout] 126 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 119 ~ (Some(Output::K8sAuth), Some(authn_app_id)) [INFO] [stdout] 120 | // Skip re-authenticating if kuberlr is resolving the version [INFO] [stdout] 121 ~ if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() => { [INFO] [stdout] 122 | token_repository [INFO] [stdout] ... [INFO] [stdout] 125 | .context(format!("Unable to authenticate"))?; [INFO] [stdout] 126 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/whoami.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | / match (output, authn_app_id) { [INFO] [stdout] 119 | | (Some(Output::K8sAuth), Some(authn_app_id)) => { [INFO] [stdout] 120 | | // Skip re-authenticating if kuberlr is resolving the version [INFO] [stdout] 121 | | if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] ... | [INFO] [stdout] 128 | | _ => {} [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 118 ~ if let (Some(Output::K8sAuth), Some(authn_app_id)) = (output, authn_app_id) { [INFO] [stdout] 119 + // Skip re-authenticating if kuberlr is resolving the version [INFO] [stdout] 120 + if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] 121 + token_repository [INFO] [stdout] 122 + .with_authn_app_id(authn_app_id) [INFO] [stdout] 123 + .await [INFO] [stdout] 124 + .context(format!("Unable to authenticate"))?; [INFO] [stdout] 125 + } [INFO] [stdout] 126 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/whoami.rs:125:30 [INFO] [stdout] | [INFO] [stdout] 125 | .context(format!("Unable to authenticate"))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unable to authenticate".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/whoami.rs:121:16 [INFO] [stdout] | [INFO] [stdout] 121 | if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::var("KUBERLR_RESOLVING_VERSION").is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/whoami.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | / if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] 122 | | token_repository [INFO] [stdout] 123 | | .with_authn_app_id(authn_app_id) [INFO] [stdout] 124 | | .await [INFO] [stdout] 125 | | .context(format!("Unable to authenticate"))?; [INFO] [stdout] 126 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 119 ~ (Some(Output::K8sAuth), Some(authn_app_id)) [INFO] [stdout] 120 | // Skip re-authenticating if kuberlr is resolving the version [INFO] [stdout] 121 ~ if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() => { [INFO] [stdout] 122 | token_repository [INFO] [stdout] ... [INFO] [stdout] 125 | .context(format!("Unable to authenticate"))?; [INFO] [stdout] 126 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/whoami.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | / match (output, authn_app_id) { [INFO] [stdout] 119 | | (Some(Output::K8sAuth), Some(authn_app_id)) => { [INFO] [stdout] 120 | | // Skip re-authenticating if kuberlr is resolving the version [INFO] [stdout] 121 | | if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] ... | [INFO] [stdout] 128 | | _ => {} [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 118 ~ if let (Some(Output::K8sAuth), Some(authn_app_id)) = (output, authn_app_id) { [INFO] [stdout] 119 + // Skip re-authenticating if kuberlr is resolving the version [INFO] [stdout] 120 + if !env::var("KUBERLR_RESOLVING_VERSION").is_ok() { [INFO] [stdout] 121 + token_repository [INFO] [stdout] 122 + .with_authn_app_id(authn_app_id) [INFO] [stdout] 123 + .await [INFO] [stdout] 124 + .context(format!("Unable to authenticate"))?; [INFO] [stdout] 125 + } [INFO] [stdout] 126 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/whoami.rs:125:30 [INFO] [stdout] | [INFO] [stdout] 125 | .context(format!("Unable to authenticate"))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unable to authenticate".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 22s [INFO] running `Command { std: "docker" "inspect" "73653365e4838a8a6bf264336a38539ab66469d8ea95def221cd0aa20003489d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "73653365e4838a8a6bf264336a38539ab66469d8ea95def221cd0aa20003489d", kill_on_drop: false }` [INFO] [stdout] 73653365e4838a8a6bf264336a38539ab66469d8ea95def221cd0aa20003489d