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