MCPcopy
hub / github.com/cli/cli / LoadEvents

Method LoadEvents

pkg/cmd/status/status.go:530–605  ·  view source on GitHub ↗

Populate .RepoActivity

()

Source from the content-addressed store, hash-verified

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

Callers 1

statusRunFunction · 0.95

Calls 6

CurrentUsernameMethod · 0.95
hostnameMethod · 0.95
ShouldExcludeMethod · 0.95
AddMethod · 0.65
RESTWithNextMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected