commands: add a "label add" command to add new label to a bug

Michael Muré created

Change summary

commands/label add.go        |  2 +-
doc/man/git-bug-label-add.1  | 29 +++++++++++++++++++++++++++++
doc/man/git-bug-label.1      |  2 +-
doc/md/git-bug_label.md      |  1 +
doc/md/git-bug_label_add.md  | 22 ++++++++++++++++++++++
misc/bash_completion/git-bug | 21 +++++++++++++++++++++
misc/zsh_completion/git-bug  |  3 +++
operations/label_change.go   | 17 +++++++++++++++++
8 files changed, 95 insertions(+), 2 deletions(-)

Detailed changes

commands/label add.go 🔗

@@ -46,5 +46,5 @@ var labelAddCmd = &cobra.Command{
 }
 
 func init() {
-	// labelCmd.AddCommand(labelAddCmd)
+	labelCmd.AddCommand(labelAddCmd)
 }

doc/man/git-bug-label-add.1 🔗

@@ -0,0 +1,29 @@
+.TH "GIT-BUG" "1" "Sep 2018" "Generated from git-bug's source code" "" 
+.nh
+.ad l
+
+
+.SH NAME
+.PP
+git\-bug\-label\-add \- Add a label to a bug
+
+
+.SH SYNOPSIS
+.PP
+\fBgit\-bug label add <id> [<label>\&...] [flags]\fP
+
+
+.SH DESCRIPTION
+.PP
+Add a label to a bug
+
+
+.SH OPTIONS
+.PP
+\fB\-h\fP, \fB\-\-help\fP[=false]
+    help for add
+
+
+.SH SEE ALSO
+.PP
+\fBgit\-bug\-label(1)\fP

doc/man/git-bug-label.1 🔗

@@ -26,4 +26,4 @@ Display a bug labels
 
 .SH SEE ALSO
 .PP
-\fBgit\-bug(1)\fP
+\fBgit\-bug(1)\fP, \fBgit\-bug\-label\-add(1)\fP

doc/md/git-bug_label.md 🔗

@@ -19,4 +19,5 @@ git-bug label <id> [flags]
 ### SEE ALSO
 
 * [git-bug](git-bug.md)	 - A bugtracker embedded in Git
+* [git-bug label add](git-bug_label_add.md)	 - Add a label to a bug
 

doc/md/git-bug_label_add.md 🔗

@@ -0,0 +1,22 @@
+## git-bug label add
+
+Add a label to a bug
+
+### Synopsis
+
+Add a label to a bug
+
+```
+git-bug label add <id> [<label>...] [flags]
+```
+
+### Options
+
+```
+  -h, --help   help for add
+```
+
+### SEE ALSO
+
+* [git-bug label](git-bug_label.md)	 - Display a bug labels
+

misc/bash_completion/git-bug 🔗

@@ -347,6 +347,26 @@ _git-bug_comment()
     noun_aliases=()
 }
 
+_git-bug_label_add()
+{
+    last_command="git-bug_label_add"
+
+    command_aliases=()
+
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
 _git-bug_label()
 {
     last_command="git-bug_label"
@@ -354,6 +374,7 @@ _git-bug_label()
     command_aliases=()
 
     commands=()
+    commands+=("add")
 
     flags=()
     two_word_flags=()

misc/zsh_completion/git-bug 🔗

@@ -20,6 +20,9 @@ case $state in
       comment)
         _arguments '2: :(add)'
       ;;
+      label)
+        _arguments '2: :(add)'
+      ;;
       status)
         _arguments '2: :(close open)'
       ;;

operations/label_change.go 🔗

@@ -167,3 +167,20 @@ type LabelChangeResult struct {
 	Label  bug.Label
 	Status LabelChangeStatus
 }
+
+func (l LabelChangeResult) String() string {
+	switch l.Status {
+	case LabelChangeAdded:
+		return fmt.Sprintf("label %s added", l.Label)
+	case LabelChangeRemoved:
+		return fmt.Sprintf("label %s removed", l.Label)
+	case LabelChangeDuplicateInOp:
+		return fmt.Sprintf("label %s is a duplicate", l.Label)
+	case LabelChangeAlreadySet:
+		return fmt.Sprintf("label %s was already set", l.Label)
+	case LabelChangeDoesntExist:
+		return fmt.Sprintf("label %s doesn't exist on this bug", l.Label)
+	default:
+		panic(fmt.Sprintf("unknown label change status %v", l.Status))
+	}
+}