From 701f9ace8b3662d36b76e2a9c23e054ab0482e95 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Wed, 22 Apr 2026 17:04:52 -0700 Subject: [PATCH 01/10] Scope OpenTelemetry to explicit instrumentations (#60901) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/index-general-search-pr.yml | 2 +- package-lock.json | 1086 +---------------- package.json | 4 +- src/observability/lib/tracing.ts | 18 +- 4 files changed, 31 insertions(+), 1079 deletions(-) diff --git a/.github/workflows/index-general-search-pr.yml b/.github/workflows/index-general-search-pr.yml index 3220a1e6e2d9..885d637f2f89 100644 --- a/.github/workflows/index-general-search-pr.yml +++ b/.github/workflows/index-general-search-pr.yml @@ -64,7 +64,7 @@ jobs: # first sleep to give it a chance to start sleep 6 - curl --retry-connrefused --retry 4 -I http://localhost:4002/ + curl --retry-connrefused --retry 6 -I http://localhost:4002/ - if: ${{ failure() }} name: Debug server outputs on errors diff --git a/package-lock.json b/package-lock.json index d28cdfb9223c..fc0dc0c3b7f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,9 +17,11 @@ "@octokit/plugin-retry": "8.0.1", "@octokit/request-error": "7.0.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/auto-instrumentations-node": "^0.73.0", "@opentelemetry/core": "^2.5.1", "@opentelemetry/exporter-trace-otlp-proto": "^0.215.0", + "@opentelemetry/instrumentation-express": "^0.63.0", + "@opentelemetry/instrumentation-http": "^0.215.0", + "@opentelemetry/instrumentation-undici": "^0.25.0", "@opentelemetry/sdk-node": "^0.215.0", "@primer/behaviors": "^1.10.2", "@primer/css": "^21.3.1", @@ -2932,69 +2934,6 @@ "node": ">=8.0.0" } }, - "node_modules/@opentelemetry/auto-instrumentations-node": { - "version": "0.73.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.73.0.tgz", - "integrity": "sha512-BYk94aQ2Dab1+zrIZMoZ1gvDzkT2u0S7PjoUitzej7b8nM2IEEe/dvkvSs6ybxu58Y045ZEtQ00iq2LZVV+F+g==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/instrumentation-amqplib": "^0.62.0", - "@opentelemetry/instrumentation-aws-lambda": "^0.67.0", - "@opentelemetry/instrumentation-aws-sdk": "^0.70.0", - "@opentelemetry/instrumentation-bunyan": "^0.60.0", - "@opentelemetry/instrumentation-cassandra-driver": "^0.60.0", - "@opentelemetry/instrumentation-connect": "^0.58.0", - "@opentelemetry/instrumentation-cucumber": "^0.31.0", - "@opentelemetry/instrumentation-dataloader": "^0.32.0", - "@opentelemetry/instrumentation-dns": "^0.58.0", - "@opentelemetry/instrumentation-express": "^0.63.0", - "@opentelemetry/instrumentation-fs": "^0.34.0", - "@opentelemetry/instrumentation-generic-pool": "^0.58.0", - "@opentelemetry/instrumentation-graphql": "^0.63.0", - "@opentelemetry/instrumentation-grpc": "^0.215.0", - "@opentelemetry/instrumentation-hapi": "^0.61.0", - "@opentelemetry/instrumentation-http": "^0.215.0", - "@opentelemetry/instrumentation-ioredis": "^0.63.0", - "@opentelemetry/instrumentation-kafkajs": "^0.24.0", - "@opentelemetry/instrumentation-knex": "^0.59.0", - "@opentelemetry/instrumentation-koa": "^0.63.0", - "@opentelemetry/instrumentation-lru-memoizer": "^0.59.0", - "@opentelemetry/instrumentation-memcached": "^0.58.0", - "@opentelemetry/instrumentation-mongodb": "^0.68.0", - "@opentelemetry/instrumentation-mongoose": "^0.61.0", - "@opentelemetry/instrumentation-mysql": "^0.61.0", - "@opentelemetry/instrumentation-mysql2": "^0.61.0", - "@opentelemetry/instrumentation-nestjs-core": "^0.61.0", - "@opentelemetry/instrumentation-net": "^0.59.0", - "@opentelemetry/instrumentation-openai": "^0.13.0", - "@opentelemetry/instrumentation-oracledb": "^0.40.0", - "@opentelemetry/instrumentation-pg": "^0.67.0", - "@opentelemetry/instrumentation-pino": "^0.61.0", - "@opentelemetry/instrumentation-redis": "^0.63.0", - "@opentelemetry/instrumentation-restify": "^0.60.0", - "@opentelemetry/instrumentation-router": "^0.59.0", - "@opentelemetry/instrumentation-runtime-node": "^0.28.0", - "@opentelemetry/instrumentation-socket.io": "^0.62.0", - "@opentelemetry/instrumentation-tedious": "^0.34.0", - "@opentelemetry/instrumentation-undici": "^0.25.0", - "@opentelemetry/instrumentation-winston": "^0.59.0", - "@opentelemetry/resource-detector-alibaba-cloud": "^0.33.5", - "@opentelemetry/resource-detector-aws": "^2.15.0", - "@opentelemetry/resource-detector-azure": "^0.23.0", - "@opentelemetry/resource-detector-container": "^0.8.6", - "@opentelemetry/resource-detector-gcp": "^0.50.0", - "@opentelemetry/resources": "^2.0.0", - "@opentelemetry/sdk-node": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.4.1", - "@opentelemetry/core": "^2.0.0" - } - }, "node_modules/@opentelemetry/configuration": { "version": "0.215.0", "resolved": "https://registry.npmjs.org/@opentelemetry/configuration/-/configuration-0.215.0.tgz", @@ -3271,154 +3210,6 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-amqplib": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.62.0.tgz", - "integrity": "sha512-L6Bxqw/HJvlKo6yYclwS75pJk+KVW1ApiGiQp83v3mD8hZ7zU7nlm/XLWqu7fDSJa/6CACn5vC1cbbztRPZjNg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-aws-lambda": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.67.0.tgz", - "integrity": "sha512-6RyHnXu3qobe9Qvdzzfa/ElzMob6fJJjWGeN6xKrPYIRQgMYx7Txjc0+0sd6MgOmLP+/HC0fIUgskUt5Sd8S7w==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.27.0", - "@types/aws-lambda": "^8.10.155" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-aws-sdk": { - "version": "0.70.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.70.0.tgz", - "integrity": "sha512-QaKy/ggRl41m2anAPJNX61vnQhdsgosNWBNcytciu3sTA1HxABCvD1/t0QEwFFojv5EnkbbjYszVkVUJmGB8BQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.34.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-bunyan": { - "version": "0.60.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.60.0.tgz", - "integrity": "sha512-nHn76sowr9Gv9fs2hJEgbARCXd1N42QSaPsFe3EE7G5K/eCA7Vqdfm0YyzLQypnzk7n3ciVFYy8cmjWDMyCRiA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "^0.215.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@types/bunyan": "1.8.11" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-cassandra-driver": { - "version": "0.60.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.60.0.tgz", - "integrity": "sha512-Xaj9riNlEQaFX7fGmWcN643TJU54piQg/HKw89d5cMSmtP+JaXjquaB2W3+Ujbf7CesG76c7NrJSDB9G8oLigQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.37.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.58.0.tgz", - "integrity": "sha512-C03Iw1BVeB2V1eFtnOr0AFIAbpTQhZEltjuQHdm7nLvB4vZZWjgkiNpAdoCZCiuVCrNM4ioFnI5ByoLaQjTShQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.27.0", - "@types/connect": "3.4.38" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-cucumber": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.31.0.tgz", - "integrity": "sha512-aH1eRewreuXdaV5u2dMKOLKB9Z3fcQZEQz5PRTqK+jovLLk6e5hWfyX/uWg88SNRyEdiuhm1yXhpBMiJ8xtMOQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.27.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-dataloader": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.32.0.tgz", - "integrity": "sha512-GJJNdxFpCXOKLli0RcYlSF8RbSYV3b+y3u43SkUe4TokMT7oCDzOfpbbGdIYY9r8jd79BelSMtsFAcqx77MU3A==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-dns": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.58.0.tgz", - "integrity": "sha512-mKf41LZdYgWaci348r3aYvb46uRN1IJWLQRy3/p9YTKZ6CT2IihaHpMwKB2nAMrNNuRrMEqkiC943zglY2mSfg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, "node_modules/@opentelemetry/instrumentation-express": { "version": "0.63.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.63.0.tgz", @@ -3436,460 +3227,16 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-fs": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.34.0.tgz", - "integrity": "sha512-xe/pFlkwMf6jE3zY+rQRX39AtGXLVH082oOkCJGhxfnCSt3Z4phDv+R/zbL3e4nejQpaJtmU0eue3lSX795ldA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-generic-pool": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.58.0.tgz", - "integrity": "sha512-ea6oyoNdTiE6hZ28vZnusfoAz+WV75wb43R6E4Zk4Ez+5bnNazA0rMfcIEWX73Wf12jZl7WwKi6C9+e4CKyb3Q==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.63.0.tgz", - "integrity": "sha512-awpOmEfWPyW/ibe6wdOs+MbzQWt/CqnA+lfpdMgGkXlHXNcICv8JeAlwRk/0UJAhVrNJS/hPIw7mIDNZThqGyQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.215.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.215.0.tgz", - "integrity": "sha512-RdwBAcrFX8y1OdmHRI9LdbMhydzMi91meOJQj+XXq1x93dsQLOy1LIpkLNIdE69rncEPHsIQHLyWlxGbTp+w1g==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "0.215.0", - "@opentelemetry/semantic-conventions": "^1.29.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.61.0.tgz", - "integrity": "sha512-JxBbAAjOlA9UXN9A+4MzCDQHkC07pDmcJArOWsPkdYXQgm2oHxbTo7sAVcjk1RYLbv9Pb7KdLQC0973zamUmfw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.27.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.215.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.215.0.tgz", - "integrity": "sha512-ip9iNoRRVxDyP8LVfdqqI6OwbOwzxTl4SaP1WDKJq0sDsgpOr7rIOFj7gV8yKl4F5PdDOUYy8VqdgIOWZRlGBw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "2.7.0", - "@opentelemetry/instrumentation": "0.215.0", - "@opentelemetry/semantic-conventions": "^1.29.0", - "forwarded-parse": "2.1.2" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.63.0.tgz", - "integrity": "sha512-x+h/uq7mstqr7TwU1q0MdmMkyU1SDZcmd/ErXbdNfScmXMcYfo8sCRzMsL9UwukSdaU3ccYYpYweGXghv9xN0Q==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/redis-common": "^0.38.3", - "@opentelemetry/semantic-conventions": "^1.33.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-kafkajs": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.24.0.tgz", - "integrity": "sha512-DL0Qe+gMYG/THj8rDGf1ZoQZrbWqUV/RaRVhUT40a5vyurnmf+klOjUi7LdMfx92gVwwYffdjf/tqZdAJWyhQg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.30.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-knex": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.59.0.tgz", - "integrity": "sha512-8AcqxmlLs1EyJw8emcskhlZj+hYTSIUaLzqsyafWYuMbyVn/5JNfC1qRu43PeUQ68dKEsj8+4bwZXX2FciYJCw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.1" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.63.0.tgz", - "integrity": "sha512-Y1G9UHxCXhC3HX7H55er5s2g+ZbTb/fu3ahm7a49WqD/9GzBhdv+PGgoVpi5lIbROuiVKO2Dn6OHmseXZQtkZA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.36.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.9.0" - } - }, - "node_modules/@opentelemetry/instrumentation-lru-memoizer": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.59.0.tgz", - "integrity": "sha512-6G/o0k9S6WMRKb7cTvaVLFzeuyBh0tNj5HmMVfzSOdcArXpRWb64vEJ/qmW61WzlarKHuYNGJBom2pMkmVDQTQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-memcached": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.58.0.tgz", - "integrity": "sha512-8TI3Kly1uDnVh8gMKiao/Z1ZU+esAUd7sXrX7gABtUs1PyBvIeHGc2zHZlRe/DlG4N/UHtiGUwrarhIJ0pby5w==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0", - "@types/memcached": "^2.2.6" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.68.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.68.0.tgz", - "integrity": "sha512-F2350q32pgP58fdCXeZIfixAzlAKhIjDyF9t3U/ZI09+v0BmozcLTw1/fXH88m44AqzWqdV1i77ipROu1KKeMA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mongoose": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.61.0.tgz", - "integrity": "sha512-9rVi8bdQrXd6uAOoDzVfAK9E19YUoChWIZvorJQwZ+lfZwXPWsG0nU5JEhO8RzwE6g5gNxeuEhzvuJxT7VUGJw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.61.0.tgz", - "integrity": "sha512-WLEPkHbD0xObja5W4pTtxcc7CJrrZOFtOOEI7v+F5TiDW2MBWrn9dvxb+nTKb+Mx+kifAhDGC8CubAO6glXk2Q==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0", - "@types/mysql": "2.15.27" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.61.0.tgz", - "integrity": "sha512-LyEUg7bVC3lEiszz6M1D/uEv+DOtf4octn/FhkNGk0NBNwn6aB9XrnC+dpQIEcJwsQX/5MH1yrA4js8HXQNykg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0", - "@opentelemetry/sql-common": "^0.41.2" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.61.0.tgz", - "integrity": "sha512-e/zpwFbEyQFK8uINyFqbeQsA6PW5+hKI+eJj8L98lz1FnQSbRsNMz3Z8c0KYWcDqbg857DpB97s9P3lXdtwccg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.30.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-net": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-net/-/instrumentation-net-0.59.0.tgz", - "integrity": "sha512-1ndNvMch1pihIXvdM+a+zfkODAyrzVSsZhK8sDMzb/zELJpH/nPEgCN+f2hRlXsXwyZqZhHUs/IEWd56zMHxGA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-openai": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-openai/-/instrumentation-openai-0.13.0.tgz", - "integrity": "sha512-YsZ9f1GnirjpXcZe/b7/PElH7QNcCUxX1EWaojez7q3OylLIWjQgR3ezocLBoKJT0fq/77aGK3gPN4lDuSYW5Q==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "^0.215.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.36.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-oracledb": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-oracledb/-/instrumentation-oracledb-0.40.0.tgz", - "integrity": "sha512-cqLkz1jhm1wxGj3EhECF3i7dNEds2KPKek4B8phLpL2o310QV1yWcBxRz67BdCnO05DUJ17dhzKEIfRRzyJ9HQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.34.0", - "@types/oracledb": "6.5.2" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.67.0.tgz", - "integrity": "sha512-1b1o/9nelDwoE3+EucZ9eHZsdUgji799C94lX1ZPy6O0EVjdTj3HczLL6z3GqPGZHmV4OpmJjGz8kuLtuPjCGA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.34.0", - "@opentelemetry/sql-common": "^0.41.2", - "@types/pg": "8.15.6", - "@types/pg-pool": "2.0.7" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-pino": { - "version": "0.61.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.61.0.tgz", - "integrity": "sha512-QN2KqnxrXtb9uryhRC0HhKn6SVnHPVhZsC8NXaz+mu6g9smMz8DVrU79rgdTPWnciZ+RY9LJdV4Cmyw6GbXwng==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "^0.215.0", - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-redis": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.63.0.tgz", - "integrity": "sha512-MpttbfjRAN3LlgEGtDFtS0w//2QVuhBINetMcHlkLpr04fYAIzHQjCgRNPowHnY9NuZTi2huxA9OomJheR7c5A==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/redis-common": "^0.38.3", - "@opentelemetry/semantic-conventions": "^1.27.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-restify": { - "version": "0.60.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.60.0.tgz", - "integrity": "sha512-c2hhgYVmmCw54m0TxGMmsCTiWgAy2EMIGTcvMYuXfr7/ZfRuGXIJ9mVtBW5bScUIh66TkZFMaEAzuB/HL38opQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.27.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-router": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-router/-/instrumentation-router-0.59.0.tgz", - "integrity": "sha512-LgkDxMKhogJrO/mjVuW6PO9ixULprpgtqQBZ+fzg1wH+gre1MVXN5t8nrgzSnFUuS2ASz9L0gbVQXq5xJ+4BPg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.27.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-runtime-node": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-runtime-node/-/instrumentation-runtime-node-0.28.0.tgz", - "integrity": "sha512-hHpFVyourvbstONuRpt+kg8gM4YaAItic25lO+P71kfKAHEN/ig0LYqJzRuUL5lAD8KD+oB6E0yG9Ehn+uw7JQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-socket.io": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.62.0.tgz", - "integrity": "sha512-p3iH3YXOVSQ1Zl4/un8KCWuUa4ZDu1nN9y1NON5mNnt3EiHhO93nMQta051XAvHT/OIEu1piLHRq0RhMohfA1Q==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-tedious": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.34.0.tgz", - "integrity": "sha512-PRwgqERmX6AI3KqkIcZCDoYz/ZnEYMJ4Ps5kKPXdc0hs3plzWSO9OMzJy0E41mUqRJaVzWD3H0FeG1yvmaqWGQ==", + "node_modules/@opentelemetry/instrumentation-http": { + "version": "0.215.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.215.0.tgz", + "integrity": "sha512-ip9iNoRRVxDyP8LVfdqqI6OwbOwzxTl4SaP1WDKJq0sDsgpOr7rIOFj7gV8yKl4F5PdDOUYy8VqdgIOWZRlGBw==", "license": "Apache-2.0", "dependencies": { - "@opentelemetry/instrumentation": "^0.215.0", - "@opentelemetry/semantic-conventions": "^1.33.0", - "@types/tedious": "^4.0.14" + "@opentelemetry/core": "2.7.0", + "@opentelemetry/instrumentation": "0.215.0", + "@opentelemetry/semantic-conventions": "^1.29.0", + "forwarded-parse": "2.1.2" }, "engines": { "node": "^18.19.0 || >=20.6.0" @@ -3915,22 +3262,6 @@ "@opentelemetry/api": "^1.7.0" } }, - "node_modules/@opentelemetry/instrumentation-winston": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.59.0.tgz", - "integrity": "sha512-g5ca+KIganiyCsrAhjvTXgy3umWZ7dfIacFW5pfdQ41r8/ETiuApYaSe+UWIe02zST8Uofno+5GSi8G29xKahg==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api-logs": "^0.215.0", - "@opentelemetry/instrumentation": "^0.215.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, "node_modules/@opentelemetry/otlp-exporter-base": { "version": "0.215.0", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.215.0.tgz", @@ -4016,98 +3347,6 @@ "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@opentelemetry/redis-common": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.38.3.tgz", - "integrity": "sha512-VCghU1JYs/4gP6Gqf/xro9MEsZ7LrMv2uONVsaESKL38ZOB9BqnI98FfS23wjMnHlpuE+TTaWSoAVNpTwYXzjw==", - "license": "Apache-2.0", - "engines": { - "node": "^18.19.0 || >=20.6.0" - } - }, - "node_modules/@opentelemetry/resource-detector-alibaba-cloud": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.33.5.tgz", - "integrity": "sha512-KtbVu0Q+I+yg2/fL0pINxekNrejmxw9gpXB8rc3L8WAA0BXnKEp6KEe/glHyzyXOD8V2eZ+AfaoZixFp76ZJDw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/resources": "^2.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/resource-detector-aws": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-2.15.0.tgz", - "integrity": "sha512-+aiEkI+JA94XVIJtltt3XKYbLSaHRqHFdvGOwulBpfNKtEIWDEkKm3qfTl7Q0q9gY9621oXMU1sT5MM7koCnyA==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/resources": "^2.0.0", - "@opentelemetry/semantic-conventions": "^1.27.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/resource-detector-azure": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.23.0.tgz", - "integrity": "sha512-KR9z0pGjXTzZ/eFp/rnFriOZZVdmpIyXDxW3LLfTWtIh4X2bjPGWeEjVOzydSOwO21kVxtYmWbN4j4qOFxMd/w==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/resources": "^2.0.0", - "@opentelemetry/semantic-conventions": "^1.37.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/resource-detector-container": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.8.6.tgz", - "integrity": "sha512-b3/SzjmbANgZYfQn40+Mx5Bl0f4IIRTrCRSTN3FQ7j1KB8h3jl+JeJpFZZFY1OU5BtDFXI7VQ334SbKi5Z2R1A==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/resources": "^2.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/resource-detector-gcp": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.50.0.tgz", - "integrity": "sha512-ljmbqCKVrD73+rMMXF+v0FSRapdjAoq1ut8jVJcwrbDBxy47uv7TF5IjLDn3yFqHzwTIMxxxYgveI6/9HleVqw==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0", - "@opentelemetry/resources": "^2.0.0", - "gcp-metadata": "^8.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, "node_modules/@opentelemetry/resources": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.7.0.tgz", @@ -4240,21 +3479,6 @@ "node": ">=14" } }, - "node_modules/@opentelemetry/sql-common": { - "version": "0.41.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.41.2.tgz", - "integrity": "sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ==", - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "^2.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0" - } - }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", @@ -5350,12 +4574,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/aws-lambda": { - "version": "8.10.161", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.161.tgz", - "integrity": "sha512-rUYdp+MQwSFocxIOcSsYSF3YYYC/uUpMbCY/mbO21vGqfrEYvNSoPyKYDj6RhXXpPfS0KstW9RwG3qXh9sL7FQ==", - "license": "MIT" - }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -5366,15 +4584,6 @@ "@types/node": "*" } }, - "node_modules/@types/bunyan": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.11.tgz", - "integrity": "sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/caseless": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", @@ -5396,6 +4605,7 @@ "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -5596,15 +4806,6 @@ "@types/unist": "*" } }, - "node_modules/@types/memcached": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.10.tgz", - "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -5620,15 +4821,6 @@ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, - "node_modules/@types/mysql": { - "version": "2.15.27", - "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.27.tgz", - "integrity": "sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "24.9.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.2.tgz", @@ -5638,35 +4830,6 @@ "undici-types": "~7.16.0" } }, - "node_modules/@types/oracledb": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@types/oracledb/-/oracledb-6.5.2.tgz", - "integrity": "sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/pg": { - "version": "8.15.6", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.15.6.tgz", - "integrity": "sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "pg-protocol": "*", - "pg-types": "^2.2.0" - } - }, - "node_modules/@types/pg-pool": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.7.tgz", - "integrity": "sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==", - "license": "MIT", - "dependencies": { - "@types/pg": "*" - } - }, "node_modules/@types/prop-types": { "version": "15.7.4", "license": "MIT" @@ -5802,15 +4965,6 @@ "integrity": "sha512-0vQ4fz9TTM4bCdllYWEJ2JHBUXR9xqPtc70dJ7BMRDVfvZyYdrgey3nP5RRcVj+qAgnHJM8r9fvgrfnPMxdnhA==", "dev": true }, - "node_modules/@types/tedious": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", - "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", @@ -6966,15 +6120,6 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz", "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==" }, - "node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "dev": true, @@ -8016,15 +7161,6 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -9753,29 +8889,6 @@ "node": ">= 4.9.1" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -9961,18 +9074,6 @@ "node": ">= 14.17" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/forwarded": { "version": "0.2.0", "license": "MIT", @@ -10060,34 +9161,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gaxios": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.4.tgz", - "integrity": "sha512-bTIgTsM2bWn3XklZISBTQX7ZSddGW+IO3bMdGaemHZ3tbqExMENHLx6kKZ/KlejgrMtj8q7wBItt51yegqalrA==", - "license": "Apache-2.0", - "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^7.0.1", - "node-fetch": "^3.3.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/gcp-metadata": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", - "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", - "license": "Apache-2.0", - "dependencies": { - "gaxios": "^7.0.0", - "google-logging-utils": "^1.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/gemoji": { "version": "4.2.1", "license": "MIT" @@ -10263,15 +9336,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/google-logging-utils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", - "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -11731,15 +10795,6 @@ "node": ">=6" } }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, "node_modules/json-buffer": { "version": "3.0.1", "dev": true, @@ -13960,44 +13015,6 @@ "license": "MIT", "optional": true }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "deprecated": "Use your platform's native DOMException instead", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -14678,37 +13695,6 @@ "dev": true, "license": "MIT" }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "license": "ISC", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz", - "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==", - "license": "MIT" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -14811,45 +13797,6 @@ "version": "4.1.0", "license": "MIT" }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", - "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -17986,15 +16933,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/website-scraper": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/website-scraper/-/website-scraper-5.3.1.tgz", diff --git a/package.json b/package.json index 931494d0a070..c428df1c2ec0 100644 --- a/package.json +++ b/package.json @@ -177,9 +177,11 @@ "@octokit/plugin-retry": "8.0.1", "@octokit/request-error": "7.0.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/auto-instrumentations-node": "^0.73.0", "@opentelemetry/core": "^2.5.1", "@opentelemetry/exporter-trace-otlp-proto": "^0.215.0", + "@opentelemetry/instrumentation-express": "^0.63.0", + "@opentelemetry/instrumentation-http": "^0.215.0", + "@opentelemetry/instrumentation-undici": "^0.25.0", "@opentelemetry/sdk-node": "^0.215.0", "@primer/behaviors": "^1.10.2", "@primer/css": "^21.3.1", diff --git a/src/observability/lib/tracing.ts b/src/observability/lib/tracing.ts index 04cd8be9aee0..715bf835deb8 100644 --- a/src/observability/lib/tracing.ts +++ b/src/observability/lib/tracing.ts @@ -4,7 +4,13 @@ // - Conditional on OTEL_EXPORTER_OTLP_TRACES_ENDPOINT being set // - OTLP/HTTP (proto) exporter to OTel Collector mesh // - W3C Trace Context + Baggage propagation -// - Node auto-instrumentation for HTTP, Express, etc. +// - Explicit instrumentation list (HTTP, Express, Undici/fetch) instead of +// `getNodeAutoInstrumentations()`. The "auto" helper enables ~30 +// instrumentations including ones that patch Node core modules +// (`fs`, `net`, `dns`) on every server. Several of these are known to +// cause performance and listener-leak issues — OTel itself recommends +// disabling `instrumentation-fs` in production. We only have HTTP traffic +// and outbound fetch in this app, so we wire those up explicitly. // // References: // - https://thehub.github.com/epd/engineering/dev-practicals/observability/distributed-tracing/ @@ -16,7 +22,9 @@ import { W3CTraceContextPropagator, } from '@opentelemetry/core' import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto' -import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node' +import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express' +import { HttpInstrumentation } from '@opentelemetry/instrumentation-http' +import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici' import { NodeSDK } from '@opentelemetry/sdk-node' // For tracing diagnostics, uncomment these lines: @@ -27,7 +35,11 @@ if (process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) { const sdk = new NodeSDK({ serviceName: process.env.OTEL_SERVICE_NAME || 'docs-internal', traceExporter: new OTLPTraceExporter({}), - instrumentations: [getNodeAutoInstrumentations()], + instrumentations: [ + new HttpInstrumentation(), + new ExpressInstrumentation(), + new UndiciInstrumentation(), + ], textMapPropagator: new CompositePropagator({ propagators: [new W3CTraceContextPropagator(), new W3CBaggagePropagator()], }), From a25474a225745eb3894339c29eb1fb66a4607d8b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Apr 2026 17:22:04 -0700 Subject: [PATCH 02/10] Copilot for Jira enhancements (custom agents, fields, instructions, branching) (#60823) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: brontevdh <91372600+brontevdh@users.noreply.github.com> Co-authored-by: vgrltwin Co-authored-by: Vanessa --- .../integrate-cloud-agent-with-jira.md | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/integrate-cloud-agent-with-jira.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/integrate-cloud-agent-with-jira.md index 5fc8c6281c33..bc09fce9d3b8 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/integrate-cloud-agent-with-jira.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/integrate-cloud-agent-with-jira.md @@ -18,7 +18,7 @@ category: > * {% data variables.product.prodname_copilot %} uses AI. Check for mistakes. See [AUTOTITLE](/copilot/responsible-use/copilot-cloud-agent). > * You can provide feedback about the {% data variables.product.prodname_copilot %} for Jira integration in the [{% data variables.product.github %} survey](https://www.surveymonkey.com/r/CCAforJira). -The {% data variables.product.prodname_copilot %} integration in Jira allows you to invoke {% data variables.copilot.copilot_cloud_agent %} without leaving your Jira workspace. From within a Jira work item you can initiate {% data variables.copilot.copilot_cloud_agent_short %} sessions and open pull requests, using the context of the work item's title, description, labels, and comments. +The {% data variables.product.prodname_copilot %} integration in Jira allows you to invoke {% data variables.copilot.copilot_cloud_agent %} without leaving your Jira workspace. From within a Jira work item you can initiate {% data variables.copilot.copilot_cloud_agent_short %} sessions and open pull requests, using the context of the work item's title, description, labels, comments, and any Atlassian custom fields such as acceptance criteria. ## Prerequisites @@ -71,7 +71,7 @@ Once the {% data variables.product.prodname_copilot %} for Jira app has been ins To enable the {% data variables.product.prodname_copilot %} for Jira app for an organization: -1. In Jira, go to the settings page for your space. +1. In Jira, go to the settings page for your workspace. 1. Go to the applications setting page for the {% data variables.product.prodname_copilot %} app. 1. Optionally, click **Connect More {% data variables.product.github %} Organizations** to add new organizations to the list. 1. Enable the {% data variables.product.prodname_copilot_short %} app for one or more of the listed organizations. @@ -90,8 +90,6 @@ You can trigger {% data variables.copilot.copilot_cloud_agent %} in three ways: * **Mention** `@{% data variables.product.prodname_copilot %}` in a comment on a work item. * **Add {% data variables.product.prodname_copilot_short %} to a workflow transition** so it is triggered automatically when a work item moves to a specific status. See [Collaborate on work items with AI agents](https://support.atlassian.com/jira-software-cloud/docs/collaborate-on-work-items-with-ai-agents/#Add-an-agent-to-workflow-transitions) for setup instructions. -To change the model used by {% data variables.copilot.copilot_cloud_agent %} for a specific task, include the model name in your instructions to {% data variables.product.prodname_copilot_short %}. For example, you can say `@{% data variables.product.prodname_copilot %} use Claude Sonnet 4.5 to create a new API endpoint for user authentication in octo-org/octorepo`. If you do not specify a model, {% data variables.copilot.copilot_cloud_agent %} will use the default model for coding tasks, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/changing-the-ai-model). - > [!NOTE] > When you assign {% data variables.product.prodname_copilot_short %} to a Jira work item, the context the agent captures from Jira will be added to the pull request and **visible to everyone** if the repository is public. @@ -114,6 +112,26 @@ To change the model used by {% data variables.copilot.copilot_cloud_agent %} for > [!TIP] > If you have not received confirmation of triggering {% data variables.copilot.copilot_cloud_agent %} after 1 minute, refresh the Jira work item page. +## Customizing {% data variables.copilot.copilot_cloud_agent %} in Jira + +You can customize how {% data variables.copilot.copilot_cloud_agent %} works in your Jira workspace by specifying models, agents, custom instructions, and branching rules. + +### Specifying a model + +To change the model used by {% data variables.copilot.copilot_cloud_agent %} for a specific task, include the model name in your instructions to {% data variables.product.prodname_copilot_short %}. For example, you can say `@{% data variables.product.prodname_copilot %} use Claude Sonnet 4.5`. If you do not specify a model, {% data variables.copilot.copilot_cloud_agent %} will use the default model for coding tasks, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/changing-the-ai-model). + +### Specifying a custom branch + +{% data variables.copilot.copilot_cloud_agent_short_cap_c %} respects branch naming rules specified in individual Atlassian tickets. If a ticket includes specific branching conventions, {% data variables.product.prodname_copilot_short %} will read and follow them when creating pull requests, keeping your repository consistent with your existing workflow. + +### Specifying a custom agent + +You can specify a custom agent from your {% data variables.product.github %} repository directly in the Jira ticket. This allows teams to tailor {% data variables.copilot.copilot_cloud_agent_short %}'s behavior to their specific needs. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-custom-agents). + +### Using custom instructions + +You can define custom instructions at the Jira workspace level that apply every time {% data variables.copilot.copilot_cloud_agent %} is triggered. Use these instructions to specify defaults such as the target repository, default branch naming rules, preferred models, or particular agents to use. This reduces repetitive configuration and increases control over the agent's behavior. + ## Usage costs {% data variables.copilot.copilot_cloud_agent %} uses {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_copilot_short %} premium requests. From 27baf4d2f3b00350a39333fa7bb8697326502b7d Mon Sep 17 00:00:00 2001 From: bonsohi <31749534+bonsohi@users.noreply.github.com> Date: Thu, 23 Apr 2026 00:49:43 -0700 Subject: [PATCH 03/10] Fix wording and correct spellings for Known Issue RN (3.20.1) (#60914) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- data/release-notes/enterprise-server/3-20/1.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/release-notes/enterprise-server/3-20/1.yml b/data/release-notes/enterprise-server/3-20/1.yml index 3ccfa1fac402..503e642aac97 100644 --- a/data/release-notes/enterprise-server/3-20/1.yml +++ b/data/release-notes/enterprise-server/3-20/1.yml @@ -120,4 +120,4 @@ sections: - | When applying an enterprise security configuration to all repositories (for example, enabling Secret Scanning or Code Scanning across all repositories), the system immediately enqueues enablement jobs for every organization in the enterprise simultaneously. For enterprises with a large number of repositories, this can result in significant system load and potential performance degradation. If you manage a large enterprise with many organizations and repositories, we recommend applying security configurations at the organization level rather than at the enterprise level in the UI. This allows you to enable security features incrementally and monitor system performance as you roll out changes. - | - In GHES instances that have multiple git storage nodes in a voting configurations (That includes GHES Clusters and Geo Replicate HA instances) where Actions is enabled can encounter problem a upon upgrading. The 1st part actions that are shipped with the new version of GHES can not be correctly installed. This can block upgrade and in some cases leave the old versions of these actions within the instatance. + On instances with multiple Git storage nodes in a voting configuration, including cluster and geo-replication high availability topologies, upgrading may fail to correctly install Actions that ship with the new version. In some cases, previous versions of these Actions remain on the instance. To resolve this issue, run the following commands on the primary node: `ghe-config --unset 'app.actions.actions-repos-sha1sum'`, `ghe-config-apply`, and `/usr/local/share/enterprise/ghe-run-init-actions-graph`. From 55a9f96d1abccc9939d2d8c73fc0dce88aa421b8 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 23 Apr 2026 00:52:58 -0700 Subject: [PATCH 04/10] Sync secret scanning data (#60893) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../data/pattern-docs/fpt/public-docs.yml | 120 ++++++++++++++++++ .../data/pattern-docs/ghec/public-docs.yml | 120 ++++++++++++++++++ 2 files changed, 240 insertions(+) diff --git a/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml b/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml index cebf4223e855..d10a6b7ae455 100644 --- a/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml +++ b/src/secret-scanning/data/pattern-docs/fpt/public-docs.yml @@ -2242,6 +2242,116 @@ hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' base64Supported: true isduplicate: true +- provider: GitLab + supportedSecret: GitLab CI/CD Job Token + secretType: gitlab_ci_build_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Deploy Token + secretType: gitlab_deploy_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Feature Flag Client Token + secretType: gitlab_feature_flag_client_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Feed Token + secretType: gitlab_feed_token_v2 + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Incoming Mail Token + secretType: gitlab_incoming_email_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Agent for Kubernetes Token + secretType: gitlab_kubernetes_agent_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab OAuth Application Secret + secretType: gitlab_oauth_app_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Pipeline Trigger Token + secretType: gitlab_pipeline_trigger_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Runner Authentication Token + secretType: gitlab_runner_auth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Runner Registration Token + secretType: gitlab_runner_registration_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab SCIM Token + secretType: gitlab_scim_oauth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false - provider: GoCardless supportedSecret: GoCardless Live Access Token secretType: gocardless_live_access_token @@ -4356,6 +4466,16 @@ hasExtendedMetadata: false base64Supported: false isduplicate: false +- provider: Slack + supportedSecret: Slack Workflow Trigger URL + secretType: slack_workflow_trigger_url + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false - provider: Slack supportedSecret: Slack Workflow Webhook URL secretType: slack_workflow_webhook_url diff --git a/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml b/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml index cebf4223e855..d10a6b7ae455 100644 --- a/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml +++ b/src/secret-scanning/data/pattern-docs/ghec/public-docs.yml @@ -2242,6 +2242,116 @@ hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' base64Supported: true isduplicate: true +- provider: GitLab + supportedSecret: GitLab CI/CD Job Token + secretType: gitlab_ci_build_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Deploy Token + secretType: gitlab_deploy_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Feature Flag Client Token + secretType: gitlab_feature_flag_client_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Feed Token + secretType: gitlab_feed_token_v2 + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Incoming Mail Token + secretType: gitlab_incoming_email_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Agent for Kubernetes Token + secretType: gitlab_kubernetes_agent_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab OAuth Application Secret + secretType: gitlab_oauth_app_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Pipeline Trigger Token + secretType: gitlab_pipeline_trigger_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Runner Authentication Token + secretType: gitlab_runner_auth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Runner Registration Token + secretType: gitlab_runner_registration_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab SCIM Token + secretType: gitlab_scim_oauth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false - provider: GoCardless supportedSecret: GoCardless Live Access Token secretType: gocardless_live_access_token @@ -4356,6 +4466,16 @@ hasExtendedMetadata: false base64Supported: false isduplicate: false +- provider: Slack + supportedSecret: Slack Workflow Trigger URL + secretType: slack_workflow_trigger_url + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false - provider: Slack supportedSecret: Slack Workflow Webhook URL secretType: slack_workflow_webhook_url From cecafd73e293c2b630170f005d86a9fe757d1068 Mon Sep 17 00:00:00 2001 From: Rob Aiken <6567647+robaiken@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:55:00 +0100 Subject: [PATCH 05/10] Update supported versions for Poetry in Dependabot options reference (#60872) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../supply-chain-security/dependabot-options-reference.md | 2 +- data/features/dependabot-poetry-pep621.yml | 5 +++++ data/reusables/dependabot/supported-package-managers.md | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 data/features/dependabot-poetry-pep621.yml diff --git a/content/code-security/reference/supply-chain-security/dependabot-options-reference.md b/content/code-security/reference/supply-chain-security/dependabot-options-reference.md index deed161ced6c..9e6fe24b0bdd 100644 --- a/content/code-security/reference/supply-chain-security/dependabot-options-reference.md +++ b/content/code-security/reference/supply-chain-security/dependabot-options-reference.md @@ -573,7 +573,7 @@ Package manager | YAML value | Supported versions | | pip-compile | `pip` | 7.5.3 | | pipenv | `pip` | <= 2024.4.1 | | pnpm | `npm` | v7, v8
v9, v10 (version updates only) | -| poetry | `pip` | 2.2.1 | +| poetry | `pip` | v2 | | {% ifversion dependabot-pre-commit-support %} | | pre-commit | `pre-commit` | Not applicable | | {% endif %} | diff --git a/data/features/dependabot-poetry-pep621.yml b/data/features/dependabot-poetry-pep621.yml new file mode 100644 index 000000000000..33243e18ccf0 --- /dev/null +++ b/data/features/dependabot-poetry-pep621.yml @@ -0,0 +1,5 @@ +# Poetry PEP 621 project section support for Dependabot +versions: + fpt: '*' + ghec: '*' + ghes: '> 3.21' diff --git a/data/reusables/dependabot/supported-package-managers.md b/data/reusables/dependabot/supported-package-managers.md index b79806738a9d..b99fc30672cc 100644 --- a/data/reusables/dependabot/supported-package-managers.md +++ b/data/reusables/dependabot/supported-package-managers.md @@ -45,7 +45,7 @@ npm | `npm` | v7, v8, v9, v10, v11 | {% octicon "check" pipenv | `pip` | 2024.4.1 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | [pip-compile](#pip-and-pip-compile) | `pip` | 7.5.3 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | | {% ifversion dependabot-updates-pnpmv9-support %}pnpm{% else %}[pnpm](#pnpm){% endif %} | `npm` | v7, v8, v9, v10 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} {% ifversion dependabot-updates-pnpmv9-support %}{% else %}(v7 and v8 only){% endif %}| {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | -poetry | `pip` | 2.2.1 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | +[poetry](#poetry) | `pip` | v2 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | | {% ifversion dependabot-pre-commit-support %} | [pre-commit](#pre-commit) | `pre-commit` | Not applicable | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | | {% endif %} | @@ -198,7 +198,7 @@ pnpm is supported for {% data variables.product.prodname_dependabot_version_upda ### poetry -The PEP 621 `project` section isn't currently supported for `poetry`. +{% data variables.product.prodname_dependabot %} supports Poetry v2.{% ifversion dependabot-poetry-pep621 %}{% else %} The PEP 621 `project` section isn't currently supported for `poetry`.{% endif %} {% ifversion dependabot-pre-commit-support %} From e2b2f67a284a1b88a5185764b136bcb36c26659b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 09:58:54 +0100 Subject: [PATCH 06/10] Add known issue for HA GitHub Actions settings to GHES 3.18.8, 3.19.5, and 3.20.1 release notes (#60879) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: pallsama <96553709+pallsama@users.noreply.github.com> --- data/release-notes/enterprise-server/3-18/8.yml | 2 ++ data/release-notes/enterprise-server/3-19/5.yml | 2 ++ data/release-notes/enterprise-server/3-20/1.yml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/data/release-notes/enterprise-server/3-18/8.yml b/data/release-notes/enterprise-server/3-18/8.yml index 089bb149924b..1eea19f45dd9 100644 --- a/data/release-notes/enterprise-server/3-18/8.yml +++ b/data/release-notes/enterprise-server/3-18/8.yml @@ -71,6 +71,8 @@ sections: - | To improve page load performance, user profile pages display a maximum of 24 organizations. When viewing your own profile, a "View all" link provides access to the full list in organization settings. When viewing another user's profile, a count displays any additional organizations beyond the first 24. known_issues: + - | + On instances configured for high availability, you will not be able to change GitHub Actions settings through the Management Console. Other settings are not affected. [Updated: 2026-04-22] - | First time setups of GitHub Actions with OpenID Connect (OIDC) fail with an error on the `Update Servicing Resources` step. This problem does not affect instances where GitHub Actions is already enabled. diff --git a/data/release-notes/enterprise-server/3-19/5.yml b/data/release-notes/enterprise-server/3-19/5.yml index 16de337747c3..3b95aeb7eeaa 100644 --- a/data/release-notes/enterprise-server/3-19/5.yml +++ b/data/release-notes/enterprise-server/3-19/5.yml @@ -83,6 +83,8 @@ sections: - | To improve page load performance, user profile pages display a maximum of 24 organizations. When viewing your own profile, a "View all" link provides access to the full list in organization settings. When viewing another user's profile, a count displays any additional organizations beyond the first 24. known_issues: + - | + On instances configured for high availability, you will not be able to change GitHub Actions settings through the Management Console. Other settings are not affected. [Updated: 2026-04-22] - | First time setups of GitHub Actions with OpenID Connect (OIDC) fail with an error on the `Update Servicing Resources` step. This problem does not affect instances where GitHub Actions is already enabled. diff --git a/data/release-notes/enterprise-server/3-20/1.yml b/data/release-notes/enterprise-server/3-20/1.yml index 503e642aac97..2217834b2f33 100644 --- a/data/release-notes/enterprise-server/3-20/1.yml +++ b/data/release-notes/enterprise-server/3-20/1.yml @@ -83,6 +83,8 @@ sections: - | To improve page load performance, user profile pages display a maximum of 24 organizations. When viewing your own profile, a "View all" link provides access to the full list in organization settings. When viewing another users profile, a count displays any additional organizations beyond the first 24. known_issues: + - | + On instances configured for high availability, you will not be able to change GitHub Actions settings through the Management Console. Other settings are not affected. [Updated: 2026-04-22] - | First time setups of GitHub Actions with OpenID Connect (OIDC) fail with an error on the `Update Servicing Resources` step. This problem does not affect instances where GitHub Actions is already enabled. From 2bad380ef54e06f45e410e278adc94dab138a217 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 23 Apr 2026 03:10:44 -0700 Subject: [PATCH 07/10] GraphQL schema update (#60894) Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> --- src/graphql/data/fpt/schema.json | 43 +------------------------- src/graphql/data/ghec/schema.json | 43 +------------------------- src/graphql/data/ghes-3.14/schema.json | 2 +- src/graphql/data/ghes-3.15/schema.json | 2 +- src/graphql/data/ghes-3.16/schema.json | 2 +- src/graphql/data/ghes-3.17/schema.json | 2 +- src/graphql/data/ghes-3.18/schema.json | 2 +- src/graphql/data/ghes-3.19/schema.json | 2 +- src/graphql/data/ghes-3.20/schema.json | 2 +- 9 files changed, 9 insertions(+), 91 deletions(-) diff --git a/src/graphql/data/fpt/schema.json b/src/graphql/data/fpt/schema.json index b2221486749e..8028d98d0ced 100644 --- a/src/graphql/data/fpt/schema.json +++ b/src/graphql/data/fpt/schema.json @@ -1818,7 +1818,6 @@ }, { "name": "archivePullRequest", - "kind": "mutations", "id": "archivepullrequest", "href": "/graphql/reference/mutations#archivepullrequest", "description": "

Archive a pull request. Closes, locks, and marks the pull request as archived.\nOnly repository admins can archive pull requests.

", @@ -1827,7 +1826,6 @@ "name": "input", "type": "ArchivePullRequestInput!", "id": "archivepullrequestinput", - "kind": "input-objects", "href": "/graphql/reference/input-objects#archivepullrequestinput" } ], @@ -1836,7 +1834,6 @@ "name": "clientMutationId", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string", "description": "

A unique identifier for the client performing the mutation.

" }, @@ -1844,7 +1841,6 @@ "name": "pullRequest", "type": "PullRequest", "id": "pullrequest", - "kind": "objects", "href": "/graphql/reference/objects#pullrequest", "description": "

The pull request that was archived.

" } @@ -6665,7 +6661,6 @@ }, { "name": "unarchivePullRequest", - "kind": "mutations", "id": "unarchivepullrequest", "href": "/graphql/reference/mutations#unarchivepullrequest", "description": "

Unarchive a pull request. Removes the archived flag from the pull request.\nDoes not automatically reopen or unlock the pull request. Only repository\nadmins can unarchive pull requests.

", @@ -6674,7 +6669,6 @@ "name": "input", "type": "UnarchivePullRequestInput!", "id": "unarchivepullrequestinput", - "kind": "input-objects", "href": "/graphql/reference/input-objects#unarchivepullrequestinput" } ], @@ -6683,7 +6677,6 @@ "name": "clientMutationId", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string", "description": "

A unique identifier for the client performing the mutation.

" }, @@ -6691,7 +6684,6 @@ "name": "pullRequest", "type": "PullRequest", "id": "pullrequest", - "kind": "objects", "href": "/graphql/reference/objects#pullrequest", "description": "

The pull request that was unarchived.

" } @@ -28706,7 +28698,6 @@ }, { "name": "IssueFieldAddedEvent", - "kind": "objects", "id": "issuefieldaddedevent", "href": "/graphql/reference/objects#issuefieldaddedevent", "description": "

Represents aissue_field_addedevent on a given issue.

", @@ -28723,7 +28714,6 @@ "description": "

Identifies the actor who performed the event.

", "type": "Actor", "id": "actor", - "kind": "interfaces", "href": "/graphql/reference/interfaces#actor" }, { @@ -28731,7 +28721,6 @@ "description": "

The color if it is a single-select field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28739,7 +28728,6 @@ "description": "

Identifies the date and time when the object was created.

", "type": "DateTime!", "id": "datetime", - "kind": "scalars", "href": "/graphql/reference/scalars#datetime" }, { @@ -28747,7 +28735,6 @@ "description": "

The Node ID of the IssueFieldAddedEvent object.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id" }, { @@ -28755,7 +28742,6 @@ "description": "

The issue field added.

", "type": "IssueFields", "id": "issuefields", - "kind": "unions", "href": "/graphql/reference/unions#issuefields" }, { @@ -28763,14 +28749,12 @@ "description": "

The value of the added field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" } ] }, { "name": "IssueFieldChangedEvent", - "kind": "objects", "id": "issuefieldchangedevent", "href": "/graphql/reference/objects#issuefieldchangedevent", "description": "

Represents aissue_field_changedevent on a given issue.

", @@ -28787,7 +28771,6 @@ "description": "

Identifies the actor who performed the event.

", "type": "Actor", "id": "actor", - "kind": "interfaces", "href": "/graphql/reference/interfaces#actor" }, { @@ -28795,7 +28778,6 @@ "description": "

Identifies the date and time when the object was created.

", "type": "DateTime!", "id": "datetime", - "kind": "scalars", "href": "/graphql/reference/scalars#datetime" }, { @@ -28803,7 +28785,6 @@ "description": "

The Node ID of the IssueFieldChangedEvent object.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id" }, { @@ -28811,7 +28792,6 @@ "description": "

The issue field changed.

", "type": "IssueFields", "id": "issuefields", - "kind": "unions", "href": "/graphql/reference/unions#issuefields" }, { @@ -28819,7 +28799,6 @@ "description": "

The new color if it is a single-select field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28827,7 +28806,6 @@ "description": "

The new value of the field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28835,7 +28813,6 @@ "description": "

The previous color if it was a single-select field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28843,7 +28820,6 @@ "description": "

The previous value of the field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" } ] @@ -29056,7 +29032,6 @@ }, { "name": "IssueFieldRemovedEvent", - "kind": "objects", "id": "issuefieldremovedevent", "href": "/graphql/reference/objects#issuefieldremovedevent", "description": "

Represents aissue_field_removedevent on a given issue.

", @@ -29073,7 +29048,6 @@ "description": "

Identifies the actor who performed the event.

", "type": "Actor", "id": "actor", - "kind": "interfaces", "href": "/graphql/reference/interfaces#actor" }, { @@ -29081,7 +29055,6 @@ "description": "

Identifies the date and time when the object was created.

", "type": "DateTime!", "id": "datetime", - "kind": "scalars", "href": "/graphql/reference/scalars#datetime" }, { @@ -29089,7 +29062,6 @@ "description": "

The Node ID of the IssueFieldRemovedEvent object.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id" }, { @@ -29097,7 +29069,6 @@ "description": "

The issue field removed.

", "type": "IssueFields", "id": "issuefields", - "kind": "unions", "href": "/graphql/reference/unions#issuefields" } ] @@ -29286,7 +29257,6 @@ "description": "

The option's name text (alias for name, for consistency with other field value types).

", "type": "String!", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" } ] @@ -62913,7 +62883,6 @@ "type": { "name": "[SecurityAdvisoryClassification!]", "id": "securityadvisoryclassification", - "kind": "enums", "href": "/graphql/reference/enums#securityadvisoryclassification" } }, @@ -65945,7 +65914,6 @@ "description": "

