UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 1.13 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.handler=void 0;const AWS=require("aws-sdk"),client=new AWS.CodePipeline({apiVersion:"2015-07-09"}),TIMEOUT_IN_MINUTES=5,sleep=seconds=>new Promise(resolve=>setTimeout(resolve,seconds*1e3));async function handler(event,_context){const{PipelineName:pipelineName,StageName:stageName,ActionName:actionName}=event;function parseState(response){const validStages=response.stageStates?.filter(s=>s.stageName===stageName),manualApproval=validStages.length&&validStages[0].actionStates.filter(state=>state.actionName===actionName),latest=manualApproval&&manualApproval.length&&manualApproval[0].latestExecution;return latest?latest.token:void 0}const deadline=Date.now()+TIMEOUT_IN_MINUTES*6e4;for(;Date.now()<deadline;){const response=await client.getPipelineState({name:pipelineName}).promise(),token=parseState(response);if(token){await client.putApprovalResult({pipelineName,actionName,stageName,result:{summary:"No security changes detected. Automatically approved by Lambda.",status:"Approved"},token}).promise();return}await sleep(5)}}exports.handler=handler;