MCPcopy Create free account
hub / github.com/cli/cli / LoadEvents

Method LoadEvents

pkg/cmd/status/status.go:534–612  ·  view source on GitHub ↗

Populate .RepoActivity

()

Source from the content-addressed store, hash-verified

532
533// Populate .RepoActivity
534func (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 }

Callers 1

statusRunFunction · 0.95

Calls 9

CurrentUsernameMethod · 0.95
hostnameMethod · 0.95
StringMethod · 0.95
ShouldExcludeMethod · 0.95
JoinPathFunction · 0.92
NewImmutableSafeURLFunction · 0.92
SetQueryMethod · 0.80
RESTWithNextMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected