Harden the runner contract
This commit is contained in:
@@ -56,6 +56,9 @@ func (r *Runner) Run(ctx context.Context, input RunInput) (RunOutput, error) {
|
||||
if err != nil {
|
||||
return output, fmt.Errorf("build extractor %q: %w", extractorKey, err)
|
||||
}
|
||||
if extractor == nil {
|
||||
return output, fmt.Errorf("build extractor %q: returned nil extractor", extractorKey)
|
||||
}
|
||||
|
||||
result, err := extractor.Extract(ctx, contracts.ExtractionRequest{
|
||||
Source: input.Source,
|
||||
@@ -121,7 +124,10 @@ func runValidators(ctx context.Context, extractor contracts.Extractor, doc *sour
|
||||
var rejected []artifacts.RejectedArtifact
|
||||
var warnings []contracts.Warning
|
||||
|
||||
for _, validator := range extractor.Validators() {
|
||||
for validatorIndex, validator := range extractor.Validators() {
|
||||
if validator == nil {
|
||||
return nil, rejected, warnings, fmt.Errorf("extractor %q validator[%d] must not be nil", extractor.Key(), validatorIndex)
|
||||
}
|
||||
result, err := validator.Validate(ctx, contracts.ValidationRequest{
|
||||
Source: doc,
|
||||
Candidates: eligible,
|
||||
|
||||
Reference in New Issue
Block a user