@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
57 lines • 1.75 kB
TypeScript
import { RepoContext } from "../context/SdmContext";
import { SdmGoalEvent } from "../goal/SdmGoalEvent";
/**
* Represents a vote on a approval request
*/
export declare enum GoalApprovalRequestVote {
/**
* Voter decided to abstain from voting
*/
Abstain = "abstain",
/**
* Voter decided to grant the approval request
*/
Granted = "granted",
/**
* Voter decided to deny the approval request
*/
Denied = "denied"
}
/**
* Result from executing GoalApprovalRequestVoter
*/
export interface GoalApprovalRequestVoteResult {
/**
* The vote
*/
vote: GoalApprovalRequestVote;
/**
* Optional text describing why the decision was being made
*/
reason?: string;
}
/**
* Invocation of a GoalApprovalRequestVoter
*/
export interface GoalApprovalRequestVoterInvocation extends RepoContext {
/**
* Goal that was requested for approval
*/
goal: SdmGoalEvent;
}
/**
* Voter on a request to approve a goal
*/
export declare type GoalApprovalRequestVoter = (garvi: GoalApprovalRequestVoterInvocation) => Promise<GoalApprovalRequestVoteResult>;
/**
* Decide resulting vote on a set of votes
*/
export declare type GoalApprovalRequestVoteDecisionManager = (...votes: GoalApprovalRequestVoteResult[]) => GoalApprovalRequestVote;
/**
* Default GoalApprovalRequestVoteDecisionManager that decides unanimously on votes.
* One denied vote will deny the approval request; all granted votes with grant the request.
* All other votes with result in an abstained approval request.
* @param votes
*/
export declare const UnanimousGoalApprovalRequestVoteDecisionManager: GoalApprovalRequestVoteDecisionManager;
//# sourceMappingURL=goalApprovalRequestVote.d.ts.map