The type of search that was performed for issues (lexical, semantic, or hybrid).

", "type": "IssueSearchType", "id": "issuesearchtype", - "kind": "enums", "href": "/graphql/reference/enums#issuesearchtype" }, { @@ -65953,7 +65921,6 @@ "description": "

When a semantic or hybrid search falls back to lexical, the reasons why the fallback occurred.

", "type": "[LexicalFallbackReason!]", "id": "lexicalfallbackreason", - "kind": "enums", "href": "/graphql/reference/enums#lexicalfallbackreason" }, { @@ -82067,7 +82034,6 @@ }, { "name": "IssueSearchType", - "kind": "enums", "id": "issuesearchtype", "href": "/graphql/reference/enums#issuesearchtype", "description": "

Type of issue search performed.

", @@ -82428,7 +82394,6 @@ }, { "name": "LexicalFallbackReason", - "kind": "enums", "id": "lexicalfallbackreason", "href": "/graphql/reference/enums#lexicalfallbackreason", "description": "

Reason why a semantic or hybrid issue search fell back to lexical search.

", @@ -90840,7 +90805,6 @@ }, { "name": "ArchivePullRequestInput", - "kind": "inputObjects", "id": "archivepullrequestinput", "href": "/graphql/reference/input-objects#archivepullrequestinput", "description": "

