From 830056c10111c6b2049513323e7e7dba81260138 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Mon, 2 Dec 2024 05:58:58 +0000 Subject: fix(repo_ref): `try_from` capture `euc` if there is no marker or "euc". also capture name and description even if there are additional items in the tag array. --- src/lib/repo_ref.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/lib') diff --git a/src/lib/repo_ref.rs b/src/lib/repo_ref.rs index d566b43..69fbe64 100644 --- a/src/lib/repo_ref.rs +++ b/src/lib/repo_ref.rs @@ -57,9 +57,9 @@ impl TryFrom<(nostr::Event, Option)> for RepoRef { for tag in event.tags.iter() { match tag.as_slice() { - [t, id] if t == "d" => r.identifier = id.clone(), - [t, name] if t == "name" => r.name = name.clone(), - [t, description] if t == "description" => r.description = description.clone(), + [t, id, ..] if t == "d" => r.identifier = id.clone(), + [t, name, ..] if t == "name" => r.name = name.clone(), + [t, description, ..] if t == "description" => r.description = description.clone(), [t, clone @ ..] if t == "clone" => { r.git_server = clone.to_vec(); } @@ -73,6 +73,14 @@ impl TryFrom<(nostr::Event, Option)> for RepoRef { { r.root_commit = commit_id.clone(); } + [t, commit_id, marker] + if t == "r" + && marker == "euc" + && commit_id.len() == 40 + && git2::Oid::from_str(commit_id).is_ok() => + { + r.root_commit = commit_id.clone(); + } [t, relays @ ..] if t == "relays" => { for relay in relays { if let Ok(relay_url) = RelayUrl::parse(relay) { -- cgit v1.2.3