File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -169,6 +169,13 @@ func init() {
169169 issueCmd .AddCommand (issueCreateCmd )
170170
171171 carapace .Gen (issueCreateCmd ).FlagCompletion (carapace.ActionMap {
172+ "label" : carapace .ActionMultiParts ("," , func (c carapace.Context ) carapace.Action {
173+ if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
174+ return carapace .ActionMessage (err .Error ())
175+ } else {
176+ return action .Labels (project ).Invoke (c ).Filter (c .Parts ).ToA ()
177+ }
178+ }),
172179 "milestone" : carapace .ActionCallback (func (c carapace.Context ) carapace.Action {
173180 if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
174181 return carapace .ActionMessage (err .Error ())
Original file line number Diff line number Diff line change @@ -227,6 +227,13 @@ func init() {
227227 issueCmd .AddCommand (issueEditCmd )
228228
229229 carapace .Gen (issueEditCmd ).FlagCompletion (carapace.ActionMap {
230+ "label" : carapace .ActionMultiParts ("," , func (c carapace.Context ) carapace.Action {
231+ if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
232+ return carapace .ActionMessage (err .Error ())
233+ } else {
234+ return action .Labels (project ).Invoke (c ).Filter (c .Parts ).ToA ()
235+ }
236+ }),
230237 "milestone" : carapace .ActionCallback (func (c carapace.Context ) carapace.Action {
231238 if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
232239 return carapace .ActionMessage (err .Error ())
Original file line number Diff line number Diff line change @@ -149,6 +149,13 @@ func init() {
149149
150150 issueCmd .AddCommand (issueListCmd )
151151 carapace .Gen (issueListCmd ).FlagCompletion (carapace.ActionMap {
152+ "label" : carapace .ActionMultiParts ("," , func (c carapace.Context ) carapace.Action {
153+ if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
154+ return carapace .ActionMessage (err .Error ())
155+ } else {
156+ return action .Labels (project ).Invoke (c ).Filter (c .Parts ).ToA ()
157+ }
158+ }),
152159 "milestone" : carapace .ActionCallback (func (c carapace.Context ) carapace.Action {
153160 if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
154161 return carapace .ActionMessage (err .Error ())
Original file line number Diff line number Diff line change @@ -48,6 +48,13 @@ func init() {
4848 mrCmd .AddCommand (mrCreateCmd )
4949
5050 carapace .Gen (mrCreateCmd ).FlagCompletion (carapace.ActionMap {
51+ "label" : carapace .ActionMultiParts ("," , func (c carapace.Context ) carapace.Action {
52+ if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
53+ return carapace .ActionMessage (err .Error ())
54+ } else {
55+ return action .Labels (project ).Invoke (c ).Filter (c .Parts ).ToA ()
56+ }
57+ }),
5158 "milestone" : carapace .ActionCallback (func (c carapace.Context ) carapace.Action {
5259 if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
5360 return carapace .ActionMessage (err .Error ())
Original file line number Diff line number Diff line change @@ -318,6 +318,13 @@ func init() {
318318 mrCmd .AddCommand (mrEditCmd )
319319
320320 carapace .Gen (mrEditCmd ).FlagCompletion (carapace.ActionMap {
321+ "label" : carapace .ActionMultiParts ("," , func (c carapace.Context ) carapace.Action {
322+ if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
323+ return carapace .ActionMessage (err .Error ())
324+ } else {
325+ return action .Labels (project ).Invoke (c ).Filter (c .Parts ).ToA ()
326+ }
327+ }),
321328 "milestone" : carapace .ActionCallback (func (c carapace.Context ) carapace.Action {
322329 if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
323330 return carapace .ActionMessage (err .Error ())
Original file line number Diff line number Diff line change @@ -200,6 +200,13 @@ func init() {
200200
201201 mrCmd .AddCommand (listCmd )
202202 carapace .Gen (listCmd ).FlagCompletion (carapace.ActionMap {
203+ "label" : carapace .ActionMultiParts ("," , func (c carapace.Context ) carapace.Action {
204+ if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
205+ return carapace .ActionMessage (err .Error ())
206+ } else {
207+ return action .Labels (project ).Invoke (c ).Filter (c .Parts ).ToA ()
208+ }
209+ }),
203210 "milestone" : carapace .ActionCallback (func (c carapace.Context ) carapace.Action {
204211 if project , _ , err := parseArgsRemoteAndProject (c .Args ); err != nil {
205212 return carapace .ActionMessage (err .Error ())
Original file line number Diff line number Diff line change 1+ package action
2+
3+ import (
4+ "time"
5+
6+ "github.com/rsteube/carapace"
7+ "github.com/rsteube/carapace/pkg/cache"
8+ lab "github.com/zaquestion/lab/internal/gitlab"
9+ )
10+
11+ func Labels (project string ) carapace.Action {
12+ return carapace .ActionCallback (func (c carapace.Context ) carapace.Action {
13+ if labels , err := lab .LabelList (project ); err != nil {
14+ return carapace .ActionMessage (err .Error ())
15+ } else {
16+ values := make ([]string , len (labels )* 2 )
17+ for index , label := range labels {
18+ values [index * 2 ] = label .Name
19+ values [index * 2 + 1 ] = label .Description
20+ }
21+ return carapace .ActionValuesDescribed (values ... )
22+ }
23+ }).Cache (5 * time .Minute , cache .String (project ))
24+ }
You can’t perform that action at this time.
0 commit comments