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