use crate::core::config::Config; use crate::core::error::{LoreError, Result}; use crate::gitlab::GitLabClient; pub struct AuthTestResult { pub username: String, pub name: String, pub base_url: String, } pub async fn run_auth_test(config_path: Option<&str>) -> Result { let config = Config::load(config_path)?; let token = std::env::var(&config.gitlab.token_env_var) .map(|t| t.trim().to_string()) .map_err(|_| LoreError::TokenNotSet { env_var: config.gitlab.token_env_var.clone(), })?; if token.is_empty() { return Err(LoreError::TokenNotSet { env_var: config.gitlab.token_env_var.clone(), }); } let client = GitLabClient::new(&config.gitlab.base_url, &token, None); let user = client.get_current_user().await?; Ok(AuthTestResult { username: user.username, name: user.name, base_url: config.gitlab.base_url, }) }