diff options
Diffstat (limited to 'src/bin/ngit/cli.rs')
| -rw-r--r-- | src/bin/ngit/cli.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bin/ngit/cli.rs b/src/bin/ngit/cli.rs index 037d17f..fa5d906 100644 --- a/src/bin/ngit/cli.rs +++ b/src/bin/ngit/cli.rs | |||
| @@ -106,6 +106,11 @@ pub enum Commands { | |||
| 106 | /// publish a repository to nostr; signal you are its maintainer accepting | 106 | /// publish a repository to nostr; signal you are its maintainer accepting |
| 107 | /// PRs and issues | 107 | /// PRs and issues |
| 108 | Init(sub_commands::init::SubCommandArgs), | 108 | Init(sub_commands::init::SubCommandArgs), |
| 109 | /// manage repository metadata and maintainership | ||
| 110 | #[command( | ||
| 111 | long_about = "manage repository metadata and maintainership\n\nrun without a subcommand to show repository info" | ||
| 112 | )] | ||
| 113 | Repo(RepoSubCommandArgs), | ||
| 109 | /// submit PR with advanced options | 114 | /// submit PR with advanced options |
| 110 | #[command( | 115 | #[command( |
| 111 | long_about = "submit PR with advanced options\n\nfor a simpler flow, push a branch with the `pr/` prefix using native git:\n git push -o 'title=My PR' -o 'description=details here' -u origin pr/my-branch" | 116 | long_about = "submit PR with advanced options\n\nfor a simpler flow, push a branch with the `pr/` prefix using native git:\n git push -o 'title=My PR' -o 'description=details here' -u origin pr/my-branch" |
| @@ -177,3 +182,27 @@ pub struct AccountSubCommandArgs { | |||
| 177 | #[command(subcommand)] | 182 | #[command(subcommand)] |
| 178 | pub account_command: AccountCommands, | 183 | pub account_command: AccountCommands, |
| 179 | } | 184 | } |
| 185 | |||
| 186 | #[derive(clap::Parser)] | ||
| 187 | pub struct RepoSubCommandArgs { | ||
| 188 | #[command(subcommand)] | ||
| 189 | pub repo_command: Option<RepoCommands>, | ||
| 190 | } | ||
| 191 | |||
| 192 | #[derive(Subcommand)] | ||
| 193 | pub enum RepoCommands { | ||
| 194 | /// publish a repository to nostr (alias for `ngit init`) | ||
| 195 | Init(sub_commands::init::SubCommandArgs), | ||
| 196 | /// update repository metadata on nostr | ||
| 197 | #[command( | ||
| 198 | long_about = "update repository metadata on nostr\n\nlike `ngit init` but makes clear you are editing an existing repository" | ||
| 199 | )] | ||
| 200 | Edit(sub_commands::init::SubCommandArgs), | ||
| 201 | /// accept an invitation to co-maintain a repository | ||
| 202 | #[command(long_about = "accept an invitation to co-maintain a repository\n\n\ | ||
| 203 | publishes your repository announcement to nostr, confirming your co-maintainership.\n\n\ | ||
| 204 | This is required because your signed announcement is what ties your git state events\n\ | ||
| 205 | to a specific repository coordinate chain, preventing scammers from attributing your\n\ | ||
| 206 | commits to a fake repository. See `ngit repo info` for details on the maintainer model.")] | ||
| 207 | Accept(sub_commands::repo::accept::SubCommandArgs), | ||
| 208 | } | ||