[INFO] cloning repository https://github.com/ernoba/melisa
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ernoba/melisa" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fernoba%2Fmelisa", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fernoba%2Fmelisa'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 648b2ea6d3e581e774d965ca408785298afd3cdb
[INFO] checking ernoba/melisa against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fernoba%2Fmelisa" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ernoba/melisa
[INFO] finished tweaking git repo https://github.com/ernoba/melisa
[INFO] tweaked toml for git repo https://github.com/ernoba/melisa written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ernoba/melisa on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ernoba/melisa already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustyline-derive v0.10.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93
[INFO] running `Command { std: "docker" "start" "5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking fd-lock v4.0.4
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking unicode-segmentation v1.13.2
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking sysinfo v0.30.13
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling rustyline-derive v0.10.0
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking rustyline v13.0.0
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking melisa v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Hinter`
[INFO] [stdout]   --> src/cli/helper.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | use rustyline::hint::{Hinter, HistoryHinter};
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Validator`
[INFO] [stdout]   --> src/cli/helper.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rustyline::validate::{Validator, MatchingBracketValidator};
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/core/container/query.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hinter`
[INFO] [stdout]   --> src/cli/helper.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | use rustyline::hint::{Hinter, HistoryHinter};
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Validator`
[INFO] [stdout]   --> src/cli/helper.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rustyline::validate::{Validator, MatchingBracketValidator};
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/core/container/query.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/core/container/query.rs:245:9
[INFO] [stdout]     |
[INFO] [stdout] 245 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/deployment/manifest/validator.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `report_orphaned_sudoers` is never used
[INFO] [stdout]    --> src/core/user/management.rs:308:10
[INFO] [stdout]     |
[INFO] [stdout] 308 | async fn report_orphaned_sudoers(existing_usernames: &[String]) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / #![warn(missing_docs)]
[INFO] [stdout]   2 | | #![warn(clippy::pedantic)]
[INFO] [stdout]   3 | | #![warn(clippy::unwrap_used)] // Enforce robust error handling instead of panics
[INFO] [stdout] ...   |
[INFO] [stdout] 145 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/main.rs:1:9
[INFO] [stdout]     |
[INFO] [stdout]   1 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod cli;
[INFO] [stdout]   | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod core;
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod deployment;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod distros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/cli/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod color;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/cli/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod executor;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/cli/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod helper;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod loading;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod melisa_cli;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub mod prompt;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub mod wellcome;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub hinter: HistoryHinter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub highlighter: MatchingBracketHighlighter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub validator: MatchingBracketValidator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub file_completer: FilenameCompleter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/cli/wellcome.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn display_melisa_banner() {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod container;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod metadata;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod project;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod root_check;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod setup;
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod user;
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/container/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod lifecycle;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/container/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod network;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/container/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod query;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/container/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod types;
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/container/query.rs:235:1
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn path_exists(p: &str) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     TooLong { length: usize, limit: usize },
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:78:30
[INFO] [stdout]    |
[INFO] [stdout] 78 |     TooLong { length: usize, limit: usize },
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:82:22
[INFO] [stdout]    |
[INFO] [stdout] 82 |     ShellInjection { pattern: String },
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     PathTraversal { pattern: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/project/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod management;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/core/project/management.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const PROJECTS_MASTER_PATH: &str = "/var/melisa/projects";
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/core/project/management.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn validate_project_name(name: &str) -> Result<(), String> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/core/project/management.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn validate_server_username(username: &str) -> Result<(), String> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/core/project/management.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub async fn create_new_project(project_name: &str, audit: bool) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:139:1
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub async fn delete_project(master_path: &str, project_name: &str) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | / pub async fn invite_users_to_project(
[INFO] [stdout] 200 | |     project_name: &str,
[INFO] [stdout] 201 | |     target_users: &[&str],
[INFO] [stdout] 202 | |     audit: bool,
[INFO] [stdout] 203 | | ) {
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:263:1
[INFO] [stdout]     |
[INFO] [stdout] 263 | / pub async fn remove_users_from_project(
[INFO] [stdout] 264 | |     project_name: &str,
[INFO] [stdout] 265 | |     target_users: &[&str],
[INFO] [stdout] 266 | |     audit: bool,
[INFO] [stdout] 267 | | ) {
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:315:1
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub async fn pull_user_workspace(from_user: &str, project_name: &str, audit: bool) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:372:1
[INFO] [stdout]     |
[INFO] [stdout] 372 | pub async fn update_project_for_user(project_name: &str, username: &str, audit: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn distribute_master_to_all_members(project_name: &str, audit: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | pub async fn list_projects(home_dir: &str) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/user/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod management;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/user/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod sudoers;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/user/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod types;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/core/user/sudoers.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const SUDOERS_DIR:         &str = "/etc/sudoers.d";
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/core/user/sudoers.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const SUDOERS_FILE_PREFIX: &str = "melisa_";
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn sudoers_file_path(username: &str) -> String {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:146:1
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub async fn configure_sudoers(username: &str, role: UserRole, audit: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:242:1
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub async fn check_if_admin(username: &str) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub async fn remove_orphaned_sudoers_files(existing_usernames: &[String]) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:304:1
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub async fn clean_orphaned_sudoers(existing_usernames: &[String]) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod dependency;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod deployer;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod manifest;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/manifest/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod parser;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/manifest/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod types;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/manifest/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod validator;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod abstraction;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod builtin_distros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod registry;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod container;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod host_distro;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/distros/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod lxc_distro;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `report_orphaned_sudoers` is never used
[INFO] [stdout]    --> src/core/user/management.rs:308:10
[INFO] [stdout]     |
[INFO] [stdout] 308 | async fn report_orphaned_sudoers(existing_usernames: &[String]) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]    --> src/main.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / #![warn(missing_docs)]
[INFO] [stdout]   2 | | #![warn(clippy::pedantic)]
[INFO] [stdout]   3 | | #![warn(clippy::unwrap_used)] // Enforce robust error handling instead of panics
[INFO] [stdout] ...   |
[INFO] [stdout] 145 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/main.rs:1:9
[INFO] [stdout]     |
[INFO] [stdout]   1 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod cli;
[INFO] [stdout]   | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod core;
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod deployment;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/main.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod distros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/cli/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod color;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/cli/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod executor;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/cli/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod helper;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod loading;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod melisa_cli;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub mod prompt;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/cli/mod.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub mod wellcome;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub hinter: HistoryHinter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub highlighter: MatchingBracketHighlighter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub validator: MatchingBracketValidator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/cli/helper.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub file_completer: FilenameCompleter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/cli/wellcome.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn display_melisa_banner() {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod container;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod metadata;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod project;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod root_check;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod setup;
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod user;
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/container/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod lifecycle;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/container/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod network;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/container/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod query;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/container/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod types;
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/container/query.rs:235:1
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn path_exists(p: &str) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     TooLong { length: usize, limit: usize },
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:78:30
[INFO] [stdout]    |
[INFO] [stdout] 78 |     TooLong { length: usize, limit: usize },
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:82:22
[INFO] [stdout]    |
[INFO] [stdout] 82 |     ShellInjection { pattern: String },
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/guard/filter.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     PathTraversal { pattern: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/project/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod management;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/core/project/management.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const PROJECTS_MASTER_PATH: &str = "/var/melisa/projects";
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/core/project/management.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn validate_project_name(name: &str) -> Result<(), String> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/core/project/management.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn validate_server_username(username: &str) -> Result<(), String> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/core/project/management.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub async fn create_new_project(project_name: &str, audit: bool) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:139:1
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub async fn delete_project(master_path: &str, project_name: &str) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | / pub async fn invite_users_to_project(
[INFO] [stdout] 200 | |     project_name: &str,
[INFO] [stdout] 201 | |     target_users: &[&str],
[INFO] [stdout] 202 | |     audit: bool,
[INFO] [stdout] 203 | | ) {
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:263:1
[INFO] [stdout]     |
[INFO] [stdout] 263 | / pub async fn remove_users_from_project(
[INFO] [stdout] 264 | |     project_name: &str,
[INFO] [stdout] 265 | |     target_users: &[&str],
[INFO] [stdout] 266 | |     audit: bool,
[INFO] [stdout] 267 | | ) {
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:315:1
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub async fn pull_user_workspace(from_user: &str, project_name: &str, audit: bool) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:372:1
[INFO] [stdout]     |
[INFO] [stdout] 372 | pub async fn update_project_for_user(project_name: &str, username: &str, audit: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub async fn distribute_master_to_all_members(project_name: &str, audit: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/project/management.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | pub async fn list_projects(home_dir: &str) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/user/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod management;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/user/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod sudoers;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/core/user/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod types;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/core/user/sudoers.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const SUDOERS_DIR:         &str = "/etc/sudoers.d";
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/core/user/sudoers.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const SUDOERS_FILE_PREFIX: &str = "melisa_";
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn sudoers_file_path(username: &str) -> String {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:146:1
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub async fn configure_sudoers(username: &str, role: UserRole, audit: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:242:1
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub async fn check_if_admin(username: &str) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub async fn remove_orphaned_sudoers_files(existing_usernames: &[String]) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/user/sudoers.rs:304:1
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub async fn clean_orphaned_sudoers(existing_usernames: &[String]) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod dependency;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod deployer;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod manifest;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/manifest/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod parser;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/manifest/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod types;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/deployment/manifest/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod validator;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod abstraction;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub mod builtin_distros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod registry;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod container;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/distros/mod.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub mod host_distro;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/distros/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub mod lxc_distro;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.83s
[INFO] running `Command { std: "docker" "inspect" "5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93", kill_on_drop: false }`
[INFO] [stdout] 5ddabfceafa39bfc1435ae2973a156d453980a325a34d549d1e680178a80ae93