Autogenerated input type of ArchivePullRequest.

", @@ -90850,7 +90814,6 @@ "description": "

A unique identifier for the client performing the mutation.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -90858,7 +90821,6 @@ "description": "

The Node ID of the pull request to archive.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id", "isDeprecated": false } @@ -99937,7 +99899,6 @@ }, { "name": "UnarchivePullRequestInput", - "kind": "inputObjects", "id": "unarchivepullrequestinput", "href": "/graphql/reference/input-objects#unarchivepullrequestinput", "description": "

Autogenerated input type of UnarchivePullRequest.

", @@ -99947,7 +99908,6 @@ "description": "

A unique identifier for the client performing the mutation.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -99955,7 +99915,6 @@ "description": "

The Node ID of the pull request to unarchive.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id", "isDeprecated": false } @@ -103540,4 +103499,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghec/schema.json b/src/graphql/data/ghec/schema.json index b2221486749e..8028d98d0ced 100644 --- a/src/graphql/data/ghec/schema.json +++ b/src/graphql/data/ghec/schema.json @@ -1818,7 +1818,6 @@ }, { "name": "archivePullRequest", - "kind": "mutations", "id": "archivepullrequest", "href": "/graphql/reference/mutations#archivepullrequest", "description": "

Archive a pull request. Closes, locks, and marks the pull request as archived.\nOnly repository admins can archive pull requests.

