mirror of
https://codeberg.org/Cyborus/forgejo-cli.git
synced 2024-11-10 03:59:31 +01:00
Merge pull request 'improve help/docs' (#102) from improve-help into main
Reviewed-on: https://codeberg.org/Cyborus/forgejo-cli/pulls/102
This commit is contained in:
commit
da982e0873
6 changed files with 105 additions and 21 deletions
12
src/auth.rs
12
src/auth.rs
|
@ -3,10 +3,15 @@ use eyre::OptionExt;
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum AuthCommand {
|
pub enum AuthCommand {
|
||||||
|
/// Log in to an instance.
|
||||||
|
///
|
||||||
|
/// Opens an auth page in your browser
|
||||||
Login,
|
Login,
|
||||||
Logout {
|
/// Deletes login info for an instance
|
||||||
host: String,
|
Logout { host: String },
|
||||||
},
|
/// Add an application token for an instance
|
||||||
|
///
|
||||||
|
/// Use this if `fj auth login` doesn't work
|
||||||
AddKey {
|
AddKey {
|
||||||
/// The domain name of the forgejo instance.
|
/// The domain name of the forgejo instance.
|
||||||
host: String,
|
host: String,
|
||||||
|
@ -15,6 +20,7 @@ pub enum AuthCommand {
|
||||||
/// The key to add. If not present, the key will be read in from stdin.
|
/// The key to add. If not present, the key will be read in from stdin.
|
||||||
key: Option<String>,
|
key: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// List all instances you're currently logged into
|
||||||
List,
|
List,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ use crate::repo::{RepoArg, RepoInfo, RepoName};
|
||||||
|
|
||||||
#[derive(Args, Clone, Debug)]
|
#[derive(Args, Clone, Debug)]
|
||||||
pub struct IssueCommand {
|
pub struct IssueCommand {
|
||||||
|
/// The local git remote that points to the repo to operate on.
|
||||||
#[clap(long, short = 'R')]
|
#[clap(long, short = 'R')]
|
||||||
remote: Option<String>,
|
remote: Option<String>,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
|
@ -19,29 +20,38 @@ pub struct IssueCommand {
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum IssueSubcommand {
|
pub enum IssueSubcommand {
|
||||||
|
/// Create a new issue on a repo
|
||||||
Create {
|
Create {
|
||||||
title: String,
|
title: String,
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
body: Option<String>,
|
body: Option<String>,
|
||||||
#[clap(long, short)]
|
#[clap(long, short, id = "[HOST/]OWNER/REPO")]
|
||||||
repo: Option<RepoArg>,
|
repo: Option<RepoArg>,
|
||||||
},
|
},
|
||||||
|
/// Edit an issue
|
||||||
Edit {
|
Edit {
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
issue: IssueId,
|
issue: IssueId,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
command: EditCommand,
|
command: EditCommand,
|
||||||
},
|
},
|
||||||
|
/// Add a comment on an issue
|
||||||
Comment {
|
Comment {
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
issue: IssueId,
|
issue: IssueId,
|
||||||
body: Option<String>,
|
body: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// Close an issue
|
||||||
Close {
|
Close {
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
issue: IssueId,
|
issue: IssueId,
|
||||||
|
/// A comment to leave on the issue before closing it
|
||||||
#[clap(long, short)]
|
#[clap(long, short)]
|
||||||
with_msg: Option<Option<String>>,
|
with_msg: Option<Option<String>>,
|
||||||
},
|
},
|
||||||
|
/// Search for an issue in a repo
|
||||||
Search {
|
Search {
|
||||||
#[clap(long, short)]
|
#[clap(long, short, id = "[HOST/]OWNER/REPO")]
|
||||||
repo: Option<RepoArg>,
|
repo: Option<RepoArg>,
|
||||||
query: Option<String>,
|
query: Option<String>,
|
||||||
#[clap(long, short)]
|
#[clap(long, short)]
|
||||||
|
@ -53,12 +63,16 @@ pub enum IssueSubcommand {
|
||||||
#[clap(long, short)]
|
#[clap(long, short)]
|
||||||
state: Option<State>,
|
state: Option<State>,
|
||||||
},
|
},
|
||||||
|
/// View an issue's info
|
||||||
View {
|
View {
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
id: IssueId,
|
id: IssueId,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
command: Option<ViewCommand>,
|
command: Option<ViewCommand>,
|
||||||
},
|
},
|
||||||
|
/// Open an issue in your browser
|
||||||
Browse {
|
Browse {
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
id: IssueId,
|
id: IssueId,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -130,12 +144,11 @@ impl From<State> for forgejo_api::structs::IssueListIssuesQueryState {
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum EditCommand {
|
pub enum EditCommand {
|
||||||
Title {
|
/// Edit an issue's title
|
||||||
new_title: Option<String>,
|
Title { new_title: Option<String> },
|
||||||
},
|
/// Edit an issue's text content
|
||||||
Body {
|
Body { new_body: Option<String> },
|
||||||
new_body: Option<String>,
|
/// Edit a comment on an issue
|
||||||
},
|
|
||||||
Comment {
|
Comment {
|
||||||
idx: usize,
|
idx: usize,
|
||||||
new_body: Option<String>,
|
new_body: Option<String>,
|
||||||
|
@ -144,8 +157,11 @@ pub enum EditCommand {
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum ViewCommand {
|
pub enum ViewCommand {
|
||||||
|
/// View an issue's title and body. The default
|
||||||
Body,
|
Body,
|
||||||
|
/// View a specific
|
||||||
Comment { idx: usize },
|
Comment { idx: usize },
|
||||||
|
/// List every comment
|
||||||
Comments,
|
Comments,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
src/prs.rs
12
src/prs.rs
|
@ -18,7 +18,7 @@ use crate::{
|
||||||
|
|
||||||
#[derive(Args, Clone, Debug)]
|
#[derive(Args, Clone, Debug)]
|
||||||
pub struct PrCommand {
|
pub struct PrCommand {
|
||||||
/// The git remote to operate on.
|
/// The local git remote that points to the repo to operate on.
|
||||||
#[clap(long, short = 'R')]
|
#[clap(long, short = 'R')]
|
||||||
remote: Option<String>,
|
remote: Option<String>,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
|
@ -60,12 +60,13 @@ pub enum PrSubcommand {
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
body: Option<String>,
|
body: Option<String>,
|
||||||
/// The repo to create this issue on
|
/// The repo to create this issue on
|
||||||
#[clap(long, short)]
|
#[clap(long, short, id = "[HOST/]OWNER/REPO")]
|
||||||
repo: Option<RepoArg>,
|
repo: Option<RepoArg>,
|
||||||
},
|
},
|
||||||
/// View the contents of a pull request
|
/// View the contents of a pull request
|
||||||
View {
|
View {
|
||||||
/// The pull request to view.
|
/// The pull request to view.
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
id: Option<IssueId>,
|
id: Option<IssueId>,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
command: Option<ViewCommand>,
|
command: Option<ViewCommand>,
|
||||||
|
@ -73,6 +74,7 @@ pub enum PrSubcommand {
|
||||||
/// View the mergability and CI status of a pull request
|
/// View the mergability and CI status of a pull request
|
||||||
Status {
|
Status {
|
||||||
/// The pull request to view.
|
/// The pull request to view.
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
id: Option<IssueId>,
|
id: Option<IssueId>,
|
||||||
},
|
},
|
||||||
/// Checkout a pull request in a new branch
|
/// Checkout a pull request in a new branch
|
||||||
|
@ -80,6 +82,7 @@ pub enum PrSubcommand {
|
||||||
/// The pull request to check out.
|
/// The pull request to check out.
|
||||||
///
|
///
|
||||||
/// Prefix with ^ to get a pull request from the parent repo.
|
/// Prefix with ^ to get a pull request from the parent repo.
|
||||||
|
#[clap(id = "ID")]
|
||||||
pr: PrNumber,
|
pr: PrNumber,
|
||||||
/// The name to give the newly created branch.
|
/// The name to give the newly created branch.
|
||||||
///
|
///
|
||||||
|
@ -90,6 +93,7 @@ pub enum PrSubcommand {
|
||||||
/// Add a comment on a pull request
|
/// Add a comment on a pull request
|
||||||
Comment {
|
Comment {
|
||||||
/// The pull request to comment on.
|
/// The pull request to comment on.
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
pr: Option<IssueId>,
|
pr: Option<IssueId>,
|
||||||
/// The text content of the comment.
|
/// The text content of the comment.
|
||||||
///
|
///
|
||||||
|
@ -99,6 +103,7 @@ pub enum PrSubcommand {
|
||||||
/// Edit the contents of a pull request
|
/// Edit the contents of a pull request
|
||||||
Edit {
|
Edit {
|
||||||
/// The pull request to edit.
|
/// The pull request to edit.
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
pr: Option<IssueId>,
|
pr: Option<IssueId>,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
command: EditCommand,
|
command: EditCommand,
|
||||||
|
@ -106,6 +111,7 @@ pub enum PrSubcommand {
|
||||||
/// Close a pull request, without merging.
|
/// Close a pull request, without merging.
|
||||||
Close {
|
Close {
|
||||||
/// The pull request to close.
|
/// The pull request to close.
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
pr: Option<IssueId>,
|
pr: Option<IssueId>,
|
||||||
/// A comment to add before closing.
|
/// A comment to add before closing.
|
||||||
///
|
///
|
||||||
|
@ -116,6 +122,7 @@ pub enum PrSubcommand {
|
||||||
/// Merge a pull request
|
/// Merge a pull request
|
||||||
Merge {
|
Merge {
|
||||||
/// The pull request to merge.
|
/// The pull request to merge.
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
pr: Option<IssueId>,
|
pr: Option<IssueId>,
|
||||||
/// The merge style to use.
|
/// The merge style to use.
|
||||||
#[clap(long, short = 'M')]
|
#[clap(long, short = 'M')]
|
||||||
|
@ -133,6 +140,7 @@ pub enum PrSubcommand {
|
||||||
/// Open a pull request in your browser
|
/// Open a pull request in your browser
|
||||||
Browse {
|
Browse {
|
||||||
/// The pull request to open in your browser.
|
/// The pull request to open in your browser.
|
||||||
|
#[clap(id = "[REPO#]ID")]
|
||||||
id: Option<IssueId>,
|
id: Option<IssueId>,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,9 +14,11 @@ use crate::{
|
||||||
|
|
||||||
#[derive(Args, Clone, Debug)]
|
#[derive(Args, Clone, Debug)]
|
||||||
pub struct ReleaseCommand {
|
pub struct ReleaseCommand {
|
||||||
|
/// The local git remote that points to the repo to operate on.
|
||||||
#[clap(long, short = 'R')]
|
#[clap(long, short = 'R')]
|
||||||
remote: Option<String>,
|
remote: Option<String>,
|
||||||
#[clap(long, short)]
|
/// The name of the repository to operate on.
|
||||||
|
#[clap(long, short, id = "[HOST/]OWNER/REPO")]
|
||||||
repo: Option<RepoArg>,
|
repo: Option<RepoArg>,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
command: ReleaseSubcommand,
|
command: ReleaseSubcommand,
|
||||||
|
@ -24,6 +26,7 @@ pub struct ReleaseCommand {
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum ReleaseSubcommand {
|
pub enum ReleaseSubcommand {
|
||||||
|
/// Create a new release
|
||||||
Create {
|
Create {
|
||||||
name: String,
|
name: String,
|
||||||
#[clap(long, short = 'T')]
|
#[clap(long, short = 'T')]
|
||||||
|
@ -56,6 +59,7 @@ pub enum ReleaseSubcommand {
|
||||||
#[clap(long, short)]
|
#[clap(long, short)]
|
||||||
prerelease: bool,
|
prerelease: bool,
|
||||||
},
|
},
|
||||||
|
/// Edit a release's info
|
||||||
Edit {
|
Edit {
|
||||||
name: String,
|
name: String,
|
||||||
#[clap(long, short = 'n')]
|
#[clap(long, short = 'n')]
|
||||||
|
@ -73,40 +77,45 @@ pub enum ReleaseSubcommand {
|
||||||
#[clap(long, short)]
|
#[clap(long, short)]
|
||||||
prerelease: Option<bool>,
|
prerelease: Option<bool>,
|
||||||
},
|
},
|
||||||
|
/// Delete a release
|
||||||
Delete {
|
Delete {
|
||||||
name: String,
|
name: String,
|
||||||
#[clap(long, short = 't')]
|
#[clap(long, short = 't')]
|
||||||
by_tag: bool,
|
by_tag: bool,
|
||||||
},
|
},
|
||||||
|
/// List all the releases on a repo
|
||||||
List {
|
List {
|
||||||
#[clap(long, short = 'p')]
|
#[clap(long, short = 'p')]
|
||||||
include_prerelease: bool,
|
include_prerelease: bool,
|
||||||
#[clap(long, short = 'd')]
|
#[clap(long, short = 'd')]
|
||||||
include_draft: bool,
|
include_draft: bool,
|
||||||
},
|
},
|
||||||
|
/// View a release's info
|
||||||
View {
|
View {
|
||||||
name: String,
|
name: String,
|
||||||
#[clap(long, short = 't')]
|
#[clap(long, short = 't')]
|
||||||
by_tag: bool,
|
by_tag: bool,
|
||||||
},
|
},
|
||||||
Browse {
|
/// Open a release in your browser
|
||||||
name: Option<String>,
|
Browse { name: Option<String> },
|
||||||
},
|
/// Commands on a release's attached files
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
Asset(AssetCommand),
|
Asset(AssetCommand),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum AssetCommand {
|
pub enum AssetCommand {
|
||||||
|
/// Create a new attachment on a release
|
||||||
Create {
|
Create {
|
||||||
release: String,
|
release: String,
|
||||||
path: std::path::PathBuf,
|
path: std::path::PathBuf,
|
||||||
name: Option<String>,
|
name: Option<String>,
|
||||||
},
|
},
|
||||||
Delete {
|
/// Remove an attachment from a release
|
||||||
release: String,
|
Delete { release: String, asset: String },
|
||||||
asset: String,
|
/// Download an attached file
|
||||||
},
|
///
|
||||||
|
/// Use `source.zip` or `source.tar.gz` to download the repo archive
|
||||||
Download {
|
Download {
|
||||||
release: String,
|
release: String,
|
||||||
asset: String,
|
asset: String,
|
||||||
|
|
17
src/repo.rs
17
src/repo.rs
|
@ -288,6 +288,7 @@ impl std::fmt::Display for RepoArgError {
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum RepoCommand {
|
pub enum RepoCommand {
|
||||||
|
/// Creates a new repository
|
||||||
Create {
|
Create {
|
||||||
repo: String,
|
repo: String,
|
||||||
|
|
||||||
|
@ -304,32 +305,48 @@ pub enum RepoCommand {
|
||||||
#[clap(long, short)]
|
#[clap(long, short)]
|
||||||
push: bool,
|
push: bool,
|
||||||
},
|
},
|
||||||
|
/// Fork a repository onto your account
|
||||||
Fork {
|
Fork {
|
||||||
|
#[clap(id = "[HOST/]OWNER/REPO")]
|
||||||
repo: RepoArg,
|
repo: RepoArg,
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
name: Option<String>,
|
name: Option<String>,
|
||||||
#[clap(long, short = 'R')]
|
#[clap(long, short = 'R')]
|
||||||
remote: Option<String>,
|
remote: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// View a repo's info
|
||||||
View {
|
View {
|
||||||
|
#[clap(id = "[HOST/]OWNER/REPO")]
|
||||||
name: Option<RepoArg>,
|
name: Option<RepoArg>,
|
||||||
#[clap(long, short = 'R')]
|
#[clap(long, short = 'R')]
|
||||||
remote: Option<String>,
|
remote: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// Clone a repo's code locally
|
||||||
Clone {
|
Clone {
|
||||||
|
#[clap(id = "[HOST/]OWNER/REPO")]
|
||||||
repo: RepoArg,
|
repo: RepoArg,
|
||||||
path: Option<PathBuf>,
|
path: Option<PathBuf>,
|
||||||
},
|
},
|
||||||
|
/// Add a star to a repo
|
||||||
Star {
|
Star {
|
||||||
|
#[clap(id = "[HOST/]OWNER/REPO")]
|
||||||
repo: RepoArg,
|
repo: RepoArg,
|
||||||
},
|
},
|
||||||
|
/// Take away a star from a repo
|
||||||
Unstar {
|
Unstar {
|
||||||
|
#[clap(id = "[HOST/]OWNER/REPO")]
|
||||||
repo: RepoArg,
|
repo: RepoArg,
|
||||||
},
|
},
|
||||||
|
/// Delete a repository
|
||||||
|
///
|
||||||
|
/// This cannot be undone!
|
||||||
Delete {
|
Delete {
|
||||||
|
#[clap(id = "[HOST/]OWNER/REPO")]
|
||||||
repo: RepoArg,
|
repo: RepoArg,
|
||||||
},
|
},
|
||||||
|
/// Open a repository's page in your browser
|
||||||
Browse {
|
Browse {
|
||||||
|
#[clap(id = "[HOST/]OWNER/REPO")]
|
||||||
name: Option<RepoArg>,
|
name: Option<RepoArg>,
|
||||||
#[clap(long, short = 'R')]
|
#[clap(long, short = 'R')]
|
||||||
remote: Option<String>,
|
remote: Option<String>,
|
||||||
|
|
28
src/user.rs
28
src/user.rs
|
@ -6,6 +6,7 @@ use crate::{repo::RepoInfo, SpecialRender};
|
||||||
|
|
||||||
#[derive(Args, Clone, Debug)]
|
#[derive(Args, Clone, Debug)]
|
||||||
pub struct UserCommand {
|
pub struct UserCommand {
|
||||||
|
/// The local git remote that points to the repo to operate on.
|
||||||
#[clap(long, short = 'R')]
|
#[clap(long, short = 'R')]
|
||||||
remote: Option<String>,
|
remote: Option<String>,
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
|
@ -14,46 +15,66 @@ pub struct UserCommand {
|
||||||
|
|
||||||
#[derive(Subcommand, Clone, Debug)]
|
#[derive(Subcommand, Clone, Debug)]
|
||||||
pub enum UserSubcommand {
|
pub enum UserSubcommand {
|
||||||
|
/// Search for a user by username
|
||||||
Search {
|
Search {
|
||||||
/// The name to search for
|
/// The name to search for
|
||||||
query: String,
|
query: String,
|
||||||
#[clap(long, short)]
|
#[clap(long, short)]
|
||||||
page: Option<usize>,
|
page: Option<usize>,
|
||||||
},
|
},
|
||||||
|
/// View a user's profile page
|
||||||
View {
|
View {
|
||||||
/// The name of the user to view
|
/// The name of the user to view
|
||||||
|
///
|
||||||
|
/// Omit to view your own page
|
||||||
user: Option<String>,
|
user: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// Open a user's profile page in your browser
|
||||||
Browse {
|
Browse {
|
||||||
/// The name of the user to open in your browser
|
/// The name of the user to open in your browser
|
||||||
|
///
|
||||||
|
/// Omit to view your own page
|
||||||
user: Option<String>,
|
user: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// Follow a user
|
||||||
Follow {
|
Follow {
|
||||||
/// The name of the user to follow
|
/// The name of the user to follow
|
||||||
user: String,
|
user: String,
|
||||||
},
|
},
|
||||||
|
/// Unfollow a user
|
||||||
Unfollow {
|
Unfollow {
|
||||||
/// The name of the user to follow
|
/// The name of the user to follow
|
||||||
user: String,
|
user: String,
|
||||||
},
|
},
|
||||||
|
/// List everyone a user's follows
|
||||||
Following {
|
Following {
|
||||||
/// The name of the user whose follows to list
|
/// The name of the user whose follows to list
|
||||||
|
///
|
||||||
|
/// Omit to view your own follows
|
||||||
user: Option<String>,
|
user: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// List a user's followers
|
||||||
Followers {
|
Followers {
|
||||||
/// The name of the user whose followers to list
|
/// The name of the user whose followers to list
|
||||||
|
///
|
||||||
|
/// Omit to view your own followers
|
||||||
user: Option<String>,
|
user: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// Block a user
|
||||||
Block {
|
Block {
|
||||||
/// The name of the user to block
|
/// The name of the user to block
|
||||||
user: String,
|
user: String,
|
||||||
},
|
},
|
||||||
|
/// Unblock a user
|
||||||
Unblock {
|
Unblock {
|
||||||
/// The name of the user to unblock
|
/// The name of the user to unblock
|
||||||
user: String,
|
user: String,
|
||||||
},
|
},
|
||||||
|
/// List a user's repositories
|
||||||
Repos {
|
Repos {
|
||||||
/// The name of the user whose repos to list
|
/// The name of the user whose repos to list
|
||||||
|
///
|
||||||
|
/// Omit to view your own repos.
|
||||||
user: Option<String>,
|
user: Option<String>,
|
||||||
/// List starred repos instead of owned repos
|
/// List starred repos instead of owned repos
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
|
@ -62,14 +83,21 @@ pub enum UserSubcommand {
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
sort: Option<RepoSortOrder>,
|
sort: Option<RepoSortOrder>,
|
||||||
},
|
},
|
||||||
|
/// List the organizations a user is a member of
|
||||||
Orgs {
|
Orgs {
|
||||||
/// The name of the user to view org membership of
|
/// The name of the user to view org membership of
|
||||||
|
///
|
||||||
|
/// Omit to view your own orgs.
|
||||||
user: Option<String>,
|
user: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// List a user's recent activity
|
||||||
Activity {
|
Activity {
|
||||||
/// The name of the user to view the activity of
|
/// The name of the user to view the activity of
|
||||||
|
///
|
||||||
|
/// Omit to view your own activity.
|
||||||
user: Option<String>,
|
user: Option<String>,
|
||||||
},
|
},
|
||||||
|
/// Edit your user settings
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
Edit(EditCommand),
|
Edit(EditCommand),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue