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

Method LoadEvents

pkg/cmd/status/status.go:531–609  ·  view source on GitHub ↗

Populate .RepoActivity

()

Source from the content-addressed store, hash-verified

529
530// Populate .RepoActivity
531func (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 }

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