Skip to content

Commit 25d4969

Browse files
claytonrcarterprarit
authored andcommitted
feat(mr list): Support `--reviewer=any/none
1 parent 771f912 commit 25d4969

File tree

2 files changed

+57
-2
lines changed

2 files changed

+57
-2
lines changed

cmd/mr_list.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,11 @@ func mrList(args []string) ([]*gitlab.MergeRequest, error) {
146146
mrMilestone = milestone.Title
147147
}
148148

149-
if mrReviewer != "" {
149+
if mrReviewer == "any" {
150+
mrReviewerID = gitlab.ReviewerID(gitlab.UserIDAny)
151+
} else if mrReviewer == "none" {
152+
mrReviewerID = gitlab.ReviewerID(gitlab.UserIDNone)
153+
} else if mrReviewer != "" {
150154
reviewerID := getUserID(mrReviewer)
151155
if reviewerID == nil {
152156
log.Fatalf("%s user not found\n", mrReviewer)
@@ -247,7 +251,7 @@ func init() {
247251
listCmd.Flags().BoolVar(&mrConflicts, "conflicts", false, "list only MRs that cannot be merged")
248252
listCmd.Flags().BoolVarP(&mrExactMatch, "exact-match", "x", false, "match on the exact (case-insensitive) search terms")
249253
listCmd.Flags().StringVar(
250-
&mrReviewer, "reviewer", "", "list only MRs with reviewer set to $username")
254+
&mrReviewer, "reviewer", "", "list only MRs with reviewer set to $username/any/none")
251255

252256
mrCmd.AddCommand(listCmd)
253257
carapace.Gen(listCmd).FlagCompletion(carapace.ActionMap{

cmd/mr_list_test.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,3 +360,54 @@ func Test_mrListApproverNone(t *testing.T) {
360360
require.NotContains(t, mrs, "!1 Test MR for lab list")
361361
require.Contains(t, mrs, "!3 for testings filtering with labels and lists")
362362
}
363+
364+
func Test_mrListReviewer(t *testing.T) {
365+
t.Parallel()
366+
repo := copyTestRepo(t)
367+
cmd := exec.Command(labBinaryPath, "mr", "list", "--reviewer=lab-testing")
368+
cmd.Dir = repo
369+
370+
b, err := cmd.CombinedOutput()
371+
if err != nil {
372+
t.Fatal(err)
373+
}
374+
375+
mrs := strings.Split(string(b), "\n")
376+
t.Log(mrs)
377+
require.NotContains(t, mrs, "!1 Test MR for lab list")
378+
require.Contains(t, mrs, "!329 MR for assign and review commands")
379+
}
380+
381+
func Test_mrListReviewerAny(t *testing.T) {
382+
t.Parallel()
383+
repo := copyTestRepo(t)
384+
cmd := exec.Command(labBinaryPath, "mr", "list", "--reviewer=any")
385+
cmd.Dir = repo
386+
387+
b, err := cmd.CombinedOutput()
388+
if err != nil {
389+
t.Fatal(err)
390+
}
391+
392+
mrs := strings.Split(string(b), "\n")
393+
t.Log(mrs)
394+
require.NotContains(t, mrs, "!1 Test MR for lab list")
395+
require.Contains(t, mrs, "!329 MR for assign and review commands")
396+
}
397+
398+
func Test_mrListReviewerNone(t *testing.T) {
399+
t.Parallel()
400+
repo := copyTestRepo(t)
401+
cmd := exec.Command(labBinaryPath, "mr", "list", "--reviewer=none")
402+
cmd.Dir = repo
403+
404+
b, err := cmd.CombinedOutput()
405+
if err != nil {
406+
t.Fatal(err)
407+
}
408+
409+
mrs := strings.Split(string(b), "\n")
410+
t.Log(mrs)
411+
require.Contains(t, mrs, "!1 Test MR for lab list")
412+
require.NotContains(t, mrs, "!329 MR for assign and review commands")
413+
}

0 commit comments

Comments
 (0)