Populate .RepoActivity
()
| 528 | |
| 529 | // Populate .RepoActivity |
| 530 | func (s *StatusGetter) LoadEvents() error { |
| 531 | perPage := 100 |
| 532 | c := api.NewClientFromHTTP(s.Client) |
| 533 | query := url.Values{} |
| 534 | query.Add("per_page", fmt.Sprintf("%d", perPage)) |
| 535 | |
| 536 | currentUsername, err := s.CurrentUsername() |
| 537 | if err != nil { |
| 538 | return err |
| 539 | } |
| 540 | |
| 541 | var events []Event |
| 542 | var resp []Event |
| 543 | pages := 0 |
| 544 | p := fmt.Sprintf("users/%s/received_events?%s", currentUsername, query.Encode()) |
| 545 | for pages < 2 { |
| 546 | next, err := c.RESTWithNext(s.hostname(), "GET", p, nil, &resp) |
| 547 | if err != nil { |
| 548 | var httpErr api.HTTPError |
| 549 | if !errors.As(err, &httpErr) || httpErr.StatusCode != 404 { |
| 550 | return fmt.Errorf("could not get events: %w", err) |
| 551 | } |
| 552 | } |
| 553 | events = append(events, resp...) |
| 554 | if next == "" || len(resp) < perPage { |
| 555 | break |
| 556 | } |
| 557 | |
| 558 | pages++ |
| 559 | p = next |
| 560 | } |
| 561 | |
| 562 | s.RepoActivity = []StatusItem{} |
| 563 | |
| 564 | for _, e := range events { |
| 565 | if s.Org != "" && e.Org.Login != s.Org { |
| 566 | continue |
| 567 | } |
| 568 | if s.ShouldExclude(e.Repo.Name) { |
| 569 | continue |
| 570 | } |
| 571 | si := StatusItem{} |
| 572 | var number int |
| 573 | switch e.Type { |
| 574 | case "IssuesEvent": |
| 575 | if e.Payload.Action != "opened" { |
| 576 | continue |
| 577 | } |
| 578 | si.Reason = "new issue" |
| 579 | si.preview = e.Payload.Issue.Title |
| 580 | number = e.Payload.Issue.Number |
| 581 | case "PullRequestEvent": |
| 582 | if e.Payload.Action != "opened" { |
| 583 | continue |
| 584 | } |
| 585 | si.Reason = "new PR" |
| 586 | si.preview = e.Payload.PullRequest.Title |
| 587 | number = e.Payload.PullRequest.Number |
no test coverage detected