upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/lib/client.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-02-10 13:10:18 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-02-10 13:10:18 +0000
commit1e7aeb4d7972d29c6586df18128a8a4f7667845a (patch)
tree0f7e5fcaa5a005aeec7ae2d9f35b2c473ef8f785 /src/lib/client.rs
parentd2412565334f48bd31e57d29d7959c24258ccd98 (diff)
parentaae452697d152694a8f163219f707356e84b420b (diff)
Make ngit non-interactive by default
Implements non-interactive mode as the default behavior for ngit. Users must now use -i flag for interactive prompts, or provide all required arguments explicitly. Adds -d flag for sensible defaults and -f flag for force operations. Changes: - CLI interactor infrastructure supports non-interactive mode - Global flags: -i (interactive), --defaults (use defaults), -f (force) - ngit init: requires --name or --identifier, supports --defaults - ngit account: new signup command, login supports non-interactive - ngit send: validates required fields, supports --defaults - git-remote-nostr: fixed to prevent interactive prompts during push - Comprehensive test coverage: 234 unit tests + integration tests
Diffstat (limited to 'src/lib/client.rs')
-rw-r--r--src/lib/client.rs14
1 files changed, 14 insertions, 0 deletions
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(
1300 Some(repo_coordinate.public_key), 1300 Some(repo_coordinate.public_key),
1301 ))?; 1301 ))?;
1302 1302
1303 // Use name/description/web from the latest event across all maintainers
1304 let latest_metadata = repo_events
1305 .last()
1306 .and_then(|e| RepoRef::try_from((e.clone(), None)).ok());
1307
1303 let mut events: HashMap<Nip19Coordinate, nostr::Event> = HashMap::new(); 1308 let mut events: HashMap<Nip19Coordinate, nostr::Event> = HashMap::new();
1304 for m in &maintainers { 1309 for m in &maintainers {
1305 if let Some(e) = repo_events.iter().find(|e| e.pubkey.eq(m)) { 1310 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(
1364 git_server, 1369 git_server,
1365 events, 1370 events,
1366 maintainers_without_annoucnement: Some(maintainers_without_annoucnement), 1371 maintainers_without_annoucnement: Some(maintainers_without_annoucnement),
1372 name: latest_metadata
1373 .as_ref()
1374 .map_or_else(|| repo_ref.name.clone(), |r| r.name.clone()),
1375 description: latest_metadata
1376 .as_ref()
1377 .map_or_else(|| repo_ref.description.clone(), |r| r.description.clone()),
1378 web: latest_metadata
1379 .as_ref()
1380 .map_or_else(|| repo_ref.web.clone(), |r| r.web.clone()),
1367 ..repo_ref 1381 ..repo_ref
1368 }) 1382 })
1369} 1383}