@atomist/sdm-pack-aspect
Version:
an Atomist SDM Extension Pack for visualizing drift across an organization
58 lines • 2.02 kB
TypeScript
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