From 5db638d7350c35649d9fa4faac981395667e0609 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Tue, 10 Feb 2026 12:52:11 +0000 Subject: feat: update ngit account login for non-interactive mode Update login flow to support non-interactive mode with --nsec flag. Refactor login logic to handle both interactive and non-interactive cases. Add better error handling and validation. --- src/lib/client.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/lib/client.rs') diff --git a/src/lib/client.rs b/src/lib/client.rs index 4643392..fcb7a40 100644 --- a/src/lib/client.rs +++ b/src/lib/client.rs @@ -1300,6 +1300,11 @@ pub async fn get_repo_ref_from_cache( Some(repo_coordinate.public_key), ))?; + // Use name/description/web from the latest event across all maintainers + let latest_metadata = repo_events + .last() + .and_then(|e| RepoRef::try_from((e.clone(), None)).ok()); + let mut events: HashMap = HashMap::new(); for m in &maintainers { if let Some(e) = repo_events.iter().find(|e| e.pubkey.eq(m)) { @@ -1364,6 +1369,15 @@ pub async fn get_repo_ref_from_cache( git_server, events, maintainers_without_annoucnement: Some(maintainers_without_annoucnement), + name: latest_metadata + .as_ref() + .map_or_else(|| repo_ref.name.clone(), |r| r.name.clone()), + description: latest_metadata + .as_ref() + .map_or_else(|| repo_ref.description.clone(), |r| r.description.clone()), + web: latest_metadata + .as_ref() + .map_or_else(|| repo_ref.web.clone(), |r| r.web.clone()), ..repo_ref }) } -- cgit v1.2.3