", @@ -1827,7 +1826,6 @@ "name": "input", "type": "ArchivePullRequestInput!", "id": "archivepullrequestinput", - "kind": "input-objects", "href": "/graphql/reference/input-objects#archivepullrequestinput" } ], @@ -1836,7 +1834,6 @@ "name": "clientMutationId", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string", "description": "

A unique identifier for the client performing the mutation.

" }, @@ -1844,7 +1841,6 @@ "name": "pullRequest", "type": "PullRequest", "id": "pullrequest", - "kind": "objects", "href": "/graphql/reference/objects#pullrequest", "description": "

The pull request that was archived.

" } @@ -6665,7 +6661,6 @@ }, { "name": "unarchivePullRequest", - "kind": "mutations", "id": "unarchivepullrequest", "href": "/graphql/reference/mutations#unarchivepullrequest", "description": "

Unarchive a pull request. Removes the archived flag from the pull request.\nDoes not automatically reopen or unlock the pull request. Only repository\nadmins can unarchive pull requests.

", @@ -6674,7 +6669,6 @@ "name": "input", "type": "UnarchivePullRequestInput!", "id": "unarchivepullrequestinput", - "kind": "input-objects", "href": "/graphql/reference/input-objects#unarchivepullrequestinput" } ], @@ -6683,7 +6677,6 @@ "name": "clientMutationId", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string", "description": "

