diff --git a/radicle/src/storage.rs b/radicle/src/storage.rs index e6392d1e..c1429974 100644 --- a/radicle/src/storage.rs +++ b/radicle/src/storage.rs @@ -6,6 +6,7 @@ use std::ops::Deref; use std::path::{Path, PathBuf}; use std::{fmt, io}; +use nonempty::NonEmpty; use serde::{Deserialize, Serialize}; use thiserror::Error; @@ -18,6 +19,7 @@ use crate::git::ext as git_ext; use crate::git::{Qualified, RefError, RefString}; use crate::identity; use crate::identity::doc::DocError; +use crate::identity::Did; use crate::identity::{Id, IdError, IdentityError}; use crate::storage::refs::Refs; @@ -356,6 +358,14 @@ pub trait ReadRepository { /// Get all remotes. fn remotes(&self) -> Result, refs::Error>; + /// Get repository delegates. + fn delegates(&self) -> Result, IdentityError> { + let (_, doc) = self.identity_doc()?; + let doc = doc.verified()?; + + Ok(doc.delegates) + } + /// Get the repository's identity document. fn identity_doc(&self) -> Result<(Oid, identity::Doc), IdentityError>; }