@cloudsnorkel/cdk-github-runners 0.14.10 → 0.14.12
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/.jsii +41 -41
- package/assets/delete-failed-runner.lambda/index.js +18 -12
- package/assets/idle-runner-repear.lambda/index.js +32 -20
- package/assets/image-builders/aws-image-builder/delete-resources.lambda/index.js +2 -13
- package/assets/setup.lambda/index.html +7 -7
- package/assets/token-retriever.lambda/index.js +18 -12
- package/assets/webhook-handler.lambda/index.js +19 -13
- package/assets/webhook-redelivery.lambda/index.js +13401 -0
- package/lib/access.js +1 -1
- package/lib/idle-runner-repear.lambda.js +19 -11
- package/lib/image-builders/api.js +1 -1
- package/lib/image-builders/aws-image-builder/builder.js +1 -1
- package/lib/image-builders/aws-image-builder/delete-resources.lambda.js +2 -13
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/container.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
- package/lib/image-builders/codebuild-deprecated.js +1 -1
- package/lib/image-builders/codebuild.js +8 -6
- package/lib/image-builders/components.js +3 -2
- package/lib/image-builders/static.js +1 -1
- package/lib/lambda-github.d.ts +4 -0
- package/lib/lambda-github.js +57 -16
- package/lib/lambda-helpers.js +1 -1
- package/lib/providers/codebuild.js +2 -2
- package/lib/providers/common.js +3 -3
- package/lib/providers/ec2.js +2 -2
- package/lib/providers/ecs.js +1 -1
- package/lib/providers/fargate.js +2 -2
- package/lib/providers/lambda.js +2 -2
- package/lib/runner.d.ts +1 -0
- package/lib/runner.js +19 -2
- package/lib/secrets.js +1 -1
- package/lib/webhook-handler.lambda.js +2 -2
- package/lib/webhook-redelivery-function.d.ts +13 -0
- package/lib/webhook-redelivery-function.js +23 -0
- package/lib/webhook-redelivery.d.ts +26 -0
- package/lib/webhook-redelivery.js +43 -0
- package/lib/webhook-redelivery.lambda.d.ts +9 -0
- package/lib/webhook-redelivery.lambda.js +149 -0
- package/package.json +18 -16
|
@@ -13200,6 +13200,7 @@ __export(token_retriever_lambda_exports, {
|
|
|
13200
13200
|
module.exports = __toCommonJS(token_retriever_lambda_exports);
|
|
13201
13201
|
|
|
13202
13202
|
// src/lambda-github.ts
|
|
13203
|
+
var import_crypto = require("crypto");
|
|
13203
13204
|
var import_auth_app = __toESM(require_dist_node12());
|
|
13204
13205
|
var import_rest = __toESM(require_dist_node19());
|
|
13205
13206
|
|
|
@@ -13227,26 +13228,33 @@ function baseUrlFromDomain(domain) {
|
|
|
13227
13228
|
}
|
|
13228
13229
|
return `https://${domain}/api/v3`;
|
|
13229
13230
|
}
|
|
13230
|
-
var octokitCache =
|
|
13231
|
+
var octokitCache = /* @__PURE__ */ new Map();
|
|
13231
13232
|
async function getOctokit(installationId) {
|
|
13232
13233
|
if (!process.env.GITHUB_SECRET_ARN || !process.env.GITHUB_PRIVATE_KEY_SECRET_ARN) {
|
|
13233
13234
|
throw new Error("Missing environment variables");
|
|
13234
13235
|
}
|
|
13235
13236
|
const githubSecrets = await getSecretJsonValue(process.env.GITHUB_SECRET_ARN);
|
|
13236
|
-
|
|
13237
|
+
const cacheKey = (0, import_crypto.createHash)("sha256").update(`${installationId || "no-install"}-${githubSecrets.domain}-${githubSecrets.appId}-${githubSecrets.personalAuthToken}`).digest("hex");
|
|
13238
|
+
const cached = octokitCache.get(cacheKey);
|
|
13239
|
+
if (cached) {
|
|
13237
13240
|
try {
|
|
13238
|
-
await
|
|
13239
|
-
console.log(
|
|
13241
|
+
await cached.rest.meta.getOctocat();
|
|
13242
|
+
console.log({
|
|
13243
|
+
notice: "Using cached octokit"
|
|
13244
|
+
});
|
|
13240
13245
|
return {
|
|
13241
|
-
octokit:
|
|
13242
|
-
githubSecrets
|
|
13246
|
+
octokit: cached,
|
|
13247
|
+
githubSecrets
|
|
13243
13248
|
};
|
|
13244
13249
|
} catch (e) {
|
|
13245
|
-
console.log(
|
|
13246
|
-
|
|
13250
|
+
console.log({
|
|
13251
|
+
notice: "Octokit cache is invalid",
|
|
13252
|
+
error: e
|
|
13253
|
+
});
|
|
13254
|
+
octokitCache.delete(cacheKey);
|
|
13247
13255
|
}
|
|
13248
13256
|
}
|
|
13249
|
-
|
|
13257
|
+
const baseUrl = baseUrlFromDomain(githubSecrets.domain);
|
|
13250
13258
|
let token;
|
|
13251
13259
|
if (githubSecrets.personalAuthToken) {
|
|
13252
13260
|
token = githubSecrets.personalAuthToken;
|
|
@@ -13269,9 +13277,7 @@ async function getOctokit(installationId) {
|
|
|
13269
13277
|
baseUrl,
|
|
13270
13278
|
auth: token
|
|
13271
13279
|
});
|
|
13272
|
-
octokitCache.
|
|
13273
|
-
octokitCache.installationId = installationId;
|
|
13274
|
-
octokitCache.secrets = githubSecrets;
|
|
13280
|
+
octokitCache.set(cacheKey, octokit);
|
|
13275
13281
|
return {
|
|
13276
13282
|
octokit,
|
|
13277
13283
|
githubSecrets
|
|
@@ -13204,6 +13204,7 @@ var crypto = __toESM(require("crypto"));
|
|
|
13204
13204
|
var import_client_sfn = require("@aws-sdk/client-sfn");
|
|
13205
13205
|
|
|
13206
13206
|
// src/lambda-github.ts
|
|
13207
|
+
var import_crypto = require("crypto");
|
|
13207
13208
|
var import_auth_app = __toESM(require_dist_node12());
|
|
13208
13209
|
var import_rest = __toESM(require_dist_node19());
|
|
13209
13210
|
|
|
@@ -13231,26 +13232,33 @@ function baseUrlFromDomain(domain) {
|
|
|
13231
13232
|
}
|
|
13232
13233
|
return `https://${domain}/api/v3`;
|
|
13233
13234
|
}
|
|
13234
|
-
var octokitCache =
|
|
13235
|
+
var octokitCache = /* @__PURE__ */ new Map();
|
|
13235
13236
|
async function getOctokit(installationId) {
|
|
13236
13237
|
if (!process.env.GITHUB_SECRET_ARN || !process.env.GITHUB_PRIVATE_KEY_SECRET_ARN) {
|
|
13237
13238
|
throw new Error("Missing environment variables");
|
|
13238
13239
|
}
|
|
13239
13240
|
const githubSecrets = await getSecretJsonValue(process.env.GITHUB_SECRET_ARN);
|
|
13240
|
-
|
|
13241
|
+
const cacheKey = (0, import_crypto.createHash)("sha256").update(`${installationId || "no-install"}-${githubSecrets.domain}-${githubSecrets.appId}-${githubSecrets.personalAuthToken}`).digest("hex");
|
|
13242
|
+
const cached = octokitCache.get(cacheKey);
|
|
13243
|
+
if (cached) {
|
|
13241
13244
|
try {
|
|
13242
|
-
await
|
|
13243
|
-
console.log(
|
|
13245
|
+
await cached.rest.meta.getOctocat();
|
|
13246
|
+
console.log({
|
|
13247
|
+
notice: "Using cached octokit"
|
|
13248
|
+
});
|
|
13244
13249
|
return {
|
|
13245
|
-
octokit:
|
|
13246
|
-
githubSecrets
|
|
13250
|
+
octokit: cached,
|
|
13251
|
+
githubSecrets
|
|
13247
13252
|
};
|
|
13248
13253
|
} catch (e) {
|
|
13249
|
-
console.log(
|
|
13250
|
-
|
|
13254
|
+
console.log({
|
|
13255
|
+
notice: "Octokit cache is invalid",
|
|
13256
|
+
error: e
|
|
13257
|
+
});
|
|
13258
|
+
octokitCache.delete(cacheKey);
|
|
13251
13259
|
}
|
|
13252
13260
|
}
|
|
13253
|
-
|
|
13261
|
+
const baseUrl = baseUrlFromDomain(githubSecrets.domain);
|
|
13254
13262
|
let token;
|
|
13255
13263
|
if (githubSecrets.personalAuthToken) {
|
|
13256
13264
|
token = githubSecrets.personalAuthToken;
|
|
@@ -13273,9 +13281,7 @@ async function getOctokit(installationId) {
|
|
|
13273
13281
|
baseUrl,
|
|
13274
13282
|
auth: token
|
|
13275
13283
|
});
|
|
13276
|
-
octokitCache.
|
|
13277
|
-
octokitCache.installationId = installationId;
|
|
13278
|
-
octokitCache.secrets = githubSecrets;
|
|
13284
|
+
octokitCache.set(cacheKey, octokit);
|
|
13279
13285
|
return {
|
|
13280
13286
|
octokit,
|
|
13281
13287
|
githubSecrets
|
|
@@ -13373,7 +13379,7 @@ async function handler(event) {
|
|
|
13373
13379
|
if (getHeader(event, "x-github-event") !== "workflow_job") {
|
|
13374
13380
|
console.error(`This webhook only accepts workflow_job, got ${getHeader(event, "x-github-event")}`);
|
|
13375
13381
|
return {
|
|
13376
|
-
statusCode:
|
|
13382
|
+
statusCode: 200,
|
|
13377
13383
|
body: "Expecting workflow_job"
|
|
13378
13384
|
};
|
|
13379
13385
|
}
|