@atomist/automation-client
Version:
Atomist API for software low-level client
31 lines • 1.75 kB
TypeScript
import { ActionResult } from "../../action/ActionResult";
import { HandleCommand } from "../../HandleCommand";
import { HandlerContext } from "../../HandlerContext";
import { Maker } from "../../util/constructionUtils";
import { CommandDetails } from "../CommandDetails";
import { EditorOrReviewerParameters } from "../common/params/BaseEditorOrReviewerParameters";
import { RepoFilter } from "../common/repoFilter";
import { RepoRef } from "../common/RepoId";
import { ProjectReviewer } from "./projectReviewer";
import { ProjectReview } from "./ReviewResult";
/**
* Function signature to route ProjectReviews, for example to GitHub issues or MessageClient
*/
export declare type ReviewRouter<PARAMS> = (pr: ProjectReview, params: PARAMS, title: string, ctx: HandlerContext) => Promise<ActionResult<RepoRef>>;
/**
* Further details of an editor to allow selective customization
*/
export interface ReviewerCommandDetails<PARAMS extends EditorOrReviewerParameters> extends CommandDetails<PARAMS> {
repoFilter?: RepoFilter;
reviewRouter: ReviewRouter<PARAMS>;
}
/**
* Create a handle function that reviews one or many repos, following AllReposByDefaultParameters
* @param reviewerFactory function returning a reviewer instance for the appropriate parameters
* @param factory construction function
* @param {string} name
* @param {string} details object allowing customization beyond reasonable defaults
* @return {HandleCommand}
*/
export declare function reviewerHandler<PARAMS extends EditorOrReviewerParameters>(reviewerFactory: (params: PARAMS) => ProjectReviewer<PARAMS>, factory: Maker<PARAMS>, name: string, details?: Partial<ReviewerCommandDetails<PARAMS>>): HandleCommand;
//# sourceMappingURL=reviewerToCommand.d.ts.map