upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/bin/git_remote_nostr/push.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2024-10-31 16:31:19 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2024-10-31 16:31:19 +0000
commit5d6d2db3e6de2c4e1d1ebd6bde9bd02a889b4d09 (patch)
treeeb3e2fad090f8c04a4ceabc2c9e3427e56fdcab4 /src/bin/git_remote_nostr/push.rs
parent8f6c8f6f148a108cbbe11892fffc5cef729526c4 (diff)
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.
Diffstat (limited to 'src/bin/git_remote_nostr/push.rs')
-rw-r--r--src/bin/git_remote_nostr/push.rs14
1 files changed, 11 insertions, 3 deletions
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(
153 if !git_server_refspecs.is_empty() { 153 if !git_server_refspecs.is_empty() {
154 let new_state = generate_updated_state(git_repo, &existing_state, &git_server_refspecs)?; 154 let new_state = generate_updated_state(git_repo, &existing_state, &git_server_refspecs)?;
155 155
156 let new_repo_state = 156 let store_state =
157 RepoState::build(repo_ref.identifier.clone(), new_state, &signer).await?; 157 if let Ok(Some(nostate)) = git_repo.get_git_config_item("nostr.nostate", None) {
158 !nostate.eq("true")
159 } else {
160 true
161 };
158 162
159 events.push(new_repo_state.event); 163 if store_state {
164 let new_repo_state =
165 RepoState::build(repo_ref.identifier.clone(), new_state, &signer).await?;
166 events.push(new_repo_state.event);
167 }
160 168
161 for event in get_merged_status_events( 169 for event in get_merged_status_events(
162 &term, 170 &term,