MCPcopy Create free account
hub / github.com/monitoror/monitoror / GetChecks

Method GetChecks

monitorables/github/api/repository/api.go:75–132  ·  view source on GitHub ↗
(owner, repository, ref string)

Source from the content-addressed store, hash-verified

73}
74
75func (gr *githubRepository) GetChecks(owner, repository, ref string) (*models.Checks, error) {
76 checks := &models.Checks{Runs: []models.Run{}, Statuses: []models.Status{}}
77
78 checkRuns, _, err := gr.checksService.ListCheckRunsForRef(context.TODO(), owner, repository, ref, nil)
79 if err != nil {
80 return nil, err
81 }
82
83 for _, checkRun := range checkRuns.CheckRuns {
84 if checkRun.Name != nil && checkRun.Status != nil {
85 run := models.Run{
86 ID: checkRun.GetID(),
87 Title: checkRun.GetName(),
88 Status: checkRun.GetStatus(),
89 Conclusion: checkRun.GetConclusion(),
90 }
91
92 if checkRun.StartedAt != nil {
93 run.StartedAt = &checkRun.StartedAt.Time
94 }
95
96 if checkRun.CompletedAt != nil {
97 run.CompletedAt = &checkRun.CompletedAt.Time
98 }
99
100 checks.HeadCommit = checkRun.HeadSHA
101 checks.Runs = append(checks.Runs, run)
102 }
103 }
104
105 repoStatuses, _, err := gr.repositoriesService.ListStatuses(context.TODO(), owner, repository, ref, nil)
106 if err != nil {
107 return nil, err
108 }
109
110 for _, repoStatus := range repoStatuses {
111 if repoStatus.Context != nil && repoStatus.State != nil && repoStatus.CreatedAt != nil && repoStatus.UpdatedAt != nil {
112 status := models.Status{
113 ID: repoStatus.GetID(),
114 Title: repoStatus.GetContext(),
115 State: repoStatus.GetState(),
116 CreatedAt: repoStatus.GetCreatedAt(),
117 UpdatedAt: repoStatus.GetUpdatedAt(),
118 }
119
120 if repoStatus.URL != nil {
121 headCommit := repoStatus.GetURL()
122 headCommit = headCommit[strings.LastIndex(headCommit, "/")+1:]
123
124 checks.HeadCommit = &headCommit
125 }
126
127 checks.Statuses = append(checks.Statuses, status)
128 }
129 }
130
131 return checks, nil
132}

Callers

nothing calls this directly

Calls 4

ListCheckRunsForRefMethod · 0.65
GetStatusMethod · 0.65
ListStatusesMethod · 0.65
GetURLMethod · 0.65

Tested by

no test coverage detected