UNPKG

@atomist/sdm-pack-aspect

Version:

an Atomist SDM Extension Pack for visualizing drift across an organization

80 lines 4.12 kB
import { RepoRef } from "@atomist/automation-client"; import { FP, Ideal } from "@atomist/sdm-pack-fingerprint"; import { Analyzed } from "../../../aspect/AspectRegistry"; import { IdealStore } from "../../../aspect/IdealStore"; import { ProblemUsage } from "../../../aspect/ProblemStore"; import { PlantedTree, TagUsage } from "../../../tree/sunburst"; import { ProjectAnalysisResult } from "../../ProjectAnalysisResult"; import { CohortAnalysis } from "../spider/analytics"; import { ClientFactory } from "./pgUtils"; import { FingerprintInsertionResult, FingerprintKind, FingerprintUsage, PersistResult, ProjectAnalysisResultStore, TreeQuery } from "./ProjectAnalysisResultStore"; export declare class PostgresProjectAnalysisResultStore implements ProjectAnalysisResultStore, IdealStore { readonly clientFactory: ClientFactory; fingerprintsToReposTree(treeQuery: TreeQuery): Promise<PlantedTree>; aspectDriftTree(workspaceId: string, percentile: number, options?: { repos?: boolean; type?: string; }): Promise<PlantedTree>; distinctRepoCount(workspaceId: string): Promise<number>; virtualProjectCount(workspaceId: string): Promise<number>; latestTimestamp(workspaceId: string): Promise<Date>; loadInWorkspace(workspaceId: string, deep: boolean): Promise<ProjectAnalysisResult[]>; /** * Load repo * @param {string} workspaceId workspace id * @param {boolean} deep whether to load fingerprints also * @param {string} additionalWhereClause does not use aliases, but original table names * @param {any[]} additionalParameters additional parameters required by additional where clause * @return {Promise<ProjectAnalysisResult[]>} */ private loadInWorkspaceInternal; loadById(id: string, deep: boolean): Promise<ProjectAnalysisResult | undefined>; loadByRepoRef(repo: RepoRef, deep: boolean): Promise<ProjectAnalysisResult | undefined>; persist(repos: ProjectAnalysisResult | AsyncIterable<ProjectAnalysisResult> | ProjectAnalysisResult[]): Promise<PersistResult>; distinctFingerprintKinds(workspaceId: string): Promise<FingerprintKind[]>; distinctRepoFingerprintKinds(workspaceId: string): Promise<Array<{ owner: string; repo: string; fingerprints: FingerprintKind[]; }>>; tags(workspaceId: string): Promise<TagUsage[]>; 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>; /** * Key is persistent fingerprint id */ private fingerprintsInWorkspaceRecord; fingerprintsInWorkspace(workspaceId: string, distinct: boolean, type?: string, name?: string): Promise<Array<FP & { id: string; }>>; fingerprintsForProject(snapshotId: string): Promise<Array<FP & { timestamp: Date; commitSha: string; }>>; averageFingerprintCount(workspaceId?: string): Promise<number>; persistAnalytics(data: Array<{ workspaceId: string; kind: FingerprintKind; cohortAnalysis: CohortAnalysis; }>): Promise<boolean>; private persistAnalysisResults; private persistOne; persistAdditionalFingerprints(analyzed: Analyzed): Promise<FingerprintInsertionResult>; 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