A unique identifier for the client performing the mutation.

" }, @@ -6691,7 +6684,6 @@ "name": "pullRequest", "type": "PullRequest", "id": "pullrequest", - "kind": "objects", "href": "/graphql/reference/objects#pullrequest", "description": "

The pull request that was unarchived.

" } @@ -28706,7 +28698,6 @@ }, { "name": "IssueFieldAddedEvent", - "kind": "objects", "id": "issuefieldaddedevent", "href": "/graphql/reference/objects#issuefieldaddedevent", "description": "

Represents aissue_field_addedevent on a given issue.

", @@ -28723,7 +28714,6 @@ "description": "

Identifies the actor who performed the event.

", "type": "Actor", "id": "actor", - "kind": "interfaces", "href": "/graphql/reference/interfaces#actor" }, { @@ -28731,7 +28721,6 @@ "description": "

The color if it is a single-select field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28739,7 +28728,6 @@ "description": "

Identifies the date and time when the object was created.

", "type": "DateTime!", "id": "datetime", - "kind": "scalars", "href": "/graphql/reference/scalars#datetime" }, { @@ -28747,7 +28735,6 @@ "description": "

The Node ID of the IssueFieldAddedEvent object.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id" }, { @@ -28755,7 +28742,6 @@ "description": "

The issue field added.

