@atomist/sdm-pack-aspect
Version:
an Atomist SDM Extension Pack for visualizing drift across an organization
106 lines • 3.31 kB
TypeScript
import { Language } from "@atomist/sdm-pack-sloc/lib/slocReport";
import { RepositoryScorer } from "../aspect/AspectRegistry";
import { FiveStar } from "./Score";
export declare const CommunityCategory: string;
export declare const CodeCategory: string;
/**
* Use to anchor scores to penalize repositories about which we know little.
* Typically weighted > default x1
*/
export declare function anchorScoreAt(score: FiveStar): RepositoryScorer;
/**
* Penalize repositories for not having a recent commit.
* days is the number of days since the latest commit to the default branch
* that will cost 1 star.
*/
export declare function requireRecentCommit(opts: {
days: number;
}): RepositoryScorer;
/**
* Limit languages used in a project
*/
export declare function limitLanguages(opts: {
limit: number;
baseOnly?: boolean;
}): RepositoryScorer;
/**
* Penalize repositories for having too many lines of code.
* The limit is the number of lines of code required to drop one star.
* The chosen limit will depend on team preferences: For example,
* are we trying to do microservices?
*/
export declare function limitLinesOfCode(opts: {
limit: number;
baseOnly?: boolean;
}): RepositoryScorer;
/**
* Penalize repositories for having too many lines of code in the given language
*/
export declare function limitLinesOfCodeIn(opts: {
limit: number;
language: Language;
freeAmount?: number;
}): RepositoryScorer;
/**
* Penalize repositories for having an excessive number of git branches
*/
export declare function penalizeForExcessiveBranches(opts: {
branchLimit: number;
}): RepositoryScorer;
/**
* Penalize repositories for having more than 1 virtual project,
* as identified by a VirtualProjectFinder
*/
export declare const PenalizeMonorepos: RepositoryScorer;
/**
* Penalize repositories without a license file
*/
export declare const PenalizeNoLicense: RepositoryScorer;
/**
* Penalize repositories without a code of conduct file
*/
export declare const PenalizeNoCodeOfConduct: RepositoryScorer;
/**
* Penalize repositories that don't have this type of aspect.
* If data is provided, check that the sha matches the default sha-ing of this
* data payload
*/
export declare function requireAspectOfType(opts: {
type: string;
reason: string;
data?: any;
category?: string;
baseOnly?: boolean;
}): RepositoryScorer;
/**
* Penalize repositories without matches for the glob pattern.
* Depends on globAspect
*/
export declare function requireGlobAspect(opts: {
glob: string;
category?: string;
baseOnly?: boolean;
}): RepositoryScorer;
/**
* Penalize for each point lost in these reviewers
*/
export declare function penalizeForReviewViolations(opts: {
reviewerName: string;
violationsPerPointLost: number;
}): RepositoryScorer;
/**
* Convenient function to emit scorers for all reviewers
*/
export declare function penalizeForAllReviewViolations(opts: {
reviewerNames: string[];
violationsPerPointLost: number;
}): RepositoryScorer[];
/**
* Use for a file pattern or something within files we don't want
*/
export declare function penalizeGlobMatches(opts: {
name?: string;
type: string;
pointsLostPerMatch: number;
}): RepositoryScorer;
//# sourceMappingURL=commonScorers.d.ts.map