in ci_tools/slack_notifications.js [73:98]
function processEvent(event, callback) {
const buildArn = event.detail['build-id'];
const buildId = buildArn.split('/').pop();
const buildUuid = buildId.split(':').pop();
const projectName = event.detail['project-name'];
const buildStatus = event.detail['build-status'];
const region = event.region;
const slackMessage = {
text: `Build ${buildUuid} for project ${projectName} has reached ${buildStatus} status. ` +
`Visit the <https:\/\/${region}.console.aws.amazon.com\/codebuild\/home?region=${region}#\/builds\/${encodeURI(buildId)}\/view\/new|AWS console> to view details.`,
};
postMessage(slackMessage, (response) => {
if (response.statusCode < 400) {
console.info('Message posted successfully');
callback(null);
} else if (response.statusCode < 500) {
console.error(`Error posting message to Slack API: ${response.statusCode} - ${response.statusMessage}`);
callback(null); // Don't retry because the error is due to a problem with the request
} else {
// Let Lambda retry
callback(`Server error when processing message: ${response.statusCode} - ${response.statusMessage}`);
}
});
}