", "type": "IssueFields", "id": "issuefields", - "kind": "unions", "href": "/graphql/reference/unions#issuefields" }, { @@ -28763,14 +28749,12 @@ "description": "

The value of the added field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" } ] }, { "name": "IssueFieldChangedEvent", - "kind": "objects", "id": "issuefieldchangedevent", "href": "/graphql/reference/objects#issuefieldchangedevent", "description": "

Represents aissue_field_changedevent on a given issue.

", @@ -28787,7 +28771,6 @@ "description": "

Identifies the actor who performed the event.

", "type": "Actor", "id": "actor", - "kind": "interfaces", "href": "/graphql/reference/interfaces#actor" }, { @@ -28795,7 +28778,6 @@ "description": "

Identifies the date and time when the object was created.

", "type": "DateTime!", "id": "datetime", - "kind": "scalars", "href": "/graphql/reference/scalars#datetime" }, { @@ -28803,7 +28785,6 @@ "description": "

The Node ID of the IssueFieldChangedEvent object.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id" }, { @@ -28811,7 +28792,6 @@ "description": "

The issue field changed.

", "type": "IssueFields", "id": "issuefields", - "kind": "unions", "href": "/graphql/reference/unions#issuefields" }, { @@ -28819,7 +28799,6 @@ "description": "

