import { Project } from "@atomist/automation-client"; import { SdmContext } from "@atomist/sdm"; import { ProjectAnalysis, TransformRecipe } from "./ProjectAnalysis"; /** * Contributor to seed analysis. Many TransformRecipeContributors * can be used, each parameterizing part of a seed project. */ export interface TransformRecipeContributor { /** * Contribute a transform recipe to a seed analysis. */ analyze(p: Project, analysis: ProjectAnalysis, sdmContext: SdmContext): Promise; } /** * Registration of a TransformRecipeContributor, determining * how it should be applied in this SDM. */ export interface TransformRecipeContributionRegistration { /** * Originating strategy. Useful for provenance. */ originator: string; /** * Description of this registration */ description?: string; /** * Whether this recipe is optional, meaning that the user should * be asked whether it should apply, rather than it being automatically * applied to the repo. */ optional: boolean; contributor: TransformRecipeContributor; }