From 5f45edbebe310decb06f955d95665a6ad387c6cb Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Sat, 31 May 2025 15:34:21 +0100 Subject: feat(push): prevent push if no ann event To ensure additional maintainers publish an annoucement event, require it for them to push --- src/bin/git_remote_nostr/push.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/bin/git_remote_nostr/push.rs') diff --git a/src/bin/git_remote_nostr/push.rs b/src/bin/git_remote_nostr/push.rs index c4953f8..56bf177 100644 --- a/src/bin/git_remote_nostr/push.rs +++ b/src/bin/git_remote_nostr/push.rs @@ -199,6 +199,20 @@ async fn create_and_publish_events( if proposal_refspecs.is_empty() { return Ok((vec![], true)); } + } else if repo_ref + .maintainers_without_annoucnement + .clone() + .is_some_and(|ms| ms.contains(&user_ref.public_key)) + { + for refspec in git_server_refspecs { + let (_, to) = refspec_to_from_to(refspec).unwrap(); + eprintln!( + "error {to} you must run `ngit init` before pushing updates. you've been offered maintainership but you must accept it before pushing", + ); + } + if proposal_refspecs.is_empty() { + return Ok((vec![], true)); + } } let mut events = vec![]; -- cgit v1.2.3