The new color if it is a single-select field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28827,7 +28806,6 @@ "description": "

The new value of the field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28835,7 +28813,6 @@ "description": "

The previous color if it was a single-select field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -28843,7 +28820,6 @@ "description": "

The previous value of the field.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" } ] @@ -29056,7 +29032,6 @@ }, { "name": "IssueFieldRemovedEvent", - "kind": "objects", "id": "issuefieldremovedevent", "href": "/graphql/reference/objects#issuefieldremovedevent", "description": "

Represents aissue_field_removedevent on a given issue.

", @@ -29073,7 +29048,6 @@ "description": "

Identifies the actor who performed the event.

", "type": "Actor", "id": "actor", - "kind": "interfaces", "href": "/graphql/reference/interfaces#actor" }, { @@ -29081,7 +29055,6 @@ "description": "

Identifies the date and time when the object was created.

", "type": "DateTime!", "id": "datetime", - "kind": "scalars", "href": "/graphql/reference/scalars#datetime" }, { @@ -29089,7 +29062,6 @@ "description": "

The Node ID of the IssueFieldRemovedEvent object.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id" }, { @@ -29097,7 +29069,6 @@ "description": "

The issue field removed.

", "type": "IssueFields", "id": "issuefields", - "kind": "unions", "href": "/graphql/reference/unions#issuefields" } ] @@ -29286,7 +29257,6 @@ "description": "

The option's name text (alias for name, for consistency with other field value types).

", "type": "String!", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" } ] @@ -62913,7 +62883,6 @@ "type": { "name": "[SecurityAdvisoryClassification!]", "id": "securityadvisoryclassification", - "kind": "enums", "href": "/graphql/reference/enums#securityadvisoryclassification" } }, @@ -65945,7 +65914,6 @@ "description": "

The type of search that was performed for issues (lexical, semantic, or hybrid).

", "type": "IssueSearchType", "id": "issuesearchtype", - "kind": "enums", "href": "/graphql/reference/enums#issuesearchtype" }, { @@ -65953,7 +65921,6 @@ "description": "

When a semantic or hybrid search falls back to lexical, the reasons why the fallback occurred.

