in metrics/internal/handlers/job_webhook.go [218:250]
func jobFailureLastOccurrence(ProjectID int, pipelineID int, jobName string) *time.Time {
retried := true
opts := gitlab.ListJobsOptions{
ListOptions: gitlab.ListOptions{
Page: 1,
PerPage: 10,
},
IncludeRetried: &retried,
}
// find the prevous run
for {
jobs, response, err := gitlabOpsJobsClient.ListPipelineJobs(ProjectID, pipelineID, &opts)
if err != nil {
log.Fatal(err)
break
}
for _, job := range jobs {
if job.Status == buildStatusFailed && job.Name == jobName {
return job.FinishedAt
}
}
if response.NextPage == 0 {
break
}
opts.Page = response.NextPage
}
return nil
}