From 8c19eb7910967ce42887a1feb32546c88d27a852 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2026 20:00:51 +0000 Subject: [PATCH 1/3] Bump nock from 14.0.17 to 15.0.1 Bumps [nock](https://github.com/nock/nock) from 14.0.17 to 15.0.1. - [Release notes](https://github.com/nock/nock/releases) - [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md) - [Commits](https://github.com/nock/nock/compare/v14.0.17...v15.0.1) --- updated-dependencies: - dependency-name: nock dependency-version: 15.0.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 98 ++++++++++++++++++----------------------------- package.json | 2 +- 2 files changed, 38 insertions(+), 62 deletions(-) diff --git a/package-lock.json b/package-lock.json index 210d006..0d33af4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ }, "devDependencies": { "mocha": "^12.0.3", - "nock": "^14.0.17", + "nock": "^15.0.1", "nyc": "^18.0.0", "smee-client": "^5.0.0", "uvu": "^0.5.6" @@ -452,21 +452,21 @@ } }, "node_modules/@mswjs/interceptors": { - "version": "0.41.3", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.41.3.tgz", - "integrity": "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.44.0.tgz", + "integrity": "sha512-IYHevRStF4ijM20GI9c9Ndhw483NSAjCydQhUr4/zIB0BNLsTVw3vFAxTo6TlvX4QnV60wEHttUa9539TTAq+A==", "dev": true, "license": "MIT", "dependencies": { - "@open-draft/deferred-promise": "^2.2.0", - "@open-draft/logger": "^0.3.0", - "@open-draft/until": "^2.0.0", + "@open-draft/until": "^3.0.1", + "@types/debug": "^4.1.13", + "debug": "^4.4.3", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", - "strict-event-emitter": "^0.5.1" + "rettime": "^0.11.11" }, "engines": { - "node": ">=18" + "node": ">=22" } }, "node_modules/@octokit/auth-app": { @@ -810,31 +810,16 @@ "integrity": "sha512-S8u2cJzklBC0FgTwWVLaM8tMrDuDMVE4xiTK4EYXM9GntyvrdbSoxqDQa+Fh57CCNApyIpyeqPhhFEmHPfrXgw==", "license": "MIT" }, - "node_modules/@open-draft/deferred-promise": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", - "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@open-draft/logger": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", - "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "node_modules/@open-draft/until": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-3.0.1.tgz", + "integrity": "sha512-s7/9ELP4aP9YZtW7RJaa0Xf3RISaRH9+EFN18FtykJYRHGNrl8f9ymvoNXzjhrjmftFvkQudtuDU9RYhk0xs3A==", "dev": true, "license": "MIT", - "dependencies": { - "is-node-process": "^1.2.0", - "outvariant": "^1.4.0" + "funding": { + "url": "https://github.com/sponsors/kettanaito" } }, - "node_modules/@open-draft/until": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", - "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", - "dev": true, - "license": "MIT" - }, "node_modules/@opentelemetry/api": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", @@ -2347,6 +2332,16 @@ "@types/node": "*" } }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/express": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", @@ -4054,13 +4049,6 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "license": "MIT" }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "license": "ISC" - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -4416,18 +4404,16 @@ } }, "node_modules/nock": { - "version": "14.0.17", - "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.17.tgz", - "integrity": "sha512-EjRr1weMa4ALQX35AgZTEnP+weJJjlW1KGDiNM2IQC2069YDHas4f4B4UUYR+TTLyKWxJvOz2wObDKQs/LNreA==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-15.0.1.tgz", + "integrity": "sha512-Mjx5Xl4t9vP13eUZPWqwwpjjXNjvhUTo1qTdryVM3+7t6Z2w6WHZ9GVZk/zQ8Ym1vbmloWaglye3cloyHAJ8FA==", "dev": true, "license": "MIT", "dependencies": { - "@mswjs/interceptors": "^0.41.0", - "json-stringify-safe": "^5.0.1", - "propagate": "^2.0.0" + "@mswjs/interceptors": "^0.44.0" }, "engines": { - "node": ">=18.20.0 <20 || >=20.12.1" + "node": ">=20.12.1" } }, "node_modules/node-preload": { @@ -5415,16 +5401,6 @@ ], "license": "MIT" }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/proxy-addr": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", @@ -5625,6 +5601,13 @@ "node": ">= 4" } }, + "node_modules/rettime": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/rettime/-/rettime-0.11.12.tgz", + "integrity": "sha512-5ExtR1ppiDBQkVoPw5NAqdbfH4Iq2VOmQKHMtUoaFxA9bo2krzFYBtyq6K40xxbYp+2w/YOr6D+1ToF6tTN53A==", + "dev": true, + "license": "MIT" + }, "node_modules/rimraf": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", @@ -6035,13 +6018,6 @@ "node": ">= 0.8" } }, - "node_modules/strict-event-emitter": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", - "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", - "dev": true, - "license": "MIT" - }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", diff --git a/package.json b/package.json index de0c7d5..8a55b51 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "license": "MIT", "devDependencies": { "mocha": "^12.0.3", - "nock": "^14.0.17", + "nock": "^15.0.1", "nyc": "^18.0.0", "smee-client": "^5.0.0", "uvu": "^0.5.6" From 289f53a938c8025e45c815daa3ff881a25b83981 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 13 Oct 2026 02:10:34 +0000 Subject: [PATCH 2/3] Fix nock 15 test compatibility Co-authored-by: robandpdx <95243761+robandpdx@users.noreply.github.com> --- test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test.js b/test.js index 2ea6ed0..d66c392 100644 --- a/test.js +++ b/test.js @@ -1,7 +1,7 @@ const { suite } = require("uvu"); const assert = require("uvu/assert"); -const nock = require("nock"); +const nock = require("nock").default; nock.disableNetConnect(); const { From 761991483d141c8e3b044d0c86b30e73e41ae03d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 13 Oct 2026 02:31:39 +0000 Subject: [PATCH 3/3] Fix unit tests for nock 15 Co-authored-by: robandpdx <95243761+robandpdx@users.noreply.github.com> --- test.js | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/test.js b/test.js index d66c392..08bc3a7 100644 --- a/test.js +++ b/test.js @@ -339,6 +339,7 @@ test.before.each(() => { }); test.after.each(() => { + nock.cleanAll(); delete process.env.APPROVE_PR; delete process.env.CREATE_ISSUE; delete process.env.MERGE_PR; @@ -577,7 +578,8 @@ test("receives pull_request.labeled event, check team membership, merge the PR", .put("/repos/robandpdx/superbigmono/pulls/1/merge").reply(200); // mock the request to check if the user is a member of the emergency team - mock.get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + mock.get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(200, payloadMembershipResponse); await probot.receive(payloadPrLabeled); @@ -645,7 +647,8 @@ test("receives pull_request.labeled event from a non-app bot, do not merge the P // mock self-introspection — the detected bot login differs from the sender .get("/app").reply(200, { slug: "emergency-pr" }) // mock the membership check returning 404 — the bot is not on the team - .get(`/orgs/robandpdx/teams/emergency-team/memberships/dependabot[bot]?org=robandpdx&team_slug=emergency-team&username=dependabot%5Bbot%5D`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/dependabot[bot]") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "dependabot[bot]" }) .reply(404); // mock the unauthorized comment @@ -680,7 +683,8 @@ test("receives pull_request.labeled event from a bot when self-introspection fai // self-introspection fails .get("/app").reply(500) // membership check returns 404 — the bot is not on the team - .get(`/orgs/robandpdx/teams/emergency-team/memberships/dependabot[bot]?org=robandpdx&team_slug=emergency-team&username=dependabot%5Bbot%5D`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/dependabot[bot]") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "dependabot[bot]" }) .reply(404); mock.post("/repos/robandpdx/superbigmono/issues/1/comments", @@ -710,7 +714,8 @@ test("receives pull_request.labeled event, check non team membership, do not mer // mock the request to check if the user is a member of the emergency team const mock = nock("https://api.github.com") - .get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(200, payloadNonMembershipResponse); // mock the request to create the issue comment @@ -742,7 +747,8 @@ test("receives pull_request.labeled event, non team membership, do not merge the // mock the request to check if the user is a member of the emergency team const mock = nock("https://api.github.com") - .get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(404); // mock the request to create the issue comment @@ -1079,6 +1085,7 @@ test("receives pull_request.opened event, applies emergency label checking team const mock = nock("https://api.github.com") .post("/repos/robandpdx/superbigmono/issues/1/labels", (requestBody) => { + if (!requestBody?.labels) return false; assert.equal(requestBody.labels[0], "emergency"); return true; } @@ -1086,7 +1093,8 @@ test("receives pull_request.opened event, applies emergency label checking team .reply(200); // mock the request to check if the user is a member of the emergency team - mock.get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + mock.get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(200, payloadMembershipResponse); await probot.receive(payloadPrOpened); @@ -1099,7 +1107,8 @@ test("receives pull_request.opened event, does not apply emergency label due to // mock the request to apply the emergency label const mock = nock("https://api.github.com") - .get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(200, payloadNonMembershipResponse); // mock the request to create the issue comment @@ -1166,6 +1175,7 @@ test("receives issue_comment.created event, applies emergency label", async func const mock = nock("https://api.github.com") .post("/repos/robandpdx/superbigmono/issues/1/labels", (requestBody) => { + if (!requestBody?.labels) return false; assert.equal(requestBody.labels[0], "emergency"); return true; } @@ -1173,7 +1183,8 @@ test("receives issue_comment.created event, applies emergency label", async func .reply(200); // mock the request to check if the user is a member of the emergency team - mock.get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + mock.get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(200, payloadMembershipResponse); await probot.receive(payloadPrComment); @@ -1186,7 +1197,8 @@ test("receives issue_comment.created event, does not apply emergency label due t // mock the request to apply the emergency label const mock = nock("https://api.github.com") - .get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(200, payloadNonMembershipResponse); // mock the request to create the issue comment @@ -1207,7 +1219,8 @@ test("receives issue_comment.created event, does not apply emergency label due t // mock the request to apply the emergency label const mock = nock("https://api.github.com") - .get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(500); try { @@ -1224,7 +1237,8 @@ test("receives issue_comment.created event, does not applies emergency label, fa // mock the request to apply the emergency label const mock = nock("https://api.github.com") - .get(`/orgs/robandpdx/teams/emergency-team/memberships/robandpdx?org=robandpdx&team_slug=emergency-team&username=robandpdx`) + .get("/orgs/robandpdx/teams/emergency-team/memberships/robandpdx") + .query({ org: "robandpdx", team_slug: "emergency-team", username: "robandpdx" }) .reply(200, payloadNonMembershipResponse); // mock the request to create the issue comment