", "type": "[LexicalFallbackReason!]", "id": "lexicalfallbackreason", - "kind": "enums", "href": "/graphql/reference/enums#lexicalfallbackreason" }, { @@ -82067,7 +82034,6 @@ }, { "name": "IssueSearchType", - "kind": "enums", "id": "issuesearchtype", "href": "/graphql/reference/enums#issuesearchtype", "description": "

Type of issue search performed.

", @@ -82428,7 +82394,6 @@ }, { "name": "LexicalFallbackReason", - "kind": "enums", "id": "lexicalfallbackreason", "href": "/graphql/reference/enums#lexicalfallbackreason", "description": "

Reason why a semantic or hybrid issue search fell back to lexical search.

", @@ -90840,7 +90805,6 @@ }, { "name": "ArchivePullRequestInput", - "kind": "inputObjects", "id": "archivepullrequestinput", "href": "/graphql/reference/input-objects#archivepullrequestinput", "description": "

Autogenerated input type of ArchivePullRequest.

", @@ -90850,7 +90814,6 @@ "description": "

A unique identifier for the client performing the mutation.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -90858,7 +90821,6 @@ "description": "

The Node ID of the pull request to archive.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id", "isDeprecated": false } @@ -99937,7 +99899,6 @@ }, { "name": "UnarchivePullRequestInput", - "kind": "inputObjects", "id": "unarchivepullrequestinput", "href": "/graphql/reference/input-objects#unarchivepullrequestinput", "description": "

Autogenerated input type of UnarchivePullRequest.

", @@ -99947,7 +99908,6 @@ "description": "

A unique identifier for the client performing the mutation.

", "type": "String", "id": "string", - "kind": "scalars", "href": "/graphql/reference/scalars#string" }, { @@ -99955,7 +99915,6 @@ "description": "

The Node ID of the pull request to unarchive.

", "type": "ID!", "id": "id", - "kind": "scalars", "href": "/graphql/reference/scalars#id", "isDeprecated": false } @@ -103540,4 +103499,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghes-3.14/schema.json b/src/graphql/data/ghes-3.14/schema.json index d64190a20949..78672426d71e 100644 --- a/src/graphql/data/ghes-3.14/schema.json +++ b/src/graphql/data/ghes-3.14/schema.json @@ -84715,4 +84715,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghes-3.15/schema.json b/src/graphql/data/ghes-3.15/schema.json index 5525575c4345..6f5581cd60eb 100644 --- a/src/graphql/data/ghes-3.15/schema.json +++ b/src/graphql/data/ghes-3.15/schema.json @@ -86052,4 +86052,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghes-3.16/schema.json b/src/graphql/data/ghes-3.16/schema.json index a37261e4fba2..8835cb7ab372 100644 --- a/src/graphql/data/ghes-3.16/schema.json +++ b/src/graphql/data/ghes-3.16/schema.json @@ -86858,4 +86858,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghes-3.17/schema.json b/src/graphql/data/ghes-3.17/schema.json index 1a0ce47b4981..f56abd6b8615 100644 --- a/src/graphql/data/ghes-3.17/schema.json +++ b/src/graphql/data/ghes-3.17/schema.json @@ -88429,4 +88429,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghes-3.18/schema.json b/src/graphql/data/ghes-3.18/schema.json index c76572a1f2da..585287493bde 100644 --- a/src/graphql/data/ghes-3.18/schema.json +++ b/src/graphql/data/ghes-3.18/schema.json @@ -91341,4 +91341,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghes-3.19/schema.json b/src/graphql/data/ghes-3.19/schema.json index 88f2060003e0..4b5e7c972bca 100644 --- a/src/graphql/data/ghes-3.19/schema.json +++ b/src/graphql/data/ghes-3.19/schema.json @@ -92034,4 +92034,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file diff --git a/src/graphql/data/ghes-3.20/schema.json b/src/graphql/data/ghes-3.20/schema.json index 13c86475522e..62ca4358cfa7 100644 --- a/src/graphql/data/ghes-3.20/schema.json +++ b/src/graphql/data/ghes-3.20/schema.json @@ -93637,4 +93637,4 @@ "description": "

A valid x509 certificate string.

" } ] -} +} \ No newline at end of file From 4e43df7b439dd9c5e63d610bd30ec1bd96eba23c Mon Sep 17 00:00:00 2001 From: Felix Guntrip Date: Thu, 23 Apr 2026 13:08:10 +0100 Subject: [PATCH 08/10] Remove a payment method (#60127) --- .../how-tos/set-up-payment/manage-payment-info.md | 2 +- data/reusables/billing/manage-payment-info.md | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/content/billing/how-tos/set-up-payment/manage-payment-info.md b/content/billing/how-tos/set-up-payment/manage-payment-info.md index a569454ad674..2db5d355894a 100644 --- a/content/billing/how-tos/set-up-payment/manage-payment-info.md +++ b/content/billing/how-tos/set-up-payment/manage-payment-info.md @@ -1,6 +1,6 @@ --- title: Managing your payment and billing information -intro: 'Learn how to view and manage your payment information and billing contacts using the new billing platform.' +intro: 'Learn how to view, modify, and remove your payment information and billing contacts using the new billing platform.' versions: feature: enhanced-billing-platform redirect_from: diff --git a/data/reusables/billing/manage-payment-info.md b/data/reusables/billing/manage-payment-info.md index 08e0d3cfb7aa..029c5ed4f707 100644 --- a/data/reusables/billing/manage-payment-info.md +++ b/data/reusables/billing/manage-payment-info.md @@ -8,9 +8,13 @@ 1. From the list of "Billing & licensing" pages, click **Payment information** to display full details of your payment method. -1. To edit your payment method: +1. To edit or remove your payment method: - * **Bank card or PayPal**: In "Payment method", click **Edit** to update your payment information. + * **Bank card or PayPal**: In "Payment method", click **Edit** to update your payment information or click **Remove** to remove your payment information. * **Azure subscription**: Under "Azure subscription", click {% octicon "pencil" aria-label="Edit Azure Subscription" %} to edit your subscription or {% octicon "trash" aria-label="Delete Azure Subscription" %} to remove your subscription. See [AUTOTITLE](/billing/how-tos/set-up-payment/connect-azure-sub). ->[!NOTE] You may see an authorization hold on your provided payment method once it's updated or after accruing significant usage of metered services. Authorization holds are temporary and are released as quickly as possible. +>[!NOTE] +> * You may see an authorization hold on your provided payment method once it's updated or after accruing significant usage of metered services. Authorization holds are temporary and are released as quickly as possible. +> * If you have a paid subscription and remove your payment method, your subscription will automatically cancel on your next renewal date. +> * If you are currently on an active paid trial, you will not be able to remove your payment method. +> * To remove a payment method, you must have a balance of zero, and no billable metered usage in the current month, or the previous month if has yet to be paid. From 6f64ec1095cf61ff2e067c930e4fcebe485017e2 Mon Sep 17 00:00:00 2001 From: Felix Guntrip Date: Thu, 23 Apr 2026 13:09:06 +0100 Subject: [PATCH 09/10] Update hero image in ADO migration index (#60890) --- content/migrations/ado/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/migrations/ado/index.md b/content/migrations/ado/index.md index e3493bc004bf..80bb113c4f30 100644 --- a/content/migrations/ado/index.md +++ b/content/migrations/ado/index.md @@ -20,7 +20,7 @@ redirect_from: introLinks: ado_key_differences: /migrations/ado/key-differences-between-azure-devops-and-github contentType: tutorials -heroImage: /assets/images/banner-images/hero-3 +heroImage: /assets/images/banner-images/hero-2 sidebarLink: text: Get started href: /migrations/ado From 10bafe21e2275cdcb8764a27183e3c3e38b49aa7 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 23 Apr 2026 06:30:23 -0700 Subject: [PATCH 10/10] Fix: version-guard custom-properties AUTOTITLE link in data-not-migrated reusable (#60895) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Kevin Heis Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Laura Coursen --- data/reusables/enterprise-migration-tool/data-not-migrated.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/enterprise-migration-tool/data-not-migrated.md b/data/reusables/enterprise-migration-tool/data-not-migrated.md index be545598ef15..848940d3725d 100644 --- a/data/reusables/enterprise-migration-tool/data-not-migrated.md +++ b/data/reusables/enterprise-migration-tool/data-not-migrated.md @@ -19,7 +19,7 @@ * Remediation states of {% data variables.product.prodname_secret_scanning %} results * Repositories owned by user accounts * Repository activity feed -* Repository properties and custom properties (see [AUTOTITLE](/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/custom-properties)) +* Repository properties and custom properties (see [AUTOTITLE](/enterprise-cloud@latest/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/custom-properties)) * Repository stars * Repository watchers * Rulesets