From 5d6d2db3e6de2c4e1d1ebd6bde9bd02a889b4d09 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Thu, 31 Oct 2024 16:31:19 +0000 Subject: feat(init): support nostr state opt-out when multiple maintainers enable opting out of storing state on nostr this prevents other maintainers from pushing a state to the git server which nostr servers wouldnt see because they are using the nostr state. --- src/bin/git_remote_nostr/push.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/bin/git_remote_nostr') diff --git a/src/bin/git_remote_nostr/push.rs b/src/bin/git_remote_nostr/push.rs index db86c04..8fc8349 100644 --- a/src/bin/git_remote_nostr/push.rs +++ b/src/bin/git_remote_nostr/push.rs @@ -153,10 +153,18 @@ pub async fn run_push( if !git_server_refspecs.is_empty() { let new_state = generate_updated_state(git_repo, &existing_state, &git_server_refspecs)?; - let new_repo_state = - RepoState::build(repo_ref.identifier.clone(), new_state, &signer).await?; + let store_state = + if let Ok(Some(nostate)) = git_repo.get_git_config_item("nostr.nostate", None) { + !nostate.eq("true") + } else { + true + }; - events.push(new_repo_state.event); + if store_state { + let new_repo_state = + RepoState::build(repo_ref.identifier.clone(), new_state, &signer).await?; + events.push(new_repo_state.event); + } for event in get_merged_status_events( &term, -- cgit v1.2.3