UNPKG

@atomist/sdm-pack-aspect

Version:

an Atomist SDM Extension Pack for visualizing drift across an organization

58 lines 2.02 kB
import { Project } from "@atomist/automation-client"; import { Analyzed } from "../../../aspect/AspectRegistry"; import { ProjectAnalysisResult } from "../../ProjectAnalysisResult"; import { ProjectAnalysisResultStore } from "../persist/ProjectAnalysisResultStore"; import { ScmSearchCriteria } from "./ScmSearchCriteria"; import { AnalysisTracking, RepoBeingTracked } from "../../tracking/analysisTracker"; export declare type ProjectAnalysisResultFilter = (pa: ProjectAnalysisResult) => Promise<boolean>; /** * Options for spidering source code hosts */ export interface SpiderOptions { workspaceId: string; persister: ProjectAnalysisResultStore; poolSize: number; /** * Is this record OK or should it be refreshed? */ keepExistingPersisted: ProjectAnalysisResultFilter; } export declare type RepoUrl = string; export declare type PersistenceResult = string; export interface SpiderFailure { repoUrl: string; whileTryingTo: string; message: string; error?: Error; } export interface SpiderResult { repositoriesDetected: number; failed: SpiderFailure[]; keptExisting: RepoUrl[]; persistedAnalyses: PersistenceResult[]; millisTaken?: number; } export declare const EmptySpiderResult: SpiderResult; export interface Timing { totalMillis: number; extractions: number; } /** * Aspect type to total time taken to extract it */ export declare type TimeRecorder = Record<string, Timing>; /** * Interface for types that can extract fingerprints from projects */ export interface Analyzer { analyze(p: Project, repoTracking: RepoBeingTracked): Promise<Analyzed>; readonly timings: TimeRecorder; } export declare function logTimings(recorder: TimeRecorder): void; /** * Spider a data source and progressively persist what we find. */ export interface Spider { spider(criteria: ScmSearchCriteria, analyzer: Analyzer, analysisTracking: AnalysisTracking, opts: SpiderOptions): Promise<SpiderResult>; } //# sourceMappingURL=Spider.d.ts.map