LabelEvents returns a channel with label events.
(ctx context.Context, client *gitlab.Client, issue *gitlab.Issue)
| 78 | |
| 79 | // LabelEvents returns a channel with label events. |
| 80 | func LabelEvents(ctx context.Context, client *gitlab.Client, issue *gitlab.Issue) <-chan Event { |
| 81 | out := make(chan Event) |
| 82 | |
| 83 | go func() { |
| 84 | defer close(out) |
| 85 | |
| 86 | opts := gitlab.ListLabelEventsOptions{} |
| 87 | |
| 88 | for { |
| 89 | events, resp, err := client.ResourceLabelEvents.ListIssueLabelEvents(issue.ProjectID, issue.IID, &opts, gitlab.WithContext(ctx)) |
| 90 | |
| 91 | if err != nil { |
| 92 | out <- ErrorEvent{Err: err, Time: time.Now()} |
| 93 | } |
| 94 | |
| 95 | for _, e := range events { |
| 96 | le := LabelEvent{*e} |
| 97 | le.Label.Name = text.CleanupOneLine(le.Label.Name) |
| 98 | out <- le |
| 99 | } |
| 100 | |
| 101 | if resp.CurrentPage >= resp.TotalPages { |
| 102 | break |
| 103 | } |
| 104 | |
| 105 | opts.Page = resp.NextPage |
| 106 | } |
| 107 | }() |
| 108 | |
| 109 | return out |
| 110 | } |
| 111 | |
| 112 | // StateEvents returns a channel with state change events. |
| 113 | func StateEvents(ctx context.Context, client *gitlab.Client, issue *gitlab.Issue) <-chan Event { |
no test coverage detected