MCPcopy Create free account
hub / github.com/github/gh-aw / FetchChecksResult

Function FetchChecksResult

pkg/cli/checks_command.go:138–176  ·  view source on GitHub ↗

FetchChecksResult fetches check runs and statuses for a PR and returns a classified result. This function is exported for use in tests and other packages.

(repoOverride string, prNumber string)

Source from the content-addressed store, hash-verified

136// FetchChecksResult fetches check runs and statuses for a PR and returns a classified result.
137// This function is exported for use in tests and other packages.
138func FetchChecksResult(repoOverride string, prNumber string) (*ChecksResult, error) {
139 checksLog.Printf("Fetching checks result: repo=%s, pr=%s", repoOverride, prNumber)
140
141 // Step 1: Resolve head SHA from PR
142 headSHA, err := fetchPRHeadSHA(repoOverride, prNumber)
143 if err != nil {
144 return nil, fmt.Errorf("failed to fetch PR head SHA: %w", err)
145 }
146 checksLog.Printf("Resolved head SHA: %s", headSHA)
147
148 // Step 2: Fetch check runs
149 checkRuns, err := fetchCheckRuns(repoOverride, headSHA)
150 if err != nil {
151 // Non-fatal: continue with empty check runs
152 checksLog.Printf("Failed to fetch check runs: %v", err)
153 checkRuns = []PRCheckRun{}
154 }
155
156 // Step 3: Fetch commit statuses
157 statuses, err := fetchCommitStatuses(repoOverride, headSHA)
158 if err != nil {
159 // Non-fatal: continue with empty statuses
160 checksLog.Printf("Failed to fetch commit statuses: %v", err)
161 statuses = []PRCommitStatus{}
162 }
163
164 state := classifyCheckState(checkRuns, statuses)
165 requiredState := classifyCheckState(checkRuns, filterCommitStatusesToPolicyChecks(statuses))
166
167 return &ChecksResult{
168 State: state,
169 RequiredState: requiredState,
170 PRNumber: prNumber,
171 HeadSHA: headSHA,
172 CheckRuns: checkRuns,
173 Statuses: statuses,
174 TotalCount: len(checkRuns) + len(statuses),
175 }, nil
176}
177
178// execGHAPI runs a gh api subcommand and returns raw output.
179// repoOverride is appended as --repo if non-empty; context labels error messages.

Callers 2

registerChecksToolFunction · 0.85
RunChecksFunction · 0.85

Calls 7

fetchPRHeadSHAFunction · 0.85
fetchCheckRunsFunction · 0.85
fetchCommitStatusesFunction · 0.85
classifyCheckStateFunction · 0.85
PrintfMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected