@atomist/org-visualizer
Version:
Organization Visualizer using Atomist project scanning
45 lines • 2.56 kB
TypeScript
import { RepoRef } from "@atomist/automation-client";
import { FP, Ideal } from "@atomist/sdm-pack-fingerprints";
import { IdealStore, ProblemUsage } from "../../../aspect/AspectRegistry";
import { ProjectAnalysisResult } from "../../ProjectAnalysisResult";
import { CohortAnalysis } from "../spider/analytics";
import { ClientFactory } from "./pgUtils";
import { FingerprintKind, FingerprintUsage, PersistResult, ProjectAnalysisResultStore } from "./ProjectAnalysisResultStore";
export declare class PostgresProjectAnalysisResultStore implements ProjectAnalysisResultStore, IdealStore {
readonly clientFactory: ClientFactory;
distinctRepoCount(workspaceId: string): Promise<number>;
latestTimestamp(workspaceId: string): Promise<Date>;
loadInWorkspace(workspaceId?: string): Promise<ProjectAnalysisResult[]>;
loadById(id: string): Promise<ProjectAnalysisResult>;
loadByRepoRef(repo: RepoRef): Promise<ProjectAnalysisResult>;
persist(repos: ProjectAnalysisResult | AsyncIterable<ProjectAnalysisResult> | ProjectAnalysisResult[]): Promise<PersistResult>;
distinctFingerprintKinds(workspaceId: string): Promise<FingerprintKind[]>;
fingerprintUsageForType(workspaceId: string, type?: string): Promise<FingerprintUsage[]>;
storeIdeal(workspaceId: string, ideal: Ideal): Promise<void>;
setIdeal(workspaceId: string, fingerprintId: string): Promise<void>;
loadIdeals(workspaceId: string): Promise<Ideal[]>;
noteProblem(workspaceId: string, fingerprintId: string): Promise<void>;
storeProblemFingerprint(workspaceId: string, fp: ProblemUsage): Promise<void>;
loadProblems(workspaceId: string): Promise<ProblemUsage[]>;
loadIdeal(workspaceId: string, type: string, name: string): Promise<Ideal>;
loadFingerprintById(id: string): Promise<FP | undefined>;
fingerprintsInWorkspace(workspaceId: string, type?: string, name?: string, dedup?: boolean): Promise<FP[]>;
fingerprintsForProject(snapshotId: string): Promise<FP[]>;
persistAnalytics(data: Array<{
workspaceId: string;
kind: FingerprintKind;
cohortAnalysis: CohortAnalysis;
}>): Promise<boolean>;
private persistAnalysisResults;
private persistOne;
private persistFingerprints;
/**
* Persist the given fingerprint if it's not already known
* @param {FP} fp
* @param {Client} client
* @return {Promise<void>}
*/
private ensureFingerprintStored;
constructor(clientFactory: ClientFactory);
}
//# sourceMappingURL=PostgresProjectAnalysisResultStore.d.ts.map