func()

in builder/context.go [162:205]


func (b *Builder) scrapeDependencies(
	ctx context.Context,
	volName string,
	stepWorkDir string,
	outputDir string,
	dockerfile string,
	sourceContext string,
	tags []string,
	buildArgs []string,
	target string,
	credentials []*graph.RegistryCredential) ([]*image.Dependencies, error) {
	containerName := fmt.Sprintf("acb_dep_scanner_%s", uuid.New())

	args, censoredArgs, err := getScanArgs(
		containerName,
		volName,
		containerWorkspaceDir,
		stepWorkDir,
		dockerfile,
		outputDir,
		tags,
		buildArgs,
		target,
		sourceContext,
		credentials)

	if err != nil {
		return nil, err
	}

	if b.debug {
		log.Printf("Scan args: %v\n", censoredArgs)
	}

	var buf bytes.Buffer
	err = b.procManager.Run(ctx, args, nil, &buf, &buf, "")
	output := strings.TrimSpace(buf.String())
	if err != nil {
		log.Printf("Output from dependency scanning: %s\n", output)
		return nil, err
	}

	return getImageDependencies(output)
}