chore: remove old and unused code
This commit is contained in:
101
github.go
101
github.go
@@ -1093,16 +1093,6 @@ func (c *GitHubClient) allCheckContexts(
|
||||
return nodes, nil
|
||||
}
|
||||
|
||||
func checkMayHaveUsefulAnnotations(check githubCheckContext) bool {
|
||||
state := strings.ToUpper(firstNonEmpty(check.Conclusion, check.State, check.Status))
|
||||
switch state {
|
||||
case "FAILURE", "ERROR", "CANCELLED", "TIMED_OUT", "ACTION_REQUIRED", "STALE":
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func (c *GitHubClient) checkAnnotations(
|
||||
ctx context.Context, checkID string,
|
||||
) ([]githubCheckAnnotation, error) {
|
||||
@@ -1427,6 +1417,17 @@ func (c *GitHubClient) EnrichPullRequest(
|
||||
Owner: details.Owner, Repository: details.Repository, Number: details.Number,
|
||||
HeadOID: details.HeadOID, CheckAnnotations: make(map[string][]CheckAnnotation),
|
||||
}
|
||||
type annotationJob struct {
|
||||
index int
|
||||
check Check
|
||||
}
|
||||
type annotationResult struct {
|
||||
checkID string
|
||||
annotations []CheckAnnotation
|
||||
err error
|
||||
}
|
||||
var jobs []annotationJob
|
||||
var annotations []annotationResult
|
||||
for _, check := range details.Checks {
|
||||
if check.ID == "" || !checkStateMayHaveUsefulAnnotations(check) {
|
||||
continue
|
||||
@@ -1435,37 +1436,69 @@ func (c *GitHubClient) EnrichPullRequest(
|
||||
result.CheckAnnotations[check.ID] = annotations
|
||||
continue
|
||||
}
|
||||
nodes, err := c.checkAnnotations(ctx, check.ID)
|
||||
if err != nil {
|
||||
result.Issues = append(result.Issues, DataIssue{
|
||||
Component: "check annotations", Message: err.Error(),
|
||||
})
|
||||
continue
|
||||
}
|
||||
annotations := make([]CheckAnnotation, 0, len(nodes))
|
||||
for _, annotation := range nodes {
|
||||
annotations = append(annotations, CheckAnnotation{
|
||||
Path: annotation.Path, StartLine: annotation.Location.Start.Line,
|
||||
EndLine: annotation.Location.End.Line, Level: annotation.AnnotationLevel,
|
||||
Title: annotation.Title, Message: annotation.Message,
|
||||
})
|
||||
}
|
||||
c.storeAnnotations(check.ID, annotations)
|
||||
result.CheckAnnotations[check.ID] = annotations
|
||||
jobs = append(jobs, annotationJob{index: len(annotations), check: check})
|
||||
annotations = append(annotations, annotationResult{checkID: check.ID})
|
||||
}
|
||||
|
||||
var wait sync.WaitGroup
|
||||
queue := make(chan annotationJob, len(jobs))
|
||||
for _, job := range jobs {
|
||||
queue <- job
|
||||
}
|
||||
close(queue)
|
||||
for range min(4, len(jobs)) {
|
||||
wait.Add(1)
|
||||
go func() {
|
||||
defer wait.Done()
|
||||
for job := range queue {
|
||||
nodes, err := c.checkAnnotations(ctx, job.check.ID)
|
||||
if err != nil {
|
||||
annotations[job.index].err = err
|
||||
continue
|
||||
}
|
||||
converted := make([]CheckAnnotation, 0, len(nodes))
|
||||
for _, annotation := range nodes {
|
||||
converted = append(converted, CheckAnnotation{
|
||||
Path: annotation.Path, StartLine: annotation.Location.Start.Line,
|
||||
EndLine: annotation.Location.End.Line, Level: annotation.AnnotationLevel,
|
||||
Title: annotation.Title, Message: annotation.Message,
|
||||
})
|
||||
}
|
||||
c.storeAnnotations(job.check.ID, converted)
|
||||
annotations[job.index].annotations = converted
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
var conflictFiles []string
|
||||
var conflictErr error
|
||||
if details.Mergeable == "CONFLICTING" && c.conflicts != nil {
|
||||
files, err := c.loadConflictFiles(
|
||||
ctx, details.RepositoryURL, details.Number, details.BaseRef,
|
||||
details.BaseOID, details.HeadOID,
|
||||
)
|
||||
if err != nil {
|
||||
wait.Add(1)
|
||||
go func() {
|
||||
defer wait.Done()
|
||||
conflictFiles, conflictErr = c.loadConflictFiles(
|
||||
ctx, details.RepositoryURL, details.Number, details.BaseRef,
|
||||
details.BaseOID, details.HeadOID,
|
||||
)
|
||||
}()
|
||||
}
|
||||
wait.Wait()
|
||||
for _, loaded := range annotations {
|
||||
if loaded.err != nil {
|
||||
result.Issues = append(result.Issues, DataIssue{
|
||||
Component: "conflict file scan", Message: err.Error(),
|
||||
Component: "check annotations", Message: loaded.err.Error(),
|
||||
})
|
||||
} else {
|
||||
result.ConflictFiles = files
|
||||
result.CheckAnnotations[loaded.checkID] = loaded.annotations
|
||||
}
|
||||
}
|
||||
if conflictErr != nil {
|
||||
result.Issues = append(result.Issues, DataIssue{
|
||||
Component: "conflict file scan", Message: conflictErr.Error(),
|
||||
})
|
||||
} else if conflictFiles != nil {
|
||||
result.ConflictFiles = conflictFiles
|
||||
}
|
||||
level, summary := healthOK, "secondary PR data loaded"
|
||||
if len(result.Issues) > 0 {
|
||||
level, summary = healthWarning, fmt.Sprintf(
|
||||
|
||||
Reference in New Issue
Block a user