UNPKG

@atomist/org-visualizer

Version:

Organization Visualizer using Atomist project scanning

65 lines 2.57 kB
import { RepoRef } from "@atomist/automation-client"; import { FP } from "@atomist/sdm-pack-fingerprints"; import { ProjectAnalysisResult } from "../../ProjectAnalysisResult"; import { CohortAnalysis } from "../spider/analytics"; import { PersistenceResult, SpiderFailure } from "../spider/Spider"; export interface PersistResult { attemptedCount: number; failed: SpiderFailure[]; succeeded: PersistenceResult[]; } export declare function combinePersistResults(r1: PersistResult, r2: PersistResult): PersistResult; export declare const emptyPersistResult: PersistResult; export declare type FingerprintKind = Pick<FP, "type" | "name">; /** * Data about the use of a fingerprint in a workspace */ export interface FingerprintUsage extends CohortAnalysis { name: string; type: string; categories: string[]; } /** * Interface for basic persistence operations. * Implementations can provide additional querying options, * e.g. through SQL. */ export interface ProjectAnalysisResultStore { /** * How many repos we've analyzed */ distinctRepoCount(workspaceId: string): Promise<number>; latestTimestamp(workspaceId: string): Promise<Date>; /** * Load in the given workspace */ loadInWorkspace(workspaceId: string): Promise<ProjectAnalysisResult[]>; loadByRepoRef(repo: RepoRef): Promise<ProjectAnalysisResult | undefined>; /** * Load by our database id * @param {string} id * @return {Promise<ProjectAnalysisResult | undefined>} */ loadById(id: string): Promise<ProjectAnalysisResult | undefined>; persist(repos: ProjectAnalysisResult | AsyncIterable<ProjectAnalysisResult> | ProjectAnalysisResult[]): Promise<PersistResult>; /** * Return distinct fingerprint type/name combinations in this workspace */ distinctFingerprintKinds(workspaceId: string): Promise<FingerprintKind[]>; fingerprintUsageForType(workspaceId: string, type?: string): Promise<FingerprintUsage[]>; /** * Persist a record of analytics */ persistAnalytics(params: Array<{ workspaceId: string; kind: FingerprintKind; cohortAnalysis: CohortAnalysis; }>): Promise<boolean>; /** * Return all the fingerprints in this workspace, optionally narrowed by type and name * @param dedup deduplicate */ fingerprintsInWorkspace(workspaceId: string, type?: string, name?: string, dedup?: boolean): Promise<FP[]>; fingerprintsForProject(id: string): Promise<FP[]>; } //# sourceMappingURL=ProjectAnalysisResultStore.d.ts.map