upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/bin/ngit/cli.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-03-05 11:33:10 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-03-05 11:41:09 +0000
commit3ac5395b47c709c00f0072668dfdceb04f2d4974 (patch)
tree79508c5dbdf92590c667fcc407a464f1e0118e92 /src/bin/ngit/cli.rs
parent0e493c455a0345c206dd1c5b0dfb5322b8a4e3e9 (diff)
feat(label): add `ngit issue label` and `ngit pr label` commands
Publishes a NIP-32 kind-1985 label event referencing the target issue or PR. Only the event author or a repository maintainer may apply labels. Duplicate labels (already present via t-tags or prior kind-1985 events) are silently skipped. The new event is saved to the local cache before broadcasting so subsequent reads reflect the change immediately. CLI: ngit issue label <id> --label <L> [--label <L>...] ngit pr label <id> --label <L> [--label <L>...]
Diffstat (limited to 'src/bin/ngit/cli.rs')
-rw-r--r--src/bin/ngit/cli.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bin/ngit/cli.rs b/src/bin/ngit/cli.rs
index ccf25bb..b9b274e 100644
--- a/src/bin/ngit/cli.rs
+++ b/src/bin/ngit/cli.rs
@@ -301,6 +301,18 @@ pub enum PrCommands {
301 #[arg(long)] 301 #[arg(long)]
302 offline: bool, 302 offline: bool,
303 }, 303 },
304 /// add one or more labels to a PR (author or maintainer only)
305 Label {
306 /// Proposal event-id (hex) or nevent (bech32)
307 #[arg(value_name = "ID|nevent")]
308 id: String,
309 /// Label to apply (repeatable: --label bug --label help-wanted)
310 #[arg(long = "label", value_name = "LABEL", required = true)]
311 labels: Vec<String>,
312 /// Use local cache only, skip network fetch
313 #[arg(long)]
314 offline: bool,
315 },
304} 316}
305 317
306// --------------------------------------------------------------------------- 318// ---------------------------------------------------------------------------
@@ -395,6 +407,18 @@ pub enum IssueCommands {
395 #[arg(long)] 407 #[arg(long)]
396 offline: bool, 408 offline: bool,
397 }, 409 },
410 /// add one or more labels to an issue (author or maintainer only)
411 Label {
412 /// Issue event-id (hex) or nevent (bech32)
413 #[arg(value_name = "ID|nevent")]
414 id: String,
415 /// Label to apply (repeatable: --label bug --label help-wanted)
416 #[arg(long = "label", value_name = "LABEL", required = true)]
417 labels: Vec<String>,
418 /// Use local cache only, skip network fetch
419 #[arg(long)]
420 offline: bool,
421 },
398} 422}
399 423
400#[derive(Subcommand)] 424#[derive(Subcommand)]