From 069a4c21c56291455fb9af09b693672889f98a03 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Fri, 13 Sep 2024 17:00:00 +0100 Subject: refactor: abstract find pr from branch name so it is done consistantly across ngit and the remote helper --- src/bin/ngit/sub_commands/pull.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'src/bin/ngit/sub_commands/pull.rs') diff --git a/src/bin/ngit/sub_commands/pull.rs b/src/bin/ngit/sub_commands/pull.rs index eba6fc5..9a3d911 100644 --- a/src/bin/ngit/sub_commands/pull.rs +++ b/src/bin/ngit/sub_commands/pull.rs @@ -1,4 +1,5 @@ use anyhow::{bail, Context, Result}; +use ngit::git_events::is_event_proposal_root_for_branch; use nostr_sdk::PublicKey; use crate::{ @@ -7,10 +8,7 @@ use crate::{ get_proposals_and_revisions_from_cache, get_repo_ref_from_cache, Client, Connect, }, git::{str_to_sha1, Repo, RepoActions}, - git_events::{ - event_is_revision_root, event_to_cover_letter, get_commit_id_from_patch, - get_most_recent_patch_with_ancestors, tag_value, - }, + git_events::{get_commit_id_from_patch, get_most_recent_patch_with_ancestors, tag_value}, repo_ref::get_repo_coordinates, }; @@ -37,7 +35,7 @@ pub async fn launch() -> Result<()> { let repo_ref = get_repo_ref_from_cache(git_repo_path, &repo_coordinates).await?; - let public_key_if_known = + let logged_in_public_key = if let Ok(Some(npub)) = git_repo.get_git_config_item("nostr.npub", None) { PublicKey::parse(npub).ok() } else { @@ -49,15 +47,12 @@ pub async fn launch() -> Result<()> { .await? .iter() .find(|e| { - event_to_cover_letter(e).is_ok_and(|cl| { - (public_key_if_known.is_some_and(|public_key| e.author().eq(&public_key)) - && (branch_name.eq(&format!("pr/{}", cl.branch_name)) - || cl.branch_name.eq(&branch_name))) - || cl.get_branch_name().is_ok_and(|s| s.eq(&branch_name)) - }) && !event_is_revision_root(e) + is_event_proposal_root_for_branch(e, &branch_name, &logged_in_public_key) + .unwrap_or(false) }) .context("cannot find proposal that matches the current branch name")? .clone(); + let commit_events = get_all_proposal_patch_events_from_cache( git_repo_path, &repo_ref, -- cgit v1.2.3