summaryrefslogtreecommitdiff
path: root/src/cmd/id.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/id.rs')
-rw-r--r--src/cmd/id.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/cmd/id.rs b/src/cmd/id.rs
index 57e79b0..9f1de7e 100644
--- a/src/cmd/id.rs
+++ b/src/cmd/id.rs
@@ -3,7 +3,6 @@
use std::{
collections::BTreeSet,
- num::NonZeroUsize,
path::PathBuf,
};
@@ -134,7 +133,8 @@ pub fn identity_ref(id: Either<&IdentityId, &git2::Config>) -> cmd::Result<Refna
#[derive(serde::Serialize, serde::Deserialize)]
struct Editable {
keys: metadata::KeySet<'static>,
- threshold: NonZeroUsize,
+ #[serde(flatten)]
+ roles: metadata::identity::Roles,
mirrors: BTreeSet<Url>,
expires: Option<metadata::DateTime>,
custom: metadata::Custom,
@@ -144,7 +144,7 @@ impl From<metadata::Identity> for Editable {
fn from(
metadata::Identity {
keys,
- threshold,
+ roles,
mirrors,
expires,
custom,
@@ -153,7 +153,7 @@ impl From<metadata::Identity> for Editable {
) -> Self {
Self {
keys,
- threshold,
+ roles,
mirrors,
expires,
custom,
@@ -167,19 +167,23 @@ impl TryFrom<Editable> for metadata::Identity {
fn try_from(
Editable {
keys,
- threshold,
+ roles,
mirrors,
expires,
custom,
}: Editable,
) -> Result<Self, Self::Error> {
ensure!(!keys.is_empty(), "keys cannot be empty");
+ ensure!(
+ !roles.is_threshold(),
+ "flat threshold is deprecated, please specify the root keys explicity"
+ );
Ok(Self {
fmt_version: Default::default(),
prev: None,
keys,
- threshold,
+ roles,
mirrors,
expires,
custom,