@atomist/org-visualizer
Version:
Organization Visualizer using Atomist project scanning
44 lines • 1.56 kB
TypeScript
import { ProjectAnalyzer } from "@atomist/sdm-pack-analysis";
import { ProjectAnalysisResult } from "../../ProjectAnalysisResult";
import { ProjectAnalysisResultStore } from "../persist/ProjectAnalysisResultStore";
import { SpideredRepo } from "../SpideredRepo";
import { ScmSearchCriteria } from "./ScmSearchCriteria";
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;
/**
* Invoked after the repo is persisted to perform any additional actions.
*/
onPersisted?: (repo: SpideredRepo) => Promise<void>;
}
export declare type RepoUrl = string;
export declare type PersistenceResult = string;
export interface SpiderFailure {
repoUrl: string;
whileTryingTo: string;
message: string;
}
export interface SpiderResult {
repositoriesDetected: number;
projectsDetected: number;
failed: SpiderFailure[];
keptExisting: RepoUrl[];
persistedAnalyses: PersistenceResult[];
}
export declare const EmptySpiderResult: SpiderResult;
/**
* Spider a data source and progressively persist what we find.
*/
export interface Spider {
spider(criteria: ScmSearchCriteria, analyzer: ProjectAnalyzer, opts: SpiderOptions): Promise<SpiderResult>;
}
//# sourceMappingURL=Spider.d.ts.map