upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/bin/ngit/main.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/main.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/main.rs')
-rw-r--r--src/bin/ngit/main.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/bin/ngit/main.rs b/src/bin/ngit/main.rs
index 6a5a8f0..b0cf375 100644
--- a/src/bin/ngit/main.rs
+++ b/src/bin/ngit/main.rs
@@ -130,6 +130,11 @@ async fn main() {
130 squash, 130 squash,
131 offline, 131 offline,
132 } => sub_commands::pr_merge::launch(id, *squash, *offline).await, 132 } => sub_commands::pr_merge::launch(id, *squash, *offline).await,
133 PrCommands::Label {
134 id,
135 labels,
136 offline,
137 } => sub_commands::label::launch_pr_label(id, labels, *offline).await,
133 }, 138 },
134 Commands::Issue(args) => match &args.issue_command { 139 Commands::Issue(args) => match &args.issue_command {
135 IssueCommands::List { 140 IssueCommands::List {
@@ -193,6 +198,11 @@ async fn main() {
193 ) 198 )
194 .await 199 .await
195 } 200 }
201 IssueCommands::Label {
202 id,
203 labels,
204 offline,
205 } => sub_commands::label::launch_issue_label(id, labels, *offline).await,
196 }, 206 },
197 Commands::Sync(args) => sub_commands::sync::launch(args).await, 207 Commands::Sync(args) => sub_commands::sync::launch(args).await,
198 } 208 }