//! `pic projects` — read-only view of §7 multi-repo ownership projects. //! //! A project is the repo-root that declaratively owns a slice of the group //! tree. Ownership is CLAIMED by `pic apply` (first apply with a `[project]` //! slug registers it); this command only lists what exists. use anyhow::Result; use crate::client::Client; use crate::config; use crate::output::{OutputMode, Table}; /// `pic projects ls` — every project + how many group nodes it owns. pub async fn ls(mode: OutputMode) -> Result<()> { let creds = config::resolve()?; let client = Client::from_creds(&creds)?; let projects = client.projects_list().await?; let mut table = Table::new(["slug", "name", "owned_groups", "created_at"]); for p in &projects { table.row([ p.slug.clone(), p.name.clone(), p.owned_groups.to_string(), p.created_at.to_rfc3339(), ]); } table.print(mode); Ok(()) }