upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/bin/git_remote_nostr
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/git_remote_nostr')
-rw-r--r--src/bin/git_remote_nostr/push.rs17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/bin/git_remote_nostr/push.rs b/src/bin/git_remote_nostr/push.rs
index 31c920a..5cbec7f 100644
--- a/src/bin/git_remote_nostr/push.rs
+++ b/src/bin/git_remote_nostr/push.rs
@@ -20,7 +20,7 @@ use ngit::{
20 self, KIND_PULL_REQUEST, KIND_PULL_REQUEST_UPDATE, event_to_cover_letter, get_event_root, 20 self, KIND_PULL_REQUEST, KIND_PULL_REQUEST_UPDATE, event_to_cover_letter, get_event_root,
21 }, 21 },
22 list::list_from_remotes, 22 list::list_from_remotes,
23 login::{self, user::UserRef}, 23 login::{existing::load_existing_login, user::UserRef},
24 push::{push_to_remote, select_servers_push_refs_and_generate_pr_or_pr_update_event}, 24 push::{push_to_remote, select_servers_push_refs_and_generate_pr_or_pr_update_event},
25 repo_ref::{self, get_repo_config_from_yaml, is_grasp_server_clone_url}, 25 repo_ref::{self, get_repo_config_from_yaml, is_grasp_server_clone_url},
26 repo_state, 26 repo_state,
@@ -173,6 +173,7 @@ pub async fn run_push(
173 Ok(()) 173 Ok(())
174} 174}
175 175
176#[allow(clippy::too_many_lines)]
176async fn create_and_publish_events_and_proposals( 177async fn create_and_publish_events_and_proposals(
177 git_repo: &Repo, 178 git_repo: &Repo,
178 repo_ref: &RepoRef, 179 repo_ref: &RepoRef,
@@ -182,8 +183,18 @@ async fn create_and_publish_events_and_proposals(
182 existing_state: HashMap<String, String>, 183 existing_state: HashMap<String, String>,
183 term: &Term, 184 term: &Term,
184) -> Result<(Vec<String>, bool)> { 185) -> Result<(Vec<String>, bool)> {
185 let (signer, mut user_ref, _) = 186 let (signer, mut user_ref, _) = load_existing_login(
186 login::login_or_signup(&Some(git_repo), &None, &None, Some(client), true).await?; 187 &Some(git_repo),
188 &None,
189 &None,
190 &None,
191 Some(client),
192 true, // silent
193 false, // prompt_for_password - MUST be false for non-interactive
194 true, // fetch_profile_updates
195 )
196 .await
197 .context("Authentication required. Run 'ngit account login' first, then try again.")?;
187 198
188 if !repo_ref.maintainers.contains(&user_ref.public_key) { 199 if !repo_ref.maintainers.contains(&user_ref.public_key) {
189 for refspec in git_server_refspecs { 200 for refspec in git_server_refspecs {