@cloudsnorkel/cdk-github-runners 0.9.3 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +10 -9
- package/.jsii +397 -332
- package/API.md +56 -9
- package/README.md +15 -2
- package/assets/{lambdas/delete-runner.lambda → delete-runner.lambda}/index.js +96 -56
- package/assets/{lambdas → image-builders/aws-image-builder}/delete-ami.lambda/index.js +3 -3
- package/assets/image-builders/aws-image-builder/filter-failed-builds.lambda/index.js +39 -0
- package/assets/{lambdas/aws-image-builder-versioner.lambda → image-builders/aws-image-builder/versioner.lambda}/index.js +98 -58
- package/assets/{lambdas → providers}/build-image.lambda/index.js +3 -3
- package/assets/{lambdas → providers}/update-lambda.lambda/index.js +1 -1
- package/assets/{lambdas/setup.lambda → setup.lambda}/index.js +4 -4
- package/assets/{lambdas/status.lambda → status.lambda}/index.js +96 -56
- package/assets/{lambdas/token-retriever.lambda → token-retriever.lambda}/index.js +96 -56
- package/assets/{lambdas/webhook-handler.lambda → webhook-handler.lambda}/index.js +3 -3
- package/lib/access.js +1 -1
- package/lib/{lambdas/delete-runner-function.d.ts → delete-runner-function.d.ts} +1 -1
- package/lib/delete-runner-function.js +23 -0
- package/lib/delete-runner.lambda.js +69 -0
- package/lib/github.js +50 -0
- package/lib/image-builders/api.js +47 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/ami.d.ts +2 -3
- package/lib/image-builders/aws-image-builder/ami.js +93 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/builder.d.ts +21 -5
- package/lib/image-builders/aws-image-builder/builder.js +529 -0
- package/lib/image-builders/aws-image-builder/common.js +46 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/container.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/container.js +63 -0
- package/lib/{lambdas → image-builders/aws-image-builder}/delete-ami-function.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/delete-ami-function.js +23 -0
- package/lib/image-builders/aws-image-builder/delete-ami.lambda.js +87 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/ami.d.ts +2 -3
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +240 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/common.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/common.js +144 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/container.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/container.js +222 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.js +1 -1
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/linux-components.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +172 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/windows-components.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +126 -0
- package/lib/image-builders/aws-image-builder/filter-failed-builds-function.d.ts +13 -0
- package/lib/image-builders/aws-image-builder/filter-failed-builds-function.js +23 -0
- package/lib/image-builders/aws-image-builder/filter-failed-builds.lambda.js +18 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.js +1 -1
- package/lib/image-builders/aws-image-builder/versioner-function.d.ts +13 -0
- package/lib/image-builders/aws-image-builder/versioner-function.js +23 -0
- package/lib/image-builders/aws-image-builder/versioner.lambda.js +96 -0
- package/lib/{providers/image-builders → image-builders}/codebuild-deprecated.d.ts +2 -2
- package/lib/image-builders/codebuild-deprecated.js +373 -0
- package/lib/{providers/image-builders → image-builders}/codebuild.d.ts +13 -4
- package/lib/image-builders/codebuild.js +287 -0
- package/lib/{providers/image-builders → image-builders}/common.d.ts +4 -2
- package/lib/image-builders/common.js +61 -0
- package/lib/{providers/image-builders → image-builders}/components.d.ts +8 -2
- package/lib/image-builders/components.js +568 -0
- package/lib/{providers/image-builders → image-builders}/index.js +1 -1
- package/lib/{providers/image-builders → image-builders}/static.d.ts +1 -1
- package/lib/image-builders/static.js +58 -0
- package/lib/lambda-helpers.js +66 -0
- package/lib/{lambdas → providers}/build-image-function.d.ts +1 -1
- package/lib/providers/build-image-function.js +23 -0
- package/lib/providers/build-image.lambda.js +92 -0
- package/lib/providers/codebuild.d.ts +1 -1
- package/lib/providers/codebuild.js +4 -4
- package/lib/providers/common.js +3 -3
- package/lib/providers/ec2.d.ts +1 -1
- package/lib/providers/ec2.js +4 -4
- package/lib/providers/ecs.d.ts +1 -1
- package/lib/providers/ecs.js +8 -4
- package/lib/providers/fargate.d.ts +1 -1
- package/lib/providers/fargate.js +4 -4
- package/lib/providers/index.d.ts +1 -1
- package/lib/providers/index.js +2 -2
- package/lib/providers/lambda.d.ts +1 -1
- package/lib/providers/lambda.js +5 -5
- package/lib/{lambdas → providers}/update-lambda-function.d.ts +1 -1
- package/lib/providers/update-lambda-function.js +23 -0
- package/lib/providers/update-lambda.lambda.js +34 -0
- package/lib/runner.d.ts +9 -1
- package/lib/runner.js +24 -12
- package/lib/secrets.js +1 -1
- package/lib/{lambdas/setup-function.d.ts → setup-function.d.ts} +1 -1
- package/lib/setup-function.js +23 -0
- package/lib/setup.lambda.js +152 -0
- package/lib/{lambdas/status-function.d.ts → status-function.d.ts} +1 -1
- package/lib/status-function.js +23 -0
- package/lib/status.lambda.js +298 -0
- package/lib/{lambdas/token-retriever-function.d.ts → token-retriever-function.d.ts} +1 -1
- package/lib/token-retriever-function.js +23 -0
- package/lib/token-retriever.lambda.js +15 -0
- package/lib/{lambdas/webhook-handler-function.d.ts → webhook-handler-function.d.ts} +1 -1
- package/lib/webhook-handler-function.js +23 -0
- package/lib/webhook-handler.lambda.d.ts +1 -0
- package/lib/webhook-handler.lambda.js +116 -0
- package/lib/webhook.d.ts +1 -1
- package/lib/webhook.js +2 -2
- package/package.json +28 -26
- package/lib/lambdas/aws-image-builder-versioner-function.d.ts +0 -13
- package/lib/lambdas/aws-image-builder-versioner-function.js +0 -23
- package/lib/lambdas/aws-image-builder-versioner.lambda.js +0 -96
- package/lib/lambdas/build-image-function.js +0 -23
- package/lib/lambdas/build-image.lambda.js +0 -92
- package/lib/lambdas/delete-ami-function.js +0 -23
- package/lib/lambdas/delete-ami.lambda.js +0 -87
- package/lib/lambdas/delete-runner-function.js +0 -23
- package/lib/lambdas/delete-runner.lambda.js +0 -69
- package/lib/lambdas/github.js +0 -50
- package/lib/lambdas/helpers.js +0 -66
- package/lib/lambdas/setup-function.js +0 -23
- package/lib/lambdas/setup.lambda.js +0 -152
- package/lib/lambdas/status-function.js +0 -23
- package/lib/lambdas/status.lambda.js +0 -298
- package/lib/lambdas/token-retriever-function.js +0 -23
- package/lib/lambdas/token-retriever.lambda.js +0 -15
- package/lib/lambdas/update-lambda-function.js +0 -23
- package/lib/lambdas/update-lambda.lambda.js +0 -34
- package/lib/lambdas/webhook-handler-function.js +0 -23
- package/lib/lambdas/webhook-handler.lambda.js +0 -116
- package/lib/providers/image-builders/api.js +0 -47
- package/lib/providers/image-builders/aws-image-builder/ami.js +0 -81
- package/lib/providers/image-builders/aws-image-builder/builder.js +0 -488
- package/lib/providers/image-builders/aws-image-builder/common.js +0 -46
- package/lib/providers/image-builders/aws-image-builder/container.js +0 -63
- package/lib/providers/image-builders/aws-image-builder/deprecated/ami.js +0 -239
- package/lib/providers/image-builders/aws-image-builder/deprecated/common.js +0 -139
- package/lib/providers/image-builders/aws-image-builder/deprecated/container.js +0 -222
- package/lib/providers/image-builders/aws-image-builder/deprecated/linux-components.js +0 -180
- package/lib/providers/image-builders/aws-image-builder/deprecated/windows-components.js +0 -142
- package/lib/providers/image-builders/codebuild-deprecated.js +0 -373
- package/lib/providers/image-builders/codebuild.js +0 -271
- package/lib/providers/image-builders/common.js +0 -61
- package/lib/providers/image-builders/components.js +0 -535
- package/lib/providers/image-builders/static.js +0 -58
- /package/assets/{lambdas/setup.lambda → setup.lambda}/index.html +0 -0
- /package/lib/{lambdas/delete-runner.lambda.d.ts → delete-runner.lambda.d.ts} +0 -0
- /package/lib/{lambdas/github.d.ts → github.d.ts} +0 -0
- /package/lib/{providers/image-builders → image-builders}/api.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/common.d.ts +0 -0
- /package/lib/{lambdas → image-builders/aws-image-builder}/delete-ami.lambda.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.d.ts +0 -0
- /package/lib/{lambdas/setup.lambda.d.ts → image-builders/aws-image-builder/filter-failed-builds.lambda.d.ts} +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.d.ts +0 -0
- /package/lib/{lambdas/aws-image-builder-versioner.lambda.d.ts → image-builders/aws-image-builder/versioner.lambda.d.ts} +0 -0
- /package/lib/{providers/image-builders → image-builders}/index.d.ts +0 -0
- /package/lib/{lambdas/helpers.d.ts → lambda-helpers.d.ts} +0 -0
- /package/lib/{lambdas → providers}/build-image.lambda.d.ts +0 -0
- /package/lib/{lambdas → providers}/update-lambda.lambda.d.ts +0 -0
- /package/lib/{lambdas/status.lambda.d.ts → setup.lambda.d.ts} +0 -0
- /package/lib/{lambdas/token-retriever.lambda.d.ts → status.lambda.d.ts} +0 -0
- /package/lib/{lambdas/webhook-handler.lambda.d.ts → token-retriever.lambda.d.ts} +0 -0
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handler = void 0;
|
|
4
|
-
/* eslint-disable-next-line import/no-extraneous-dependencies */
|
|
5
|
-
const AWS = require("aws-sdk");
|
|
6
|
-
const helpers_1 = require("./helpers");
|
|
7
|
-
const codebuild = new AWS.CodeBuild();
|
|
8
|
-
const ecr = new AWS.ECR();
|
|
9
|
-
const ib = new AWS.Imagebuilder();
|
|
10
|
-
/* eslint-disable @typescript-eslint/no-require-imports, import/no-extraneous-dependencies */
|
|
11
|
-
async function handler(event, context) {
|
|
12
|
-
try {
|
|
13
|
-
console.log(JSON.stringify({ ...event, ResponseURL: '...' }));
|
|
14
|
-
const deleteOnly = event.ResourceProperties.DeleteOnly;
|
|
15
|
-
const repoName = event.ResourceProperties.RepoName;
|
|
16
|
-
const projectName = event.ResourceProperties.ProjectName;
|
|
17
|
-
const ibName = event.ResourceProperties.ImageBuilderName;
|
|
18
|
-
// let physicalResourceId: string;
|
|
19
|
-
// let data: { [key: string]: string } = {};
|
|
20
|
-
switch (event.RequestType) {
|
|
21
|
-
case 'Create':
|
|
22
|
-
case 'Update':
|
|
23
|
-
if (deleteOnly) {
|
|
24
|
-
await (0, helpers_1.customResourceRespond)(event, 'SUCCESS', 'OK', 'Deleter', {});
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
console.log(`Starting CodeBuild project ${projectName}`);
|
|
28
|
-
await codebuild.startBuild({
|
|
29
|
-
projectName,
|
|
30
|
-
environmentVariablesOverride: [
|
|
31
|
-
{
|
|
32
|
-
type: 'PLAINTEXT',
|
|
33
|
-
name: 'STACK_ID',
|
|
34
|
-
value: event.StackId,
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
type: 'PLAINTEXT',
|
|
38
|
-
name: 'REQUEST_ID',
|
|
39
|
-
value: event.RequestId,
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
type: 'PLAINTEXT',
|
|
43
|
-
name: 'LOGICAL_RESOURCE_ID',
|
|
44
|
-
value: event.LogicalResourceId,
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
type: 'PLAINTEXT',
|
|
48
|
-
name: 'RESPONSE_URL',
|
|
49
|
-
value: event.ResponseURL,
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
}).promise();
|
|
53
|
-
break;
|
|
54
|
-
case 'Delete':
|
|
55
|
-
const ecrImages = await ecr.listImages({ repositoryName: repoName, maxResults: 100 }).promise();
|
|
56
|
-
if (ecrImages.imageIds && ecrImages.imageIds.length > 0) {
|
|
57
|
-
await ecr.batchDeleteImage({
|
|
58
|
-
imageIds: ecrImages.imageIds.map(i => {
|
|
59
|
-
return { imageDigest: i.imageDigest };
|
|
60
|
-
}),
|
|
61
|
-
repositoryName: repoName,
|
|
62
|
-
}).promise();
|
|
63
|
-
}
|
|
64
|
-
if (ibName) {
|
|
65
|
-
const ibImages = await ib.listImages({ filters: [{ name: 'name', values: [ibName] }] }).promise();
|
|
66
|
-
if (ibImages.imageVersionList) {
|
|
67
|
-
for (const v of ibImages.imageVersionList) {
|
|
68
|
-
if (v.arn) {
|
|
69
|
-
const ibImageVersions = await ib.listImageBuildVersions({ imageVersionArn: v.arn }).promise();
|
|
70
|
-
if (ibImageVersions.imageSummaryList) {
|
|
71
|
-
for (const vs of ibImageVersions.imageSummaryList) {
|
|
72
|
-
if (vs.arn) {
|
|
73
|
-
console.log(`Deleting ${vs.arn}`);
|
|
74
|
-
await ib.deleteImage({ imageBuildVersionArn: vs.arn }).promise();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
await (0, helpers_1.customResourceRespond)(event, 'SUCCESS', 'OK', event.PhysicalResourceId, {});
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
console.error(e);
|
|
88
|
-
await (0, helpers_1.customResourceRespond)(event, 'FAILED', e.message || 'Internal Error', context.logStreamName, {});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
exports.handler = handler;
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtaW1hZ2UubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhbWJkYXMvYnVpbGQtaW1hZ2UubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGdFQUFnRTtBQUNoRSwrQkFBK0I7QUFDL0IsdUNBQWtEO0FBRWxELE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ3RDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBR2xDLDZGQUE2RjtBQUN0RixLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQWtELEVBQUUsT0FBMEI7SUFDMUcsSUFBSTtRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFOUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFVBQWlDLENBQUM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDO1FBQ3pELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBc0MsQ0FBQztRQUUvRSxrQ0FBa0M7UUFDbEMsNENBQTRDO1FBRTVDLFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUN6QixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssUUFBUTtnQkFDWCxJQUFJLFVBQVUsRUFBRTtvQkFDZCxNQUFNLElBQUEsK0JBQXFCLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUs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S0FDRjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixNQUFNLElBQUEsK0JBQXFCLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRyxDQUFXLENBQUMsT0FBTyxJQUFJLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDbkg7QUFDSCxDQUFDO0FBbEZELDBCQWtGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMsaW1wb3J0L25vLXVucmVzb2x2ZWQgKi9cbmltcG9ydCAqIGFzIEFXU0xhbWJkYSBmcm9tICdhd3MtbGFtYmRhJztcbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcbmltcG9ydCB7IGN1c3RvbVJlc291cmNlUmVzcG9uZCB9IGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IGNvZGVidWlsZCA9IG5ldyBBV1MuQ29kZUJ1aWxkKCk7XG5jb25zdCBlY3IgPSBuZXcgQVdTLkVDUigpO1xuY29uc3QgaWIgPSBuZXcgQVdTLkltYWdlYnVpbGRlcigpO1xuXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMsIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQsIGNvbnRleHQ6IEFXU0xhbWJkYS5Db250ZXh0KSB7XG4gIHRyeSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoeyAuLi5ldmVudCwgUmVzcG9uc2VVUkw6ICcuLi4nIH0pKTtcblxuICAgIGNvbnN0IGRlbGV0ZU9ubHkgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRGVsZXRlT25seSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlcG9OYW1lID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLlJlcG9OYW1lO1xuICAgIGNvbnN0IHByb2plY3ROYW1lID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLlByb2plY3ROYW1lO1xuICAgIGNvbnN0IGliTmFtZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5JbWFnZUJ1aWxkZXJOYW1lIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8vIGxldCBwaHlzaWNhbFJlc291cmNlSWQ6IHN0cmluZztcbiAgICAvLyBsZXQgZGF0YTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgc3dpdGNoIChldmVudC5SZXF1ZXN0VHlwZSkge1xuICAgICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgIGNhc2UgJ1VwZGF0ZSc6XG4gICAgICAgIGlmIChkZWxldGVPbmx5KSB7XG4gICAgICAgICAgYXdhaXQgY3VzdG9tUmVzb3VyY2VSZXNwb25kKGV2ZW50LCAnU1VDQ0VTUycsICdPSycsICdEZWxldGVyJywge30pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYFN0YXJ0aW5nIENvZGVCdWlsZCBwcm9qZWN0ICR7cHJvamVjdE5hbWV9YCk7XG4gICAgICAgIGF3YWl0IGNvZGVidWlsZC5zdGFydEJ1aWxkKHtcbiAgICAgICAgICBwcm9qZWN0TmFtZSxcbiAgICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlc092ZXJyaWRlOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdQTEFJTlRFWFQnLFxuICAgICAgICAgICAgICBuYW1lOiAnU1RBQ0tfSUQnLFxuICAgICAgICAgICAgICB2YWx1ZTogZXZlbnQuU3RhY2tJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdQTEFJTlRFWFQnLFxuICAgICAgICAgICAgICBuYW1lOiAnUkVRVUVTVF9JRCcsXG4gICAgICAgICAgICAgIHZhbHVlOiBldmVudC5SZXF1ZXN0SWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnUExBSU5URVhUJyxcbiAgICAgICAgICAgICAgbmFtZTogJ0xPR0lDQUxfUkVTT1VSQ0VfSUQnLFxuICAgICAgICAgICAgICB2YWx1ZTogZXZlbnQuTG9naWNhbFJlc291cmNlSWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnUExBSU5URVhUJyxcbiAgICAgICAgICAgICAgbmFtZTogJ1JFU1BPTlNFX1VSTCcsXG4gICAgICAgICAgICAgIHZhbHVlOiBldmVudC5SZXNwb25zZVVSTCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSkucHJvbWlzZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIGNvbnN0IGVjckltYWdlcyA9IGF3YWl0IGVjci5saXN0SW1hZ2VzKHsgcmVwb3NpdG9yeU5hbWU6IHJlcG9OYW1lLCBtYXhSZXN1bHRzOiAxMDAgfSkucHJvbWlzZSgpO1xuICAgICAgICBpZiAoZWNySW1hZ2VzLmltYWdlSWRzICYmIGVjckltYWdlcy5pbWFnZUlkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYXdhaXQgZWNyLmJhdGNoRGVsZXRlSW1hZ2Uoe1xuICAgICAgICAgICAgaW1hZ2VJZHM6IGVjckltYWdlcy5pbWFnZUlkcy5tYXAoaSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7IGltYWdlRGlnZXN0OiBpLmltYWdlRGlnZXN0IH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lOiByZXBvTmFtZSxcbiAgICAgICAgICB9KS5wcm9taXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGliTmFtZSkge1xuICAgICAgICAgIGNvbnN0IGliSW1hZ2VzID0gYXdhaXQgaWIubGlzdEltYWdlcyh7IGZpbHRlcnM6IFt7IG5hbWU6ICduYW1lJywgdmFsdWVzOiBbaWJOYW1lXSB9XSB9KS5wcm9taXNlKCk7XG4gICAgICAgICAgaWYgKGliSW1hZ2VzLmltYWdlVmVyc2lvbkxpc3QpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiBpYkltYWdlcy5pbWFnZVZlcnNpb25MaXN0KSB7XG4gICAgICAgICAgICAgIGlmICh2LmFybikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGliSW1hZ2VWZXJzaW9ucyA9IGF3YWl0IGliLmxpc3RJbWFnZUJ1aWxkVmVyc2lvbnMoeyBpbWFnZVZlcnNpb25Bcm46IHYuYXJuIH0pLnByb21pc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoaWJJbWFnZVZlcnNpb25zLmltYWdlU3VtbWFyeUxpc3QpIHtcbiAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdnMgb2YgaWJJbWFnZVZlcnNpb25zLmltYWdlU3VtbWFyeUxpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZzLmFybikge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBEZWxldGluZyAke3ZzLmFybn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpYi5kZWxldGVJbWFnZSh7IGltYWdlQnVpbGRWZXJzaW9uQXJuOiB2cy5hcm4gfSkucHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGN1c3RvbVJlc291cmNlUmVzcG9uZChldmVudCwgJ1NVQ0NFU1MnLCAnT0snLCBldmVudC5QaHlzaWNhbFJlc291cmNlSWQsIHt9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgICBhd2FpdCBjdXN0b21SZXNvdXJjZVJlc3BvbmQoZXZlbnQsICdGQUlMRUQnLCAoZSBhcyBFcnJvcikubWVzc2FnZSB8fCAnSW50ZXJuYWwgRXJyb3InLCBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsIHt9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DeleteAmiFunction = void 0;
|
|
4
|
-
// ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
|
|
5
|
-
const path = require("path");
|
|
6
|
-
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
7
|
-
/**
|
|
8
|
-
* An AWS Lambda function which executes src/lambdas/delete-ami.
|
|
9
|
-
*/
|
|
10
|
-
class DeleteAmiFunction extends lambda.Function {
|
|
11
|
-
constructor(scope, id, props) {
|
|
12
|
-
super(scope, id, {
|
|
13
|
-
description: 'src/lambdas/delete-ami.lambda.ts',
|
|
14
|
-
...props,
|
|
15
|
-
runtime: new lambda.Runtime('nodejs16.x', lambda.RuntimeFamily.NODEJS),
|
|
16
|
-
handler: 'index.handler',
|
|
17
|
-
code: lambda.Code.fromAsset(path.join(__dirname, '../../assets/lambdas/delete-ami.lambda')),
|
|
18
|
-
});
|
|
19
|
-
this.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true });
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.DeleteAmiFunction = DeleteAmiFunction;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWFtaS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGFzL2RlbGV0ZS1hbWktZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkVBQTZFO0FBQzdFLDZCQUE2QjtBQUM3QixpREFBaUQ7QUFTakQ7O0dBRUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQ3BELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsa0NBQWtDO1lBQy9DLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx3Q0FBd0MsQ0FBQyxDQUFDO1NBQzVGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBWEQsOENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLmpzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIERlbGV0ZUFtaUZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlQW1pRnVuY3Rpb25Qcm9wcyBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbk9wdGlvbnMge1xufVxuXG4vKipcbiAqIEFuIEFXUyBMYW1iZGEgZnVuY3Rpb24gd2hpY2ggZXhlY3V0ZXMgc3JjL2xhbWJkYXMvZGVsZXRlLWFtaS5cbiAqL1xuZXhwb3J0IGNsYXNzIERlbGV0ZUFtaUZ1bmN0aW9uIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBEZWxldGVBbWlGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3NyYy9sYW1iZGFzL2RlbGV0ZS1hbWkubGFtYmRhLnRzJyxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcnVudGltZTogbmV3IGxhbWJkYS5SdW50aW1lKCdub2RlanMxNi54JywgbGFtYmRhLlJ1bnRpbWVGYW1pbHkuTk9ERUpTKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vYXNzZXRzL2xhbWJkYXMvZGVsZXRlLWFtaS5sYW1iZGEnKSksXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudCgnQVdTX05PREVKU19DT05ORUNUSU9OX1JFVVNFX0VOQUJMRUQnLCAnMScsIHsgcmVtb3ZlSW5FZGdlOiB0cnVlIH0pO1xuICB9XG59Il19
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/* eslint-disable-next-line import/no-extraneous-dependencies */
|
|
4
|
-
const AWS = require("aws-sdk");
|
|
5
|
-
const helpers_1 = require("./helpers");
|
|
6
|
-
const ec2 = new AWS.EC2();
|
|
7
|
-
async function deleteAmis(launchTemplateId, stackName, builderName, deleteAll) {
|
|
8
|
-
// this runs daily and images are built once a week, so there shouldn't be a need for pagination
|
|
9
|
-
const images = await ec2.describeImages({
|
|
10
|
-
Owners: ['self'],
|
|
11
|
-
Filters: [
|
|
12
|
-
{
|
|
13
|
-
Name: 'tag:GitHubRunners:Stack',
|
|
14
|
-
Values: [stackName],
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
Name: 'tag:GitHubRunners:Builder',
|
|
18
|
-
Values: [builderName],
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
}).promise();
|
|
22
|
-
let imagesToDelete = images.Images ?? [];
|
|
23
|
-
console.log(`Found ${imagesToDelete.length} AMIs`);
|
|
24
|
-
console.log(JSON.stringify(imagesToDelete.map(i => i.ImageId)));
|
|
25
|
-
if (!deleteAll) {
|
|
26
|
-
// get launch template information to filter out the active image
|
|
27
|
-
const launchTemplates = await ec2.describeLaunchTemplateVersions({
|
|
28
|
-
LaunchTemplateId: launchTemplateId,
|
|
29
|
-
Versions: ['$Default'],
|
|
30
|
-
}).promise();
|
|
31
|
-
if (!launchTemplates.LaunchTemplateVersions) {
|
|
32
|
-
console.error(`Unable to describe launch template ${launchTemplateId}`);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const launchTemplate = launchTemplates.LaunchTemplateVersions[0];
|
|
36
|
-
// non-active images
|
|
37
|
-
imagesToDelete = imagesToDelete.filter(i => i.ImageId != launchTemplate.LaunchTemplateData?.ImageId);
|
|
38
|
-
// images older than two days to avoid race conditions where an image is created while we're cleaning up
|
|
39
|
-
imagesToDelete = imagesToDelete.filter(i => i.CreationDate && Date.parse(i.CreationDate) < (Date.now() - 1000 * 60 * 60 * 48));
|
|
40
|
-
console.log(`${imagesToDelete.length} AMIs left after filtering by date and excluding AMI used by launch template`);
|
|
41
|
-
}
|
|
42
|
-
// delete all that we found
|
|
43
|
-
for (const image of imagesToDelete) {
|
|
44
|
-
if (!image.ImageId) {
|
|
45
|
-
console.warn(`No image id? ${JSON.stringify(image)}`);
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
console.log(`Deregistering ${image.ImageId}`);
|
|
49
|
-
await ec2.deregisterImage({
|
|
50
|
-
ImageId: image.ImageId,
|
|
51
|
-
}).promise();
|
|
52
|
-
for (const blockMapping of image.BlockDeviceMappings ?? []) {
|
|
53
|
-
if (blockMapping.Ebs?.SnapshotId) {
|
|
54
|
-
console.log(`Deleting ${blockMapping.Ebs.SnapshotId}`);
|
|
55
|
-
await ec2.deleteSnapshot({
|
|
56
|
-
SnapshotId: blockMapping.Ebs.SnapshotId,
|
|
57
|
-
}).promise();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/* eslint-disable @typescript-eslint/no-require-imports, import/no-extraneous-dependencies */
|
|
63
|
-
exports.handler = async function (event, context) {
|
|
64
|
-
try {
|
|
65
|
-
console.log(JSON.stringify({ ...event, ResponseURL: '...' }));
|
|
66
|
-
switch (event.RequestType) {
|
|
67
|
-
case 'Scheduled':
|
|
68
|
-
await deleteAmis(event.LaunchTemplateId, event.StackName, event.BuilderName, false);
|
|
69
|
-
return;
|
|
70
|
-
case 'Create':
|
|
71
|
-
case 'Update':
|
|
72
|
-
await (0, helpers_1.customResourceRespond)(event, 'SUCCESS', 'OK', 'DeleteAmis', {});
|
|
73
|
-
break;
|
|
74
|
-
case 'Delete':
|
|
75
|
-
await deleteAmis('', event.ResourceProperties.StackName, event.ResourceProperties.BuilderName, true);
|
|
76
|
-
await (0, helpers_1.customResourceRespond)(event, 'SUCCESS', 'OK', event.PhysicalResourceId, {});
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch (e) {
|
|
81
|
-
console.error(e);
|
|
82
|
-
if (event.RequestType != 'Scheduled') {
|
|
83
|
-
await (0, helpers_1.customResourceRespond)(event, 'FAILED', e.message || 'Internal Error', context.logStreamName, {});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWFtaS5sYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGFtYmRhcy9kZWxldGUtYW1pLmxhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGdFQUFnRTtBQUNoRSwrQkFBK0I7QUFDL0IsdUNBQWtEO0FBRWxELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBUzFCLEtBQUssVUFBVSxVQUFVLENBQUMsZ0JBQXdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLFNBQWtCO0lBQzVHLGdHQUFnRztJQUNoRyxNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDdEMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLElBQUksRUFBRSx5QkFBeUI7Z0JBQy9CLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQzthQUNwQjtZQUNEO2dCQUNFLElBQUksRUFBRSwyQkFBMkI7Z0JBQ2pDLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUN0QjtTQUNGO0tBQ0YsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWIsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFFekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLGNBQWMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsaUVBQWlFO1FBQ2pFLE1BQU0sZUFBZSxHQUFHLE1BQU0sR0FBRyxDQUFDLDhCQUE4QixDQUFDO1lBQy9ELGdCQUFnQixFQUFF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QWtCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JHLE1BQU0sSUFBQSwrQkFBcUIsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2xGLE1BQU07U0FDVDtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUU7WUFDcEMsTUFBTSxJQUFBLCtCQUFxQixFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUcsQ0FBVyxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25IO0tBQ0Y7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzLGltcG9ydC9uby11bnJlc29sdmVkICovXG5pbXBvcnQgKiBhcyBBV1NMYW1iZGEgZnJvbSAnYXdzLWxhbWJkYSc7XG4vKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgKiBhcyBBV1MgZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgeyBjdXN0b21SZXNvdXJjZVJlc3BvbmQgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5jb25zdCBlYzIgPSBuZXcgQVdTLkVDMigpO1xuXG50eXBlIERlbGV0ZUFtaUlucHV0ID0ge1xuICBSZXF1ZXN0VHlwZTogJ1NjaGVkdWxlZCc7XG4gIFN0YWNrTmFtZTogc3RyaW5nO1xuICBCdWlsZGVyTmFtZTogc3RyaW5nO1xuICBMYXVuY2hUZW1wbGF0ZUlkOiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUFtaXMobGF1bmNoVGVtcGxhdGVJZDogc3RyaW5nLCBzdGFja05hbWU6IHN0cmluZywgYnVpbGRlck5hbWU6IHN0cmluZywgZGVsZXRlQWxsOiBib29sZWFuKSB7XG4gIC8vIHRoaXMgcnVucyBkYWlseSBhbmQgaW1hZ2VzIGFyZSBidWlsdCBvbmNlIGEgd2Vlaywgc28gdGhlcmUgc2hvdWxkbid0IGJlIGEgbmVlZCBmb3IgcGFnaW5hdGlvblxuICBjb25zdCBpbWFnZXMgPSBhd2FpdCBlYzIuZGVzY3JpYmVJbWFnZXMoe1xuICAgIE93bmVyczogWydzZWxmJ10sXG4gICAgRmlsdGVyczogW1xuICAgICAge1xuICAgICAgICBOYW1lOiAndGFnOkdpdEh1YlJ1bm5lcnM6U3RhY2snLFxuICAgICAgICBWYWx1ZXM6IFtzdGFja05hbWVdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgTmFtZTogJ3RhZzpHaXRIdWJSdW5uZXJzOkJ1aWxkZXInLFxuICAgICAgICBWYWx1ZXM6IFtidWlsZGVyTmFtZV0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0pLnByb21pc2UoKTtcblxuICBsZXQgaW1hZ2VzVG9EZWxldGUgPSBpbWFnZXMuSW1hZ2VzID8/IFtdO1xuXG4gIGNvbnNvbGUubG9nKGBGb3VuZCAke2ltYWdlc1RvRGVsZXRlLmxlbmd0aH0gQU1Jc2ApO1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShpbWFnZXNUb0RlbGV0ZS5tYXAoaSA9PiBpLkltYWdlSWQpKSk7XG5cbiAgaWYgKCFkZWxldGVBbGwpIHtcbiAgICAvLyBnZXQgbGF1bmNoIHRlbXBsYXRlIGluZm9ybWF0aW9uIHRvIGZpbHRlciBvdXQgdGhlIGFjdGl2ZSBpbWFnZVxuICAgIGNvbnN0IGxhdW5jaFRlbXBsYXRlcyA9IGF3YWl0IGVjMi5kZXNjcmliZUxhdW5jaFRlbXBsYXRlVmVyc2lvbnMoe1xuICAgICAgTGF1bmNoVGVtcGxhdGVJZDogbGF1bmNoVGVtcGxhdGVJZCxcbiAgICAgIFZlcnNpb25zOiBbJyREZWZhdWx0J10sXG4gICAgfSkucHJvbWlzZSgpO1xuICAgIGlmICghbGF1bmNoVGVtcGxhdGVzLkxhdW5jaFRlbXBsYXRlVmVyc2lvbnMpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFVuYWJsZSB0byBkZXNjcmliZSBsYXVuY2ggdGVtcGxhdGUgJHtsYXVuY2hUZW1wbGF0ZUlkfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsYXVuY2hUZW1wbGF0ZSA9IGxhdW5jaFRlbXBsYXRlcy5MYXVuY2hUZW1wbGF0ZVZlcnNpb25zWzBdO1xuXG4gICAgLy8gbm9uLWFjdGl2ZSBpbWFnZXNcbiAgICBpbWFnZXNUb0RlbGV0ZSA9IGltYWdlc1RvRGVsZXRlLmZpbHRlcihpID0+IGkuSW1hZ2VJZCAhPSBsYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZURhdGE/LkltYWdlSWQpO1xuICAgIC8vIGltYWdlcyBvbGRlciB0aGFuIHR3byBkYXlzIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyB3aGVyZSBhbiBpbWFnZSBpcyBjcmVhdGVkIHdoaWxlIHdlJ3JlIGNsZWFuaW5nIHVwXG4gICAgaW1hZ2VzVG9EZWxldGUgPSBpbWFnZXNUb0RlbGV0ZS5maWx0ZXIoaSA9PiBpLkNyZWF0aW9uRGF0ZSAmJiBEYXRlLnBhcnNlKGkuQ3JlYXRpb25EYXRlKSA8IChEYXRlLm5vdygpIC0gMTAwMCAqIDYwICogNjAgKiA0OCkpO1xuXG4gICAgY29uc29sZS5sb2coYCR7aW1hZ2VzVG9EZWxldGUubGVuZ3RofSBBTUlzIGxlZnQgYWZ0ZXIgZmlsdGVyaW5nIGJ5IGRhdGUgYW5kIGV4Y2x1ZGluZyBBTUkgdXNlZCBieSBsYXVuY2ggdGVtcGxhdGVgKTtcbiAgfVxuXG4gIC8vIGRlbGV0ZSBhbGwgdGhhdCB3ZSBmb3VuZFxuICBmb3IgKGNvbnN0IGltYWdlIG9mIGltYWdlc1RvRGVsZXRlKSB7XG4gICAgaWYgKCFpbWFnZS5JbWFnZUlkKSB7XG4gICAgICBjb25zb2xlLndhcm4oYE5vIGltYWdlIGlkPyAke0pTT04uc3RyaW5naWZ5KGltYWdlKX1gKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKGBEZXJlZ2lzdGVyaW5nICR7aW1hZ2UuSW1hZ2VJZH1gKTtcblxuICAgIGF3YWl0IGVjMi5kZXJlZ2lzdGVySW1hZ2Uoe1xuICAgICAgSW1hZ2VJZDogaW1hZ2UuSW1hZ2VJZCxcbiAgICB9KS5wcm9taXNlKCk7XG5cbiAgICBmb3IgKGNvbnN0IGJsb2NrTWFwcGluZyBvZiBpbWFnZS5CbG9ja0RldmljZU1hcHBpbmdzID8/IFtdKSB7XG4gICAgICBpZiAoYmxvY2tNYXBwaW5nLkVicz8uU25hcHNob3RJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgRGVsZXRpbmcgJHtibG9ja01hcHBpbmcuRWJzLlNuYXBzaG90SWR9YCk7XG5cbiAgICAgICAgYXdhaXQgZWMyLmRlbGV0ZVNuYXBzaG90KHtcbiAgICAgICAgICBTbmFwc2hvdElkOiBibG9ja01hcHBpbmcuRWJzLlNuYXBzaG90SWQsXG4gICAgICAgIH0pLnByb21pc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cywgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5leHBvcnRzLmhhbmRsZXIgPSBhc3luYyBmdW5jdGlvbiAoZXZlbnQ6IERlbGV0ZUFtaUlucHV0IHwgQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCwgY29udGV4dDogQVdTTGFtYmRhLkNvbnRleHQpIHtcbiAgdHJ5IHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IC4uLmV2ZW50LCBSZXNwb25zZVVSTDogJy4uLicgfSkpO1xuXG4gICAgc3dpdGNoIChldmVudC5SZXF1ZXN0VHlwZSkge1xuICAgICAgY2FzZSAnU2NoZWR1bGVkJzpcbiAgICAgICAgYXdhaXQgZGVsZXRlQW1pcyhldmVudC5MYXVuY2hUZW1wbGF0ZUlkLCBldmVudC5TdGFja05hbWUsIGV2ZW50LkJ1aWxkZXJOYW1lLCBmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0NyZWF0ZSc6XG4gICAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgICBhd2FpdCBjdXN0b21SZXNvdXJjZVJlc3BvbmQoZXZlbnQsICdTVUNDRVNTJywgJ09LJywgJ0RlbGV0ZUFtaXMnLCB7fSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGVsZXRlJzpcbiAgICAgICAgYXdhaXQgZGVsZXRlQW1pcygnJywgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLlN0YWNrTmFtZSwgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkJ1aWxkZXJOYW1lLCB0cnVlKTtcbiAgICAgICAgYXdhaXQgY3VzdG9tUmVzb3VyY2VSZXNwb25kKGV2ZW50LCAnU1VDQ0VTUycsICdPSycsIGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCwge30pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgIGlmIChldmVudC5SZXF1ZXN0VHlwZSAhPSAnU2NoZWR1bGVkJykge1xuICAgICAgYXdhaXQgY3VzdG9tUmVzb3VyY2VSZXNwb25kKGV2ZW50LCAnRkFJTEVEJywgKGUgYXMgRXJyb3IpLm1lc3NhZ2UgfHwgJ0ludGVybmFsIEVycm9yJywgY29udGV4dC5sb2dTdHJlYW1OYW1lLCB7fSk7XG4gICAgfVxuICB9XG59O1xuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DeleteRunnerFunction = void 0;
|
|
4
|
-
// ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
|
|
5
|
-
const path = require("path");
|
|
6
|
-
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
7
|
-
/**
|
|
8
|
-
* An AWS Lambda function which executes src/lambdas/delete-runner.
|
|
9
|
-
*/
|
|
10
|
-
class DeleteRunnerFunction extends lambda.Function {
|
|
11
|
-
constructor(scope, id, props) {
|
|
12
|
-
super(scope, id, {
|
|
13
|
-
description: 'src/lambdas/delete-runner.lambda.ts',
|
|
14
|
-
...props,
|
|
15
|
-
runtime: new lambda.Runtime('nodejs16.x', lambda.RuntimeFamily.NODEJS),
|
|
16
|
-
handler: 'index.handler',
|
|
17
|
-
code: lambda.Code.fromAsset(path.join(__dirname, '../../assets/lambdas/delete-runner.lambda')),
|
|
18
|
-
});
|
|
19
|
-
this.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true });
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.DeleteRunnerFunction = DeleteRunnerFunction;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXJ1bm5lci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGFzL2RlbGV0ZS1ydW5uZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkVBQTZFO0FBQzdFLDZCQUE2QjtBQUM3QixpREFBaUQ7QUFTakQ7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQ3ZELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUscUNBQXFDO1lBQ2xELEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwyQ0FBMkMsQ0FBQyxDQUFDO1NBQy9GLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBWEQsb0RBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLmpzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIERlbGV0ZVJ1bm5lckZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlUnVubmVyRnVuY3Rpb25Qcm9wcyBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbk9wdGlvbnMge1xufVxuXG4vKipcbiAqIEFuIEFXUyBMYW1iZGEgZnVuY3Rpb24gd2hpY2ggZXhlY3V0ZXMgc3JjL2xhbWJkYXMvZGVsZXRlLXJ1bm5lci5cbiAqL1xuZXhwb3J0IGNsYXNzIERlbGV0ZVJ1bm5lckZ1bmN0aW9uIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBEZWxldGVSdW5uZXJGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3NyYy9sYW1iZGFzL2RlbGV0ZS1ydW5uZXIubGFtYmRhLnRzJyxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcnVudGltZTogbmV3IGxhbWJkYS5SdW50aW1lKCdub2RlanMxNi54JywgbGFtYmRhLlJ1bnRpbWVGYW1pbHkuTk9ERUpTKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vYXNzZXRzL2xhbWJkYXMvZGVsZXRlLXJ1bm5lci5sYW1iZGEnKSksXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudCgnQVdTX05PREVKU19DT05ORUNUSU9OX1JFVVNFX0VOQUJMRUQnLCAnMScsIHsgcmVtb3ZlSW5FZGdlOiB0cnVlIH0pO1xuICB9XG59Il19
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const github_1 = require("./github");
|
|
4
|
-
async function getRunnerId(octokit, owner, repo, name, idleOnly) {
|
|
5
|
-
let page = 1;
|
|
6
|
-
while (true) {
|
|
7
|
-
const runners = await octokit.request('GET /repos/{owner}/{repo}/actions/runners?per_page=100&page={page}', {
|
|
8
|
-
page: page,
|
|
9
|
-
owner: owner,
|
|
10
|
-
repo: repo,
|
|
11
|
-
});
|
|
12
|
-
if (runners.data.runners.length == 0) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
for (const runner of runners.data.runners) {
|
|
16
|
-
if (runner.name == name) {
|
|
17
|
-
if (idleOnly) {
|
|
18
|
-
if (!runner.busy) {
|
|
19
|
-
return runner.id;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
console.log('Runner is busy, no need to delete.');
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return runner.id;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
page++;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
class RunnerBusy extends Error {
|
|
33
|
-
constructor(msg) {
|
|
34
|
-
super(msg);
|
|
35
|
-
this.name = 'RunnerBusy';
|
|
36
|
-
Object.setPrototypeOf(this, RunnerBusy.prototype);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.handler = async function (event) {
|
|
40
|
-
const { octokit } = await (0, github_1.getOctokit)(event.installationId);
|
|
41
|
-
// find runner id
|
|
42
|
-
const runnerId = await getRunnerId(octokit, event.owner, event.repo, event.runnerName, event.idleOnly);
|
|
43
|
-
if (!runnerId) {
|
|
44
|
-
console.error(`Unable to find runner id for ${event.owner}/${event.repo}:${event.runnerName}`);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
console.log(`Runner ${event.runnerName} has id #${runnerId}`);
|
|
48
|
-
// delete runner (it usually gets deleted by ./run.sh, but it stopped prematurely if we're here).
|
|
49
|
-
// it seems like runners are automatically removed after a timeout, if they first accepted a job.
|
|
50
|
-
// we try removing it anyway for cases where a job wasn't accepted, and just in case it wasn't removed.
|
|
51
|
-
// repos have a limited number of self-hosted runners, so we can't leave dead ones behind.
|
|
52
|
-
try {
|
|
53
|
-
await octokit.rest.actions.deleteSelfHostedRunnerFromRepo({
|
|
54
|
-
owner: event.owner,
|
|
55
|
-
repo: event.repo,
|
|
56
|
-
runner_id: runnerId,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
const reqError = e;
|
|
61
|
-
if (reqError.message.includes('is still running a job')) {
|
|
62
|
-
throw new RunnerBusy(reqError.message);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
throw e;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXJ1bm5lci5sYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGFtYmRhcy9kZWxldGUtcnVubmVyLmxhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLHFDQUFzQztBQU90QyxLQUFLLFVBQVUsV0FBVyxDQUFDLE9BQVksRUFBRSxLQUFhLEVBQUUsSUFBWSxFQUFFLElBQVksRUFBRSxRQUFpQjtJQUNuRyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixPQUFPLElBQUksRUFBRTtRQUNYLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxvRUFBb0UsRUFBRTtZQUMxRyxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDcEMsT0FBTztTQUNSO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN6QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUN2QixJQUFJLFFBQVEsRUFBRTtvQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTt3QkFDaEIsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDO3FCQUNsQjt5QkFBTTt3QkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7d0JBQ2xELE9BQU87cUJBQ1I7aUJBQ0Y7Z0JBQ0QsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDO2FBQ2xCO1NBQ0Y7UUFFRCxJQUFJLEVBQUUsQ0FBQztLQUNSO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVyxTQUFRLEtBQUs7SUFDNUIsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssV0FBVyxLQUF3QjtJQUN4RCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFBLG1CQUFVLEVBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTNELGlCQUFpQjtJQUNqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZHLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDL0YsT0FBTztLQUNSO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssQ0FBQyxVQUFVLFlBQVksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUU5RCxpR0FBaUc7SUFDakcsaUdBQWlHO0lBQ2pHLHVHQUF1RztJQUN2RywwRkFBMEY7SUFDMUYsSUFBSTtRQUNGLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUM7WUFDeEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixTQUFTLEVBQUUsUUFBUTtTQUNwQixDQUFDLENBQUM7S0FDSjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsTUFBTSxRQUFRLEdBQWlCLENBQUMsQ0FBQztRQUNqQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDdkQsTUFBTSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE1BQU0sQ0FBQyxDQUFDO1NBQ1Q7S0FDRjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJ0BvY3Rva2l0L3JlcXVlc3QtZXJyb3InO1xuaW1wb3J0IHsgZ2V0T2N0b2tpdCB9IGZyb20gJy4vZ2l0aHViJztcbmltcG9ydCB7IFN0ZXBGdW5jdGlvbkxhbWJkYUlucHV0IH0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIERlbGV0ZVJ1bm5lcklucHV0IGV4dGVuZHMgU3RlcEZ1bmN0aW9uTGFtYmRhSW5wdXQge1xuICByZWFkb25seSBpZGxlT25seTogYm9vbGVhbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UnVubmVySWQob2N0b2tpdDogYW55LCBvd25lcjogc3RyaW5nLCByZXBvOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgaWRsZU9ubHk6IGJvb2xlYW4pIHtcbiAgbGV0IHBhZ2UgPSAxO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHJ1bm5lcnMgPSBhd2FpdCBvY3Rva2l0LnJlcXVlc3QoJ0dFVCAvcmVwb3Mve293bmVyfS97cmVwb30vYWN0aW9ucy9ydW5uZXJzP3Blcl9wYWdlPTEwMCZwYWdlPXtwYWdlfScsIHtcbiAgICAgIHBhZ2U6IHBhZ2UsXG4gICAgICBvd25lcjogb3duZXIsXG4gICAgICByZXBvOiByZXBvLFxuICAgIH0pO1xuXG4gICAgaWYgKHJ1bm5lcnMuZGF0YS5ydW5uZXJzLmxlbmd0aCA9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBydW5uZXIgb2YgcnVubmVycy5kYXRhLnJ1bm5lcnMpIHtcbiAgICAgIGlmIChydW5uZXIubmFtZSA9PSBuYW1lKSB7XG4gICAgICAgIGlmIChpZGxlT25seSkge1xuICAgICAgICAgIGlmICghcnVubmVyLmJ1c3kpIHtcbiAgICAgICAgICAgIHJldHVybiBydW5uZXIuaWQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSdW5uZXIgaXMgYnVzeSwgbm8gbmVlZCB0byBkZWxldGUuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBydW5uZXIuaWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGFnZSsrO1xuICB9XG59XG5cbmNsYXNzIFJ1bm5lckJ1c3kgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nKSB7XG4gICAgc3VwZXIobXNnKTtcbiAgICB0aGlzLm5hbWUgPSAnUnVubmVyQnVzeSc7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFJ1bm5lckJ1c3kucHJvdG90eXBlKTtcbiAgfVxufVxuXG5leHBvcnRzLmhhbmRsZXIgPSBhc3luYyBmdW5jdGlvbiAoZXZlbnQ6IERlbGV0ZVJ1bm5lcklucHV0KSB7XG4gIGNvbnN0IHsgb2N0b2tpdCB9ID0gYXdhaXQgZ2V0T2N0b2tpdChldmVudC5pbnN0YWxsYXRpb25JZCk7XG5cbiAgLy8gZmluZCBydW5uZXIgaWRcbiAgY29uc3QgcnVubmVySWQgPSBhd2FpdCBnZXRSdW5uZXJJZChvY3Rva2l0LCBldmVudC5vd25lciwgZXZlbnQucmVwbywgZXZlbnQucnVubmVyTmFtZSwgZXZlbnQuaWRsZU9ubHkpO1xuICBpZiAoIXJ1bm5lcklkKSB7XG4gICAgY29uc29sZS5lcnJvcihgVW5hYmxlIHRvIGZpbmQgcnVubmVyIGlkIGZvciAke2V2ZW50Lm93bmVyfS8ke2V2ZW50LnJlcG99OiR7ZXZlbnQucnVubmVyTmFtZX1gKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLmxvZyhgUnVubmVyICR7ZXZlbnQucnVubmVyTmFtZX0gaGFzIGlkICMke3J1bm5lcklkfWApO1xuXG4gIC8vIGRlbGV0ZSBydW5uZXIgKGl0IHVzdWFsbHkgZ2V0cyBkZWxldGVkIGJ5IC4vcnVuLnNoLCBidXQgaXQgc3RvcHBlZCBwcmVtYXR1cmVseSBpZiB3ZSdyZSBoZXJlKS5cbiAgLy8gaXQgc2VlbXMgbGlrZSBydW5uZXJzIGFyZSBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgYWZ0ZXIgYSB0aW1lb3V0LCBpZiB0aGV5IGZpcnN0IGFjY2VwdGVkIGEgam9iLlxuICAvLyB3ZSB0cnkgcmVtb3ZpbmcgaXQgYW55d2F5IGZvciBjYXNlcyB3aGVyZSBhIGpvYiB3YXNuJ3QgYWNjZXB0ZWQsIGFuZCBqdXN0IGluIGNhc2UgaXQgd2Fzbid0IHJlbW92ZWQuXG4gIC8vIHJlcG9zIGhhdmUgYSBsaW1pdGVkIG51bWJlciBvZiBzZWxmLWhvc3RlZCBydW5uZXJzLCBzbyB3ZSBjYW4ndCBsZWF2ZSBkZWFkIG9uZXMgYmVoaW5kLlxuICB0cnkge1xuICAgIGF3YWl0IG9jdG9raXQucmVzdC5hY3Rpb25zLmRlbGV0ZVNlbGZIb3N0ZWRSdW5uZXJGcm9tUmVwbyh7XG4gICAgICBvd25lcjogZXZlbnQub3duZXIsXG4gICAgICByZXBvOiBldmVudC5yZXBvLFxuICAgICAgcnVubmVyX2lkOiBydW5uZXJJZCxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnN0IHJlcUVycm9yID0gPFJlcXVlc3RFcnJvcj5lO1xuICAgIGlmIChyZXFFcnJvci5tZXNzYWdlLmluY2x1ZGVzKCdpcyBzdGlsbCBydW5uaW5nIGEgam9iJykpIHtcbiAgICAgIHRocm93IG5ldyBSdW5uZXJCdXN5KHJlcUVycm9yLm1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufTtcbiJdfQ==
|
package/lib/lambdas/github.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOctokit = exports.baseUrlFromDomain = void 0;
|
|
4
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
5
|
-
const auth_app_1 = require("@octokit/auth-app");
|
|
6
|
-
const rest_1 = require("@octokit/rest");
|
|
7
|
-
const helpers_1 = require("./helpers");
|
|
8
|
-
function baseUrlFromDomain(domain) {
|
|
9
|
-
if (domain == 'github.com') {
|
|
10
|
-
return 'https://api.github.com';
|
|
11
|
-
}
|
|
12
|
-
return `https://${domain}/api/v3`;
|
|
13
|
-
}
|
|
14
|
-
exports.baseUrlFromDomain = baseUrlFromDomain;
|
|
15
|
-
async function getOctokit(installationId) {
|
|
16
|
-
if (!process.env.GITHUB_SECRET_ARN || !process.env.GITHUB_PRIVATE_KEY_SECRET_ARN) {
|
|
17
|
-
throw new Error('Missing environment variables');
|
|
18
|
-
}
|
|
19
|
-
const githubSecrets = await (0, helpers_1.getSecretJsonValue)(process.env.GITHUB_SECRET_ARN);
|
|
20
|
-
let baseUrl = baseUrlFromDomain(githubSecrets.domain);
|
|
21
|
-
let token;
|
|
22
|
-
if (githubSecrets.personalAuthToken) {
|
|
23
|
-
token = githubSecrets.personalAuthToken;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const privateKey = await (0, helpers_1.getSecretValue)(process.env.GITHUB_PRIVATE_KEY_SECRET_ARN);
|
|
27
|
-
const appOctokit = new rest_1.Octokit({
|
|
28
|
-
baseUrl,
|
|
29
|
-
authStrategy: auth_app_1.createAppAuth,
|
|
30
|
-
auth: {
|
|
31
|
-
appId: githubSecrets.appId,
|
|
32
|
-
privateKey: privateKey,
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
token = (await appOctokit.auth({
|
|
36
|
-
type: 'installation',
|
|
37
|
-
installationId: installationId,
|
|
38
|
-
})).token;
|
|
39
|
-
}
|
|
40
|
-
const octokit = new rest_1.Octokit({
|
|
41
|
-
baseUrl,
|
|
42
|
-
auth: token,
|
|
43
|
-
});
|
|
44
|
-
return {
|
|
45
|
-
githubSecrets,
|
|
46
|
-
octokit,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
exports.getOctokit = getOctokit;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhbWJkYXMvZ2l0aHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFzRDtBQUN0RCxnREFBa0Q7QUFDbEQsd0NBQXdDO0FBQ3hDLHVDQUErRDtBQUUvRCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFjO0lBQzlDLElBQUksTUFBTSxJQUFJLFlBQVksRUFBRTtRQUMxQixPQUFPLHdCQUF3QixDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxXQUFXLE1BQU0sU0FBUyxDQUFDO0FBQ3BDLENBQUM7QUFMRCw4Q0FLQztBQUVNLEtBQUssVUFBVSxVQUFVLENBQUMsY0FBdUI7SUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFO1FBQ2hGLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUNsRDtJQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBQSw0QkFBa0IsRUFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFOUUsSUFBSSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRELElBQUksS0FBSyxDQUFDO0lBQ1YsSUFBSSxhQUFhLENBQUMsaUJBQWlCLEVBQUU7UUFDbkMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztLQUN6QztTQUFNO1FBQ0wsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFBLHdCQUFjLEVBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRW5GLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBTyxDQUFDO1lBQzdCLE9BQU87WUFDUCxZQUFZLEVBQUUsd0JBQWE7WUFDM0IsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztnQkFDMUIsVUFBVSxFQUFFLFVBQVU7YUFDdkI7U0FDRixDQUFDLENBQUM7UUFFSCxLQUFLLEdBQUcsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDN0IsSUFBSSxFQUFFLGNBQWM7WUFDcEIsY0FBYyxFQUFFLGNBQWM7U0FDL0IsQ0FBUyxDQUFBLENBQUMsS0FBSyxDQUFDO0tBQ2xCO0lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFPLENBQUM7UUFDMUIsT0FBTztRQUNQLElBQUksRUFBRSxLQUFLO0tBQ1osQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLGFBQWE7UUFDYixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUM7QUF2Q0QsZ0NBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgeyBjcmVhdGVBcHBBdXRoIH0gZnJvbSAnQG9jdG9raXQvYXV0aC1hcHAnO1xuaW1wb3J0IHsgT2N0b2tpdCB9IGZyb20gJ0BvY3Rva2l0L3Jlc3QnO1xuaW1wb3J0IHsgZ2V0U2VjcmV0VmFsdWUsIGdldFNlY3JldEpzb25WYWx1ZSB9IGZyb20gJy4vaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBiYXNlVXJsRnJvbURvbWFpbihkb21haW46IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChkb21haW4gPT0gJ2dpdGh1Yi5jb20nKSB7XG4gICAgcmV0dXJuICdodHRwczovL2FwaS5naXRodWIuY29tJztcbiAgfVxuICByZXR1cm4gYGh0dHBzOi8vJHtkb21haW59L2FwaS92M2A7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPY3Rva2l0KGluc3RhbGxhdGlvbklkPzogc3RyaW5nKSB7XG4gIGlmICghcHJvY2Vzcy5lbnYuR0lUSFVCX1NFQ1JFVF9BUk4gfHwgIXByb2Nlc3MuZW52LkdJVEhVQl9QUklWQVRFX0tFWV9TRUNSRVRfQVJOKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcycpO1xuICB9XG5cbiAgY29uc3QgZ2l0aHViU2VjcmV0cyA9IGF3YWl0IGdldFNlY3JldEpzb25WYWx1ZShwcm9jZXNzLmVudi5HSVRIVUJfU0VDUkVUX0FSTik7XG5cbiAgbGV0IGJhc2VVcmwgPSBiYXNlVXJsRnJvbURvbWFpbihnaXRodWJTZWNyZXRzLmRvbWFpbik7XG5cbiAgbGV0IHRva2VuO1xuICBpZiAoZ2l0aHViU2VjcmV0cy5wZXJzb25hbEF1dGhUb2tlbikge1xuICAgIHRva2VuID0gZ2l0aHViU2VjcmV0cy5wZXJzb25hbEF1dGhUb2tlbjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgZ2V0U2VjcmV0VmFsdWUocHJvY2Vzcy5lbnYuR0lUSFVCX1BSSVZBVEVfS0VZX1NFQ1JFVF9BUk4pO1xuXG4gICAgY29uc3QgYXBwT2N0b2tpdCA9IG5ldyBPY3Rva2l0KHtcbiAgICAgIGJhc2VVcmwsXG4gICAgICBhdXRoU3RyYXRlZ3k6IGNyZWF0ZUFwcEF1dGgsXG4gICAgICBhdXRoOiB7XG4gICAgICAgIGFwcElkOiBnaXRodWJTZWNyZXRzLmFwcElkLFxuICAgICAgICBwcml2YXRlS2V5OiBwcml2YXRlS2V5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRva2VuID0gKGF3YWl0IGFwcE9jdG9raXQuYXV0aCh7XG4gICAgICB0eXBlOiAnaW5zdGFsbGF0aW9uJyxcbiAgICAgIGluc3RhbGxhdGlvbklkOiBpbnN0YWxsYXRpb25JZCxcbiAgICB9KSBhcyBhbnkpLnRva2VuO1xuICB9XG5cbiAgY29uc3Qgb2N0b2tpdCA9IG5ldyBPY3Rva2l0KHtcbiAgICBiYXNlVXJsLFxuICAgIGF1dGg6IHRva2VuLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGdpdGh1YlNlY3JldHMsXG4gICAgb2N0b2tpdCxcbiAgfTtcbn1cbiJdfQ==
|
package/lib/lambdas/helpers.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.customResourceRespond = exports.updateSecretValue = exports.getSecretJsonValue = exports.getSecretValue = void 0;
|
|
4
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
5
|
-
const AWS = require("aws-sdk");
|
|
6
|
-
const sm = new AWS.SecretsManager();
|
|
7
|
-
async function getSecretValue(arn) {
|
|
8
|
-
if (!arn) {
|
|
9
|
-
throw new Error('Missing secret ARN');
|
|
10
|
-
}
|
|
11
|
-
const secret = await sm.getSecretValue({ SecretId: arn }).promise();
|
|
12
|
-
if (!secret.SecretString) {
|
|
13
|
-
throw new Error(`No SecretString in ${arn}`);
|
|
14
|
-
}
|
|
15
|
-
return secret.SecretString;
|
|
16
|
-
}
|
|
17
|
-
exports.getSecretValue = getSecretValue;
|
|
18
|
-
async function getSecretJsonValue(arn) {
|
|
19
|
-
return JSON.parse(await getSecretValue(arn));
|
|
20
|
-
}
|
|
21
|
-
exports.getSecretJsonValue = getSecretJsonValue;
|
|
22
|
-
async function updateSecretValue(arn, value) {
|
|
23
|
-
if (!arn) {
|
|
24
|
-
throw new Error('Missing secret ARN');
|
|
25
|
-
}
|
|
26
|
-
await sm.updateSecret({ SecretId: arn, SecretString: value }).promise();
|
|
27
|
-
}
|
|
28
|
-
exports.updateSecretValue = updateSecretValue;
|
|
29
|
-
async function customResourceRespond(event, responseStatus, reason, physicalResourceId, data) {
|
|
30
|
-
const responseBody = JSON.stringify({
|
|
31
|
-
Status: responseStatus,
|
|
32
|
-
Reason: reason,
|
|
33
|
-
PhysicalResourceId: physicalResourceId,
|
|
34
|
-
StackId: event.StackId,
|
|
35
|
-
RequestId: event.RequestId,
|
|
36
|
-
LogicalResourceId: event.LogicalResourceId,
|
|
37
|
-
NoEcho: false,
|
|
38
|
-
Data: data,
|
|
39
|
-
});
|
|
40
|
-
console.log('Responding', responseBody);
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
42
|
-
const parsedUrl = require('url').parse(event.ResponseURL);
|
|
43
|
-
const requestOptions = {
|
|
44
|
-
hostname: parsedUrl.hostname,
|
|
45
|
-
path: parsedUrl.path,
|
|
46
|
-
method: 'PUT',
|
|
47
|
-
headers: {
|
|
48
|
-
'content-type': '',
|
|
49
|
-
'content-length': responseBody.length,
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
return new Promise((resolve, reject) => {
|
|
53
|
-
try {
|
|
54
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
55
|
-
const request = require('https').request(requestOptions, resolve);
|
|
56
|
-
request.on('error', reject);
|
|
57
|
-
request.write(responseBody);
|
|
58
|
-
request.end();
|
|
59
|
-
}
|
|
60
|
-
catch (e) {
|
|
61
|
-
reject(e);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
exports.customResourceRespond = customResourceRespond;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGFzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQXNEO0FBQ3RELCtCQUErQjtBQVcvQixNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUU3QixLQUFLLFVBQVUsY0FBYyxDQUFDLEdBQXVCO0lBQzFELElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDdkM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUVwRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQzlDO0lBRUQsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQzdCLENBQUM7QUFaRCx3Q0FZQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxHQUF1QjtJQUM5RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRkQsZ0RBRUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsR0FBdUIsRUFBRSxLQUFhO0lBQzVFLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDdkM7SUFFRCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzFFLENBQUM7QUFORCw4Q0FNQztBQUVNLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxLQUFrRCxFQUFFLGNBQXNCLEVBQ3BILE1BQWMsRUFBRSxrQkFBMEIsRUFBRSxJQUFTO0lBQ3JELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEMsTUFBTSxFQUFFLGNBQWM7UUFDdEIsTUFBTSxFQUFFLE1BQU07UUFDZCxrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1FBQzFDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUV4QyxpRUFBaUU7SUFDakUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsTUFBTSxjQUFjLEdBQUc7UUFDckIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1FBQzVCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtRQUNwQixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxNQUFNO1NBQ3RDO0tBQ0YsQ0FBQztJQUVGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsSUFBSTtZQUNGLGlFQUFpRTtZQUNqRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUNmO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXRDRCxzREFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGVwRnVuY3Rpb25MYW1iZGFJbnB1dCB7XG4gIHJlYWRvbmx5IG93bmVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbiAgcmVhZG9ubHkgcnVuSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcnVubmVyTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBpbnN0YWxsYXRpb25JZDogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbHM6IHN0cmluZ1tdO1xufVxuXG5jb25zdCBzbSA9IG5ldyBBV1MuU2VjcmV0c01hbmFnZXIoKTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNlY3JldFZhbHVlKGFybjogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIGlmICghYXJuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHNlY3JldCBBUk4nKTtcbiAgfVxuXG4gIGNvbnN0IHNlY3JldCA9IGF3YWl0IHNtLmdldFNlY3JldFZhbHVlKHsgU2VjcmV0SWQ6IGFybiB9KS5wcm9taXNlKCk7XG5cbiAgaWYgKCFzZWNyZXQuU2VjcmV0U3RyaW5nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBTZWNyZXRTdHJpbmcgaW4gJHthcm59YCk7XG4gIH1cblxuICByZXR1cm4gc2VjcmV0LlNlY3JldFN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNlY3JldEpzb25WYWx1ZShhcm46IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCBnZXRTZWNyZXRWYWx1ZShhcm4pKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVNlY3JldFZhbHVlKGFybjogc3RyaW5nIHwgdW5kZWZpbmVkLCB2YWx1ZTogc3RyaW5nKSB7XG4gIGlmICghYXJuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHNlY3JldCBBUk4nKTtcbiAgfVxuXG4gIGF3YWl0IHNtLnVwZGF0ZVNlY3JldCh7IFNlY3JldElkOiBhcm4sIFNlY3JldFN0cmluZzogdmFsdWUgfSkucHJvbWlzZSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3VzdG9tUmVzb3VyY2VSZXNwb25kKGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LCByZXNwb25zZVN0YXR1czogc3RyaW5nLFxuICByZWFzb246IHN0cmluZywgcGh5c2ljYWxSZXNvdXJjZUlkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICBjb25zdCByZXNwb25zZUJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgU3RhdHVzOiByZXNwb25zZVN0YXR1cyxcbiAgICBSZWFzb246IHJlYXNvbixcbiAgICBQaHlzaWNhbFJlc291cmNlSWQ6IHBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgICBTdGFja0lkOiBldmVudC5TdGFja0lkLFxuICAgIFJlcXVlc3RJZDogZXZlbnQuUmVxdWVzdElkLFxuICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICBOb0VjaG86IGZhbHNlLFxuICAgIERhdGE6IGRhdGEsXG4gIH0pO1xuXG4gIGNvbnNvbGUubG9nKCdSZXNwb25kaW5nJywgcmVzcG9uc2VCb2R5KTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCBwYXJzZWRVcmwgPSByZXF1aXJlKCd1cmwnKS5wYXJzZShldmVudC5SZXNwb25zZVVSTCk7XG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgIGhvc3RuYW1lOiBwYXJzZWRVcmwuaG9zdG5hbWUsXG4gICAgcGF0aDogcGFyc2VkVXJsLnBhdGgsXG4gICAgbWV0aG9kOiAnUFVUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnY29udGVudC10eXBlJzogJycsXG4gICAgICAnY29udGVudC1sZW5ndGgnOiByZXNwb25zZUJvZHkubGVuZ3RoLFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKCdodHRwcycpLnJlcXVlc3QocmVxdWVzdE9wdGlvbnMsIHJlc29sdmUpO1xuICAgICAgcmVxdWVzdC5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgcmVxdWVzdC53cml0ZShyZXNwb25zZUJvZHkpO1xuICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SetupFunction = void 0;
|
|
4
|
-
// ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
|
|
5
|
-
const path = require("path");
|
|
6
|
-
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
7
|
-
/**
|
|
8
|
-
* An AWS Lambda function which executes src/lambdas/setup.
|
|
9
|
-
*/
|
|
10
|
-
class SetupFunction extends lambda.Function {
|
|
11
|
-
constructor(scope, id, props) {
|
|
12
|
-
super(scope, id, {
|
|
13
|
-
description: 'src/lambdas/setup.lambda.ts',
|
|
14
|
-
...props,
|
|
15
|
-
runtime: new lambda.Runtime('nodejs16.x', lambda.RuntimeFamily.NODEJS),
|
|
16
|
-
handler: 'index.handler',
|
|
17
|
-
code: lambda.Code.fromAsset(path.join(__dirname, '../../assets/lambdas/setup.lambda')),
|
|
18
|
-
});
|
|
19
|
-
this.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true });
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.SetupFunction = SetupFunction;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGFtYmRhcy9zZXR1cC1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2RUFBNkU7QUFDN0UsNkJBQTZCO0FBQzdCLGlEQUFpRDtBQVNqRDs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQ2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsNkJBQTZCO1lBQzFDLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3ZGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBWEQsc0NBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLmpzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIFNldHVwRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXR1cEZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9sYW1iZGFzL3NldHVwLlxuICovXG5leHBvcnQgY2xhc3MgU2V0dXBGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU2V0dXBGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3NyYy9sYW1iZGFzL3NldHVwLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMTYueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uL2Fzc2V0cy9sYW1iZGFzL3NldHVwLmxhbWJkYScpKSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZEVudmlyb25tZW50KCdBV1NfTk9ERUpTX0NPTk5FQ1RJT05fUkVVU0VfRU5BQkxFRCcsICcxJywgeyByZW1vdmVJbkVkZ2U6IHRydWUgfSk7XG4gIH1cbn0iXX0=
|