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

Method LoadEvents

pkg/cmd/status/status.go:532–610  ·  view source on GitHub ↗

Populate .RepoActivity

()

Source from the content-addressed store, hash-verified

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

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