man: Add `rad-id.1` man page
This commit is contained in:
parent
74abd789c7
commit
cf8f262cb2
|
|
@ -126,6 +126,7 @@
|
|||
"rad.1.adoc"
|
||||
"radicle-node.1.adoc"
|
||||
"rad-patch.1.adoc"
|
||||
"rad-id.1.adoc"
|
||||
]));
|
||||
in {
|
||||
# Formatter
|
||||
|
|
|
|||
|
|
@ -0,0 +1,170 @@
|
|||
= rad-id(1)
|
||||
The Radicle Team <team@radicle.xyz>
|
||||
:doctype: manpage
|
||||
:revnumber: 0.8.0
|
||||
:revdate: 2024-03-14
|
||||
:mansource: rad {revnumber}
|
||||
:manmanual: Radicle CLI Manual
|
||||
|
||||
== Name
|
||||
|
||||
rad-id - Manage changes to a Radicle repository's identity.
|
||||
|
||||
== Synopsis
|
||||
|
||||
*rad id* [<option>...] +
|
||||
*rad id* _list_ [<option>...] +
|
||||
*rad id* _update_ [--title <string>] [--description <string>] <option>... +
|
||||
*rad id* _edit_ <revision-id> [--title <string>] [--description <string>] [<option>...] +
|
||||
*rad id* _show_ <revision-id> [<option>...] +
|
||||
*rad id* _accept_ | _reject_ <revision-id> [<option>...] +
|
||||
*rad id* _redact_ <revision-id> [<option>...]
|
||||
|
||||
== Description
|
||||
|
||||
The *rad id* command is used to manage and propose changes to the identity of a
|
||||
Radicle repository. Each repository has an associated identity document that
|
||||
contains metadata such as the repository name, description, and delegates. The
|
||||
identity document is versioned and changes to it must be signed by a quorum of
|
||||
delegates.
|
||||
|
||||
The identity document is stored as a _Canonical JSON_ document.
|
||||
|
||||
== Commands
|
||||
|
||||
With no arguments, *rad id* defaults to the _list_ command, showing the list of
|
||||
revisions to the identity of the current repository.
|
||||
|
||||
=== list
|
||||
|
||||
Lists all revisions to the identity document.
|
||||
|
||||
=== update
|
||||
|
||||
Proposes a new revision to the identity document. Revisions have a title and a
|
||||
description in addition to the proposed updated identity document, just like
|
||||
source code commits.
|
||||
|
||||
If a title and description are not provided on the command line, you will be
|
||||
prompted to enter one via your text editor.
|
||||
|
||||
Note that if you are the repository's only delegate, proposed changes will be
|
||||
automatically accepted and included into the identity document.
|
||||
|
||||
*--title* _<string>_::
|
||||
Set the title for the new revision.
|
||||
|
||||
*--description* _<string>_::
|
||||
Set the description for the new revision.
|
||||
|
||||
*--delegate* _<did>_::
|
||||
Update the identity by adding a new delegate, identified by their DID.
|
||||
|
||||
*--rescind* _<did>_::
|
||||
Update the identity by removing a delegate identified by their DID.
|
||||
|
||||
*--threshold* _<num>_::
|
||||
Update the identity by setting the number of delegates required to accept a
|
||||
revision.
|
||||
|
||||
*--visibility* _<private>_ | _<public>_::
|
||||
Update the identity by setting the repository visibility to private or public.
|
||||
|
||||
*--allow* _<did>_::
|
||||
Update the identity by giving a specific peer access to a private repository.
|
||||
|
||||
*--payload* _<id> <key> <val>_::
|
||||
Update the identity by setting metadata in one of the identity payloads.
|
||||
This can be used to update a repository's project name or description, for
|
||||
example.
|
||||
|
||||
*--no-confirm*::
|
||||
Don't ask for confirmation before creating the revision.
|
||||
|
||||
=== edit
|
||||
|
||||
Edit an existing revision to the identity document. The revision must still be
|
||||
in the "active" state. The same options as for *update* are available. Note
|
||||
that this edits a proposed revision to the identity; to edit the identity
|
||||
document itself, use *update*.
|
||||
|
||||
=== show
|
||||
|
||||
Show a specific revision of the identity document.
|
||||
|
||||
=== accept
|
||||
|
||||
Accept a proposed revision to the identity document. The revision must be in
|
||||
the "active" state and the caller must be a delegate.
|
||||
|
||||
=== reject
|
||||
|
||||
Reject a proposed revision to the identity document. The revision must be in
|
||||
the "active" state and the caller must be a delegate.
|
||||
|
||||
=== redact
|
||||
|
||||
Redact an existing revision to the identity document. The revision must not be
|
||||
in the "accepted" state and the caller must be the author of the revision.
|
||||
|
||||
== Options
|
||||
|
||||
*--repo* _<rid>_::
|
||||
Specify the repository to operate on. Defaults to the current repository.
|
||||
|
||||
*--quiet*, *-q*::
|
||||
Suppress output.
|
||||
|
||||
*--help*::
|
||||
Print help information.
|
||||
|
||||
== Examples
|
||||
|
||||
=== Adding a delegate
|
||||
|
||||
To add a new delegate to a repository and update the threshold, use the
|
||||
*update* command:
|
||||
|
||||
$ rad id update --title "Add Bob" --description "Add Bob as a delegate" \
|
||||
--delegate did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk \
|
||||
--threshold 2
|
||||
|
||||
This will create a new revision proposing to add the delegate identified by the
|
||||
given DID and set the threshold to `2`, meaning two delegates must sign off on
|
||||
future identity changes.
|
||||
|
||||
=== Changing repository visibility
|
||||
|
||||
To change a repository from public to private:
|
||||
|
||||
$ rad id update --visibility private
|
||||
|
||||
Note that this will require acceptance from a quorum of delegates to take
|
||||
effect.
|
||||
|
||||
=== Changing a repository payload
|
||||
|
||||
To change a repository's name and description, this is usually done through the
|
||||
*xyz.radicle.project* payload:
|
||||
|
||||
$ rad id update --title "Update title and description" \
|
||||
--description "Improve clarity" \
|
||||
--payload xyz.radicle.project title '"radicle-beans"' \
|
||||
--payload xyz.radicle.project description '"Tasty Radicle beans"'
|
||||
|
||||
Note that the values passed to *--payload*, eg. `"radicle-beans"` must be valid
|
||||
_JSON_ values. This means that strings should be double quoted, as in the
|
||||
example above.
|
||||
|
||||
=== Removing a delegate
|
||||
|
||||
To remove a delegate and update the threshold, use the *--rescind* option:
|
||||
|
||||
$ rad id update --title "Remove Bob" \
|
||||
--description "Bob is no longer a delegate" \
|
||||
--rescind did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk \
|
||||
--threshold 1
|
||||
|
||||
As with adding a delegate, this change will require approval from the remaining
|
||||
delegates. Make sure you set an appropriate new threshold when removing
|
||||
delegates!
|
||||
|
|
@ -38,6 +38,11 @@ Usage
|
|||
rad id show <revision-id> [<option>...]
|
||||
rad id <accept | reject | redact> <revision-id> [<option>...]
|
||||
|
||||
The *rad id* command is used to manage and propose changes to the
|
||||
identity of a Radicle repository.
|
||||
|
||||
See the rad-id(1) man page for more information.
|
||||
|
||||
Options
|
||||
|
||||
--repo <rid> Repository (defaults to the current repository)
|
||||
|
|
@ -117,7 +122,10 @@ impl Args for Options {
|
|||
|
||||
while let Some(arg) = parser.next()? {
|
||||
match arg {
|
||||
Long("help") | Short('h') => {
|
||||
Long("help") => {
|
||||
return Err(Error::HelpManual { name: "rad-id" }.into());
|
||||
}
|
||||
Short('h') => {
|
||||
return Err(Error::Help.into());
|
||||
}
|
||||
Long("title")
|
||||
|
|
|
|||
Loading…
Reference in New Issue