dd-trace 5.84.0 → 5.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ci/cypress/polyfills.js +1 -1
- package/ci/init.js +5 -5
- package/ext/exporters.js +1 -1
- package/ext/formats.js +1 -1
- package/ext/index.js +1 -1
- package/ext/kinds.js +1 -1
- package/ext/priority.js +1 -1
- package/ext/scopes.js +1 -1
- package/ext/tags.js +1 -1
- package/ext/types.js +1 -1
- package/index.d.ts +76 -23
- package/initialize.mjs +47 -31
- package/loader-hook.mjs +35 -22
- package/package.json +34 -31
- package/packages/datadog-code-origin/index.js +12 -10
- package/packages/datadog-core/src/utils/src/pick.js +2 -2
- package/packages/datadog-esbuild/index.js +75 -79
- package/packages/datadog-esbuild/src/log.js +32 -0
- package/packages/datadog-esbuild/src/utils.js +12 -8
- package/packages/datadog-instrumentations/src/aerospike.js +3 -3
- package/packages/datadog-instrumentations/src/ai.js +5 -5
- package/packages/datadog-instrumentations/src/amqp10.js +1 -1
- package/packages/datadog-instrumentations/src/amqplib.js +1 -1
- package/packages/datadog-instrumentations/src/anthropic.js +3 -3
- package/packages/datadog-instrumentations/src/apollo-server.js +4 -4
- package/packages/datadog-instrumentations/src/apollo.js +2 -2
- package/packages/datadog-instrumentations/src/avsc.js +1 -1
- package/packages/datadog-instrumentations/src/aws-sdk.js +4 -4
- package/packages/datadog-instrumentations/src/azure-event-hubs.js +2 -2
- package/packages/datadog-instrumentations/src/azure-functions.js +1 -1
- package/packages/datadog-instrumentations/src/azure-service-bus.js +1 -1
- package/packages/datadog-instrumentations/src/body-parser.js +2 -2
- package/packages/datadog-instrumentations/src/bunyan.js +1 -1
- package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
- package/packages/datadog-instrumentations/src/child_process.js +7 -7
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +17 -16
- package/packages/datadog-instrumentations/src/cookie-parser.js +1 -1
- package/packages/datadog-instrumentations/src/couchbase.js +8 -6
- package/packages/datadog-instrumentations/src/crypto.js +1 -1
- package/packages/datadog-instrumentations/src/cucumber.js +19 -19
- package/packages/datadog-instrumentations/src/cypress.js +1 -1
- package/packages/datadog-instrumentations/src/dns.js +2 -2
- package/packages/datadog-instrumentations/src/elasticsearch.js +2 -2
- package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +2 -2
- package/packages/datadog-instrumentations/src/express-session.js +1 -1
- package/packages/datadog-instrumentations/src/express.js +4 -4
- package/packages/datadog-instrumentations/src/fastify.js +1 -1
- package/packages/datadog-instrumentations/src/fetch.js +2 -2
- package/packages/datadog-instrumentations/src/fs.js +7 -7
- package/packages/datadog-instrumentations/src/generic-pool.js +2 -2
- package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +8 -8
- package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +4 -4
- package/packages/datadog-instrumentations/src/google-genai.js +1 -1
- package/packages/datadog-instrumentations/src/graphql.js +10 -10
- package/packages/datadog-instrumentations/src/grpc/client.js +9 -13
- package/packages/datadog-instrumentations/src/grpc/types.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/extract-package-and-module-path.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/register.js +7 -7
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langchain.js +55 -55
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +7 -7
- package/packages/datadog-instrumentations/src/helpers/shared-utils.js +1 -1
- package/packages/datadog-instrumentations/src/hono.js +6 -6
- package/packages/datadog-instrumentations/src/http/client.js +1 -1
- package/packages/datadog-instrumentations/src/http/server.js +4 -4
- package/packages/datadog-instrumentations/src/http2/server.js +1 -1
- package/packages/datadog-instrumentations/src/ioredis.js +1 -1
- package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
- package/packages/datadog-instrumentations/src/jest.js +162 -57
- package/packages/datadog-instrumentations/src/kafkajs.js +9 -8
- package/packages/datadog-instrumentations/src/knex.js +2 -2
- package/packages/datadog-instrumentations/src/koa.js +3 -1
- package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
- package/packages/datadog-instrumentations/src/light-my-request.js +1 -1
- package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
- package/packages/datadog-instrumentations/src/mariadb.js +1 -1
- package/packages/datadog-instrumentations/src/memcached.js +1 -1
- package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
- package/packages/datadog-instrumentations/src/mocha/main.js +24 -24
- package/packages/datadog-instrumentations/src/mocha/utils.js +15 -11
- package/packages/datadog-instrumentations/src/mocha/worker.js +4 -4
- package/packages/datadog-instrumentations/src/moleculer/server.js +1 -1
- package/packages/datadog-instrumentations/src/mongodb-core.js +3 -3
- package/packages/datadog-instrumentations/src/mongodb.js +7 -7
- package/packages/datadog-instrumentations/src/mongoose.js +10 -10
- package/packages/datadog-instrumentations/src/mquery.js +6 -6
- package/packages/datadog-instrumentations/src/multer.js +1 -1
- package/packages/datadog-instrumentations/src/mysql.js +1 -1
- package/packages/datadog-instrumentations/src/net.js +6 -6
- package/packages/datadog-instrumentations/src/next.js +6 -6
- package/packages/datadog-instrumentations/src/nyc.js +34 -2
- package/packages/datadog-instrumentations/src/openai.js +24 -24
- package/packages/datadog-instrumentations/src/oracledb.js +2 -2
- package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
- package/packages/datadog-instrumentations/src/passport-http.js +1 -1
- package/packages/datadog-instrumentations/src/passport-local.js +1 -1
- package/packages/datadog-instrumentations/src/passport-utils.js +1 -1
- package/packages/datadog-instrumentations/src/passport.js +1 -1
- package/packages/datadog-instrumentations/src/pg.js +3 -3
- package/packages/datadog-instrumentations/src/pino.js +2 -2
- package/packages/datadog-instrumentations/src/playwright.js +59 -59
- package/packages/datadog-instrumentations/src/prisma.js +24 -78
- package/packages/datadog-instrumentations/src/promise-js.js +1 -1
- package/packages/datadog-instrumentations/src/promise.js +1 -1
- package/packages/datadog-instrumentations/src/protobufjs.js +6 -6
- package/packages/datadog-instrumentations/src/q.js +2 -2
- package/packages/datadog-instrumentations/src/redis.js +2 -2
- package/packages/datadog-instrumentations/src/rhea.js +5 -5
- package/packages/datadog-instrumentations/src/router.js +8 -8
- package/packages/datadog-instrumentations/src/selenium.js +3 -3
- package/packages/datadog-instrumentations/src/sequelize.js +1 -1
- package/packages/datadog-instrumentations/src/sharedb.js +2 -2
- package/packages/datadog-instrumentations/src/tedious.js +1 -1
- package/packages/datadog-instrumentations/src/undici.js +2 -2
- package/packages/datadog-instrumentations/src/url.js +5 -5
- package/packages/datadog-instrumentations/src/vitest.js +56 -45
- package/packages/datadog-instrumentations/src/when.js +1 -1
- package/packages/datadog-instrumentations/src/winston.js +1 -1
- package/packages/datadog-instrumentations/src/ws.js +128 -41
- package/packages/datadog-plugin-aerospike/src/index.js +4 -4
- package/packages/datadog-plugin-ai/src/index.js +1 -1
- package/packages/datadog-plugin-ai/src/tracing.js +2 -2
- package/packages/datadog-plugin-ai/src/utils.js +1 -1
- package/packages/datadog-plugin-amqp10/src/consumer.js +2 -2
- package/packages/datadog-plugin-amqp10/src/index.js +1 -1
- package/packages/datadog-plugin-amqp10/src/producer.js +2 -2
- package/packages/datadog-plugin-amqplib/src/client.js +2 -2
- package/packages/datadog-plugin-amqplib/src/consumer.js +2 -2
- package/packages/datadog-plugin-amqplib/src/index.js +1 -1
- package/packages/datadog-plugin-amqplib/src/producer.js +2 -2
- package/packages/datadog-plugin-amqplib/src/util.js +1 -1
- package/packages/datadog-plugin-anthropic/src/index.js +1 -1
- package/packages/datadog-plugin-anthropic/src/tracing.js +2 -2
- package/packages/datadog-plugin-apollo/src/gateway/fetch.js +1 -1
- package/packages/datadog-plugin-apollo/src/gateway/index.js +1 -1
- package/packages/datadog-plugin-apollo/src/gateway/request.js +5 -5
- package/packages/datadog-plugin-apollo/src/index.js +1 -1
- package/packages/datadog-plugin-avsc/src/schema_iterator.js +3 -3
- package/packages/datadog-plugin-aws-sdk/src/base.js +11 -10
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +24 -24
- package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +6 -6
- package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +3 -3
- package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +5 -5
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +12 -12
- package/packages/datadog-plugin-aws-sdk/src/util.js +1 -1
- package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
- package/packages/datadog-plugin-azure-event-hubs/src/producer.js +3 -3
- package/packages/datadog-plugin-azure-functions/src/index.js +11 -10
- package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
- package/packages/datadog-plugin-azure-service-bus/src/producer.js +3 -3
- package/packages/datadog-plugin-bullmq/src/consumer.js +2 -2
- package/packages/datadog-plugin-bullmq/src/index.js +1 -1
- package/packages/datadog-plugin-bullmq/src/producer.js +11 -11
- package/packages/datadog-plugin-cassandra-driver/src/index.js +2 -2
- package/packages/datadog-plugin-child_process/src/index.js +2 -2
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +5 -5
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
- package/packages/datadog-plugin-couchbase/src/index.js +3 -3
- package/packages/datadog-plugin-cucumber/src/index.js +14 -14
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +68 -55
- package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
- package/packages/datadog-plugin-cypress/src/support.js +56 -9
- package/packages/datadog-plugin-dd-trace-api/src/index.js +1 -1
- package/packages/datadog-plugin-dns/src/index.js +1 -1
- package/packages/datadog-plugin-dns/src/lookup.js +2 -2
- package/packages/datadog-plugin-dns/src/lookup_service.js +3 -3
- package/packages/datadog-plugin-dns/src/resolve.js +2 -2
- package/packages/datadog-plugin-dns/src/reverse.js +2 -2
- package/packages/datadog-plugin-elasticsearch/src/index.js +2 -2
- package/packages/datadog-plugin-express/src/index.js +1 -1
- package/packages/datadog-plugin-fastify/src/index.js +1 -1
- package/packages/datadog-plugin-fs/src/index.js +2 -2
- package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +2 -2
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +8 -6
- package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -1
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +11 -10
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +6 -6
- package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
- package/packages/datadog-plugin-google-cloud-vertexai/src/tracing.js +2 -2
- package/packages/datadog-plugin-google-cloud-vertexai/src/utils.js +1 -1
- package/packages/datadog-plugin-google-genai/src/index.js +1 -1
- package/packages/datadog-plugin-google-genai/src/tracing.js +2 -2
- package/packages/datadog-plugin-graphql/src/execute.js +2 -2
- package/packages/datadog-plugin-graphql/src/index.js +2 -2
- package/packages/datadog-plugin-graphql/src/parse.js +1 -1
- package/packages/datadog-plugin-graphql/src/resolve.js +6 -6
- package/packages/datadog-plugin-graphql/src/utils.js +1 -1
- package/packages/datadog-plugin-graphql/src/validate.js +2 -2
- package/packages/datadog-plugin-grpc/src/client.js +3 -3
- package/packages/datadog-plugin-grpc/src/index.js +1 -1
- package/packages/datadog-plugin-grpc/src/server.js +3 -3
- package/packages/datadog-plugin-grpc/src/util.js +2 -2
- package/packages/datadog-plugin-http/src/client.js +10 -10
- package/packages/datadog-plugin-http/src/index.js +1 -1
- package/packages/datadog-plugin-http2/src/client.js +6 -6
- package/packages/datadog-plugin-http2/src/index.js +1 -1
- package/packages/datadog-plugin-http2/src/server.js +1 -1
- package/packages/datadog-plugin-jest/src/index.js +39 -22
- package/packages/datadog-plugin-jest/src/util.js +1 -1
- package/packages/datadog-plugin-kafkajs/src/consumer.js +5 -5
- package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
- package/packages/datadog-plugin-kafkajs/src/producer.js +5 -5
- package/packages/datadog-plugin-kafkajs/src/utils.js +1 -1
- package/packages/datadog-plugin-langchain/src/tokens.js +2 -2
- package/packages/datadog-plugin-langchain/src/tracing.js +4 -4
- package/packages/datadog-plugin-memcached/src/index.js +2 -2
- package/packages/datadog-plugin-mocha/src/index.js +12 -12
- package/packages/datadog-plugin-moleculer/src/client.js +1 -1
- package/packages/datadog-plugin-moleculer/src/index.js +1 -1
- package/packages/datadog-plugin-moleculer/src/server.js +2 -2
- package/packages/datadog-plugin-moleculer/src/util.js +1 -1
- package/packages/datadog-plugin-mongodb-core/src/index.js +5 -5
- package/packages/datadog-plugin-mysql/src/index.js +2 -2
- package/packages/datadog-plugin-net/src/ipc.js +2 -2
- package/packages/datadog-plugin-net/src/tcp.js +4 -4
- package/packages/datadog-plugin-next/src/index.js +4 -4
- package/packages/datadog-plugin-nyc/src/index.js +60 -0
- package/packages/datadog-plugin-openai/src/index.js +1 -1
- package/packages/datadog-plugin-openai/src/services.js +3 -3
- package/packages/datadog-plugin-openai/src/stream-helpers.js +1 -1
- package/packages/datadog-plugin-openai/src/tracing.js +10 -10
- package/packages/datadog-plugin-oracledb/src/connection-parser.js +1 -1
- package/packages/datadog-plugin-oracledb/src/index.js +1 -1
- package/packages/datadog-plugin-pg/src/index.js +2 -2
- package/packages/datadog-plugin-playwright/src/index.js +19 -19
- package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +95 -0
- package/packages/datadog-plugin-prisma/src/index.js +129 -10
- package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +3 -3
- package/packages/datadog-plugin-redis/src/index.js +2 -2
- package/packages/datadog-plugin-restify/src/index.js +1 -1
- package/packages/datadog-plugin-rhea/src/consumer.js +2 -2
- package/packages/datadog-plugin-rhea/src/index.js +1 -1
- package/packages/datadog-plugin-rhea/src/producer.js +2 -2
- package/packages/datadog-plugin-router/src/index.js +3 -3
- package/packages/datadog-plugin-selenium/src/index.js +2 -2
- package/packages/datadog-plugin-sharedb/src/index.js +2 -2
- package/packages/datadog-plugin-tedious/src/index.js +2 -2
- package/packages/datadog-plugin-undici/src/index.js +5 -5
- package/packages/datadog-plugin-vitest/src/index.js +39 -18
- package/packages/datadog-plugin-ws/src/close.js +10 -11
- package/packages/datadog-plugin-ws/src/index.js +1 -1
- package/packages/datadog-plugin-ws/src/producer.js +8 -9
- package/packages/datadog-plugin-ws/src/receiver.js +8 -9
- package/packages/datadog-plugin-ws/src/server.js +17 -12
- package/packages/datadog-plugin-ws/src/util.js +48 -16
- package/packages/datadog-shimmer/src/shimmer.js +3 -3
- package/packages/dd-trace/index.js +2 -2
- package/packages/dd-trace/src/agent/info.js +2 -2
- package/packages/dd-trace/src/agent/url.js +1 -1
- package/packages/dd-trace/src/aiguard/client.js +3 -3
- package/packages/dd-trace/src/aiguard/sdk.js +6 -6
- package/packages/dd-trace/src/aiguard/tags.js +1 -1
- package/packages/dd-trace/src/analytics_sampler.js +1 -1
- package/packages/dd-trace/src/appsec/activation.js +1 -1
- package/packages/dd-trace/src/appsec/addresses.js +1 -1
- package/packages/dd-trace/src/appsec/api_security_sampler.js +1 -1
- package/packages/dd-trace/src/appsec/blocked_templates.js +1 -1
- package/packages/dd-trace/src/appsec/blocking.js +5 -5
- package/packages/dd-trace/src/appsec/channels.js +1 -1
- package/packages/dd-trace/src/appsec/graphql.js +13 -13
- package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +6 -5
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-rule-type.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +148 -148
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +148 -148
- package/packages/dd-trace/src/appsec/iast/analyzers/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/missing-header-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +7 -8
- package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +3 -3
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +2 -2
- package/packages/dd-trace/src/appsec/iast/context/context-plugin.js +3 -3
- package/packages/dd-trace/src/appsec/iast/iast-context.js +6 -3
- package/packages/dd-trace/src/appsec/iast/iast-plugin.js +17 -9
- package/packages/dd-trace/src/appsec/iast/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/overhead-controller.js +9 -9
- package/packages/dd-trace/src/appsec/iast/path-line.js +6 -6
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +11 -11
- package/packages/dd-trace/src/appsec/iast/security-controls/parser.js +49 -17
- package/packages/dd-trace/src/appsec/iast/tags.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/constants.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/filter.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +3 -6
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +5 -5
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +4 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +5 -5
- package/packages/dd-trace/src/appsec/iast/taint-tracking/secure-marks.js +6 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +8 -8
- package/packages/dd-trace/src/appsec/iast/telemetry/iast-metric.js +4 -4
- package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +2 -2
- package/packages/dd-trace/src/appsec/iast/telemetry/span-tags.js +6 -6
- package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +2 -2
- package/packages/dd-trace/src/appsec/iast/utils.js +3 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/constants.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/hardcoded-password-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +6 -6
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/tainted-range-based-sensitive-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +8 -8
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +12 -11
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +5 -5
- package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -4
- package/packages/dd-trace/src/appsec/index.js +20 -22
- package/packages/dd-trace/src/appsec/rasp/command_injection.js +3 -3
- package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +4 -4
- package/packages/dd-trace/src/appsec/rasp/index.js +2 -2
- package/packages/dd-trace/src/appsec/rasp/lfi.js +5 -5
- package/packages/dd-trace/src/appsec/rasp/sql_injection.js +2 -2
- package/packages/dd-trace/src/appsec/rasp/ssrf.js +1 -1
- package/packages/dd-trace/src/appsec/rasp/utils.js +4 -4
- package/packages/dd-trace/src/appsec/rc-products.js +1 -1
- package/packages/dd-trace/src/appsec/remote_config.js +3 -3
- package/packages/dd-trace/src/appsec/reporter.js +11 -11
- package/packages/dd-trace/src/appsec/rule_manager.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/set_user.js +2 -2
- package/packages/dd-trace/src/appsec/sdk/track_event.js +7 -7
- package/packages/dd-trace/src/appsec/sdk/user_blocking.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/utils.js +1 -1
- package/packages/dd-trace/src/appsec/stack_trace.js +5 -5
- package/packages/dd-trace/src/appsec/telemetry/common.js +3 -3
- package/packages/dd-trace/src/appsec/telemetry/index.js +5 -5
- package/packages/dd-trace/src/appsec/telemetry/rasp.js +3 -3
- package/packages/dd-trace/src/appsec/telemetry/user.js +4 -4
- package/packages/dd-trace/src/appsec/telemetry/waf.js +3 -3
- package/packages/dd-trace/src/appsec/user_tracking.js +7 -7
- package/packages/dd-trace/src/appsec/waf/diagnostics.js +2 -2
- package/packages/dd-trace/src/appsec/waf/index.js +1 -1
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +2 -2
- package/packages/dd-trace/src/azure_metadata.js +16 -9
- package/packages/dd-trace/src/baggage.js +1 -1
- package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +82 -0
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +5 -5
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +9 -9
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +8 -8
- package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +8 -7
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +4 -3
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +5 -3
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -0
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +4 -3
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -11
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +22 -22
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +8 -8
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +3 -3
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +17 -12
- package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +92 -0
- package/packages/dd-trace/src/ci-visibility/telemetry.js +2 -2
- package/packages/dd-trace/src/ci-visibility/test-api-manual/test-api-manual-plugin.js +1 -1
- package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +6 -6
- package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +61 -0
- package/packages/dd-trace/src/config/defaults.js +1 -1
- package/packages/dd-trace/src/config/git_properties.js +1 -1
- package/packages/dd-trace/src/config/helper.js +2 -2
- package/packages/dd-trace/src/config/index.js +612 -622
- package/packages/dd-trace/src/config/remote_config.js +1 -1
- package/packages/dd-trace/src/config/stable.js +2 -2
- package/packages/dd-trace/src/config/supported-configurations.json +1 -0
- package/packages/dd-trace/src/constants.js +3 -3
- package/packages/dd-trace/src/crashtracking/crashtracker.js +6 -6
- package/packages/dd-trace/src/datastreams/checkpointer.js +1 -1
- package/packages/dd-trace/src/datastreams/context.js +1 -1
- package/packages/dd-trace/src/datastreams/encoding.js +1 -1
- package/packages/dd-trace/src/datastreams/fnv.js +1 -1
- package/packages/dd-trace/src/datastreams/index.js +8 -8
- package/packages/dd-trace/src/datastreams/pathway.js +5 -3
- package/packages/dd-trace/src/datastreams/processor.js +14 -12
- package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +27 -25
- package/packages/dd-trace/src/datastreams/schemas/schema_sampler.js +1 -1
- package/packages/dd-trace/src/datastreams/size.js +3 -3
- package/packages/dd-trace/src/datastreams/writer.js +3 -3
- package/packages/dd-trace/src/debugger/config.js +2 -1
- package/packages/dd-trace/src/debugger/constants.js +7 -0
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +14 -10
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/config.js +4 -5
- package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/index.js +32 -25
- package/packages/dd-trace/src/debugger/devtools_client/inspector_promises_polyfill.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/log.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/send.js +54 -10
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +94 -37
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +4 -4
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +7 -7
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +10 -1
- package/packages/dd-trace/src/debugger/devtools_client/state.js +65 -8
- package/packages/dd-trace/src/debugger/devtools_client/status.js +9 -8
- package/packages/dd-trace/src/debugger/index.js +95 -37
- package/packages/dd-trace/src/dogstatsd.js +14 -9
- package/packages/dd-trace/src/encode/0.4.js +7 -6
- package/packages/dd-trace/src/encode/agentless-ci-visibility.js +8 -8
- package/packages/dd-trace/src/encode/coverage-ci-visibility.js +3 -3
- package/packages/dd-trace/src/encode/span-stats.js +2 -2
- package/packages/dd-trace/src/encode/tags-processors.js +1 -1
- package/packages/dd-trace/src/exporters/agent/index.js +1 -1
- package/packages/dd-trace/src/exporters/agent/writer.js +2 -2
- package/packages/dd-trace/src/exporters/common/agents.js +1 -1
- package/packages/dd-trace/src/exporters/common/buffering-exporter.js +2 -2
- package/packages/dd-trace/src/exporters/common/docker.js +11 -7
- package/packages/dd-trace/src/exporters/common/request.js +28 -8
- package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +2 -2
- package/packages/dd-trace/src/exporters/common/writer.js +2 -0
- package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
- package/packages/dd-trace/src/exporters/span-stats/writer.js +3 -3
- package/packages/dd-trace/src/external-logger/src/index.js +4 -4
- package/packages/dd-trace/src/flare/index.js +3 -3
- package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
- package/packages/dd-trace/src/heap_snapshots.js +1 -1
- package/packages/dd-trace/src/id.js +1 -1
- package/packages/dd-trace/src/iitm.js +1 -1
- package/packages/dd-trace/src/lambda/handler.js +1 -1
- package/packages/dd-trace/src/lambda/runtime/errors.js +1 -1
- package/packages/dd-trace/src/lambda/runtime/ritm.js +3 -3
- package/packages/dd-trace/src/llmobs/constants/tags.js +1 -1
- package/packages/dd-trace/src/llmobs/constants/text.js +1 -1
- package/packages/dd-trace/src/llmobs/constants/writers.js +1 -1
- package/packages/dd-trace/src/llmobs/index.js +2 -4
- package/packages/dd-trace/src/llmobs/noop.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/ai/index.js +8 -8
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/anthropic.js +5 -5
- package/packages/dd-trace/src/llmobs/plugins/base.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +8 -8
- package/packages/dd-trace/src/llmobs/plugins/genai/index.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +15 -15
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +5 -5
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +3 -3
- package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/openai/index.js +17 -17
- package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +3 -3
- package/packages/dd-trace/src/llmobs/plugins/vertexai.js +6 -6
- package/packages/dd-trace/src/llmobs/sdk.js +11 -11
- package/packages/dd-trace/src/llmobs/span_processor.js +6 -6
- package/packages/dd-trace/src/llmobs/tagger.js +4 -4
- package/packages/dd-trace/src/llmobs/telemetry.js +8 -8
- package/packages/dd-trace/src/llmobs/util.js +1 -1
- package/packages/dd-trace/src/llmobs/writers/base.js +9 -9
- package/packages/dd-trace/src/llmobs/writers/evaluations.js +5 -5
- package/packages/dd-trace/src/llmobs/writers/spans.js +3 -3
- package/packages/dd-trace/src/llmobs/writers/util.js +1 -1
- package/packages/dd-trace/src/log/channels.js +2 -2
- package/packages/dd-trace/src/log/index.js +2 -2
- package/packages/dd-trace/src/log/log.js +1 -1
- package/packages/dd-trace/src/log/writer.js +1 -1
- package/packages/dd-trace/src/noop/span.js +2 -2
- package/packages/dd-trace/src/openfeature/constants/constants.js +1 -1
- package/packages/dd-trace/src/openfeature/flagging_provider.js +4 -4
- package/packages/dd-trace/src/openfeature/index.js +2 -2
- package/packages/dd-trace/src/openfeature/noop.js +3 -3
- package/packages/dd-trace/src/openfeature/remote_config.js +1 -1
- package/packages/dd-trace/src/openfeature/writers/base.js +12 -12
- package/packages/dd-trace/src/openfeature/writers/exposures.js +10 -10
- package/packages/dd-trace/src/openfeature/writers/util.js +1 -1
- package/packages/dd-trace/src/opentelemetry/context_manager.js +48 -29
- package/packages/dd-trace/src/opentelemetry/logs/index.js +2 -2
- package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +2 -2
- package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +10 -10
- package/packages/dd-trace/src/opentelemetry/metrics/constants.js +3 -3
- package/packages/dd-trace/src/opentelemetry/metrics/index.js +2 -2
- package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
- package/packages/dd-trace/src/opentelemetry/metrics/meter.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +11 -11
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +18 -18
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +6 -6
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +10 -7
- package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +3 -3
- package/packages/dd-trace/src/opentelemetry/span.js +8 -8
- package/packages/dd-trace/src/opentelemetry/span_context.js +1 -1
- package/packages/dd-trace/src/opentelemetry/span_processor.js +1 -1
- package/packages/dd-trace/src/opentelemetry/tracer.js +4 -4
- package/packages/dd-trace/src/opentracing/propagation/log.js +2 -2
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +14 -12
- package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -0
- package/packages/dd-trace/src/opentracing/span.js +20 -20
- package/packages/dd-trace/src/opentracing/span_context.js +3 -3
- package/packages/dd-trace/src/opentracing/tracer.js +3 -3
- package/packages/dd-trace/src/payload-tagging/config/index.js +1 -1
- package/packages/dd-trace/src/payload-tagging/index.js +1 -1
- package/packages/dd-trace/src/payload-tagging/tagging.js +2 -2
- package/packages/dd-trace/src/plugin_manager.js +6 -6
- package/packages/dd-trace/src/plugins/apollo.js +4 -4
- package/packages/dd-trace/src/plugins/ci_plugin.js +101 -36
- package/packages/dd-trace/src/plugins/database.js +1 -1
- package/packages/dd-trace/src/plugins/index.js +1 -1
- package/packages/dd-trace/src/plugins/log_plugin.js +2 -2
- package/packages/dd-trace/src/plugins/outbound.js +9 -8
- package/packages/dd-trace/src/plugins/plugin.js +17 -7
- package/packages/dd-trace/src/plugins/producer.js +6 -5
- package/packages/dd-trace/src/plugins/tracing.js +37 -8
- package/packages/dd-trace/src/plugins/util/ci.js +40 -40
- package/packages/dd-trace/src/plugins/util/env.js +2 -2
- package/packages/dd-trace/src/plugins/util/git-cache.js +2 -2
- package/packages/dd-trace/src/plugins/util/git.js +20 -18
- package/packages/dd-trace/src/plugins/util/inferred_proxy.js +6 -6
- package/packages/dd-trace/src/plugins/util/ip_extractor.js +3 -3
- package/packages/dd-trace/src/plugins/util/llm.js +1 -1
- package/packages/dd-trace/src/plugins/util/stacktrace.js +3 -3
- package/packages/dd-trace/src/plugins/util/tags.js +1 -1
- package/packages/dd-trace/src/plugins/util/test.js +46 -40
- package/packages/dd-trace/src/plugins/util/url.js +1 -1
- package/packages/dd-trace/src/plugins/util/urlfilter.js +1 -1
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +2 -2
- package/packages/dd-trace/src/plugins/util/web.js +12 -12
- package/packages/dd-trace/src/priority_sampler.js +4 -4
- package/packages/dd-trace/src/process-tags/index.js +2 -2
- package/packages/dd-trace/src/profiler.js +1 -1
- package/packages/dd-trace/src/profiling/config.js +8 -8
- package/packages/dd-trace/src/profiling/constants.js +2 -2
- package/packages/dd-trace/src/profiling/exporter_cli.js +3 -3
- package/packages/dd-trace/src/profiling/exporters/agent.js +5 -5
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +8 -8
- package/packages/dd-trace/src/profiling/index.js +1 -1
- package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
- package/packages/dd-trace/src/profiling/loggers/console.js +1 -1
- package/packages/dd-trace/src/profiling/profiler.js +21 -23
- package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/event_plugins/fs.js +3 -3
- package/packages/dd-trace/src/profiling/profilers/events.js +27 -19
- package/packages/dd-trace/src/profiling/profilers/shared.js +2 -2
- package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
- package/packages/dd-trace/src/profiling/tagger.js +1 -1
- package/packages/dd-trace/src/profiling/webspan-utils.js +2 -2
- package/packages/dd-trace/src/proxy.js +13 -13
- package/packages/dd-trace/src/remote_config/apply_states.js +1 -1
- package/packages/dd-trace/src/remote_config/index.js +15 -15
- package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
- package/packages/dd-trace/src/ritm.js +1 -1
- package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +3 -3
- package/packages/dd-trace/src/serverless.js +1 -1
- package/packages/dd-trace/src/service-naming/extra-services.js +1 -1
- package/packages/dd-trace/src/service-naming/index.js +1 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/graphql.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +25 -25
- package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +18 -18
- package/packages/dd-trace/src/service-naming/schemas/v0/web.js +23 -23
- package/packages/dd-trace/src/service-naming/schemas/v0/websocket.js +9 -9
- package/packages/dd-trace/src/service-naming/schemas/v1/graphql.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +21 -21
- package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +17 -17
- package/packages/dd-trace/src/service-naming/schemas/v1/web.js +23 -23
- package/packages/dd-trace/src/service-naming/schemas/v1/websocket.js +9 -9
- package/packages/dd-trace/src/span_format.js +4 -4
- package/packages/dd-trace/src/span_sampler.js +1 -1
- package/packages/dd-trace/src/span_stats.js +11 -11
- package/packages/dd-trace/src/spanleak.js +1 -1
- package/packages/dd-trace/src/standalone/index.js +1 -1
- package/packages/dd-trace/src/standalone/product.js +2 -2
- package/packages/dd-trace/src/standalone/tracesource.js +1 -1
- package/packages/dd-trace/src/startup-log.js +2 -2
- package/packages/dd-trace/src/tagger.js +3 -1
- package/packages/dd-trace/src/telemetry/dependencies.js +4 -4
- package/packages/dd-trace/src/telemetry/endpoints.js +4 -4
- package/packages/dd-trace/src/telemetry/index.js +1 -1
- package/packages/dd-trace/src/telemetry/logs/index.js +2 -2
- package/packages/dd-trace/src/telemetry/logs/log-collector.js +2 -2
- package/packages/dd-trace/src/telemetry/metrics.js +6 -6
- package/packages/dd-trace/src/telemetry/send-data.js +5 -5
- package/packages/dd-trace/src/telemetry/telemetry.js +10 -10
- package/packages/dd-trace/src/tracer.js +3 -2
- package/packages/dd-trace/src/util.js +1 -1
- package/scripts/preinstall.js +1 -1
- package/vendor/dist/@datadog/sketches-js/index.js +1 -1
- package/vendor/dist/@datadog/source-map/index.js +1 -1
- package/vendor/dist/@isaacs/ttlcache/index.js +1 -1
- package/vendor/dist/@opentelemetry/core/index.js +1 -1
- package/vendor/dist/@opentelemetry/resources/index.js +1 -1
- package/vendor/dist/astring/index.js +1 -1
- package/vendor/dist/crypto-randomuuid/index.js +1 -1
- package/vendor/dist/escape-string-regexp/index.js +1 -1
- package/vendor/dist/esquery/index.js +1 -1
- package/vendor/dist/ignore/index.js +1 -1
- package/vendor/dist/istanbul-lib-coverage/index.js +1 -1
- package/vendor/dist/jest-docblock/index.js +1 -1
- package/vendor/dist/jsonpath-plus/index.js +1 -1
- package/vendor/dist/limiter/index.js +1 -1
- package/vendor/dist/lodash.sortby/index.js +1 -1
- package/vendor/dist/lru-cache/index.js +1 -1
- package/vendor/dist/meriyah/index.js +1 -1
- package/vendor/dist/module-details-from-path/index.js +1 -1
- package/vendor/dist/mutexify/promise/index.js +1 -1
- package/vendor/dist/opentracing/index.js +1 -1
- package/vendor/dist/path-to-regexp/index.js +1 -1
- package/vendor/dist/pprof-format/index.js +1 -1
- package/vendor/dist/protobufjs/index.js +1 -1
- package/vendor/dist/protobufjs/minimal/index.js +1 -1
- package/vendor/dist/retry/index.js +1 -1
- package/vendor/dist/rfdc/index.js +1 -1
- package/vendor/dist/semifies/index.js +1 -1
- package/vendor/dist/shell-quote/index.js +1 -1
- package/vendor/dist/source-map/index.js +1 -1
- package/vendor/dist/source-map/lib/util/index.js +1 -1
- package/vendor/dist/tlhunter-sorted-set/index.js +1 -1
- package/vendor/dist/ttl-set/index.js +1 -1
- package/packages/datadog-plugin-prisma/src/client.js +0 -60
- package/packages/datadog-plugin-prisma/src/engine.js +0 -81
|
@@ -7,6 +7,7 @@ const { getSkippableSuites: getSkippableSuitesRequest } = require('../intelligen
|
|
|
7
7
|
const { getKnownTests: getKnownTestsRequest } = require('../early-flake-detection/get-known-tests')
|
|
8
8
|
const { getTestManagementTests: getTestManagementTestsRequest } =
|
|
9
9
|
require('../test-management/get-test-management-tests')
|
|
10
|
+
const { uploadCoverageReport: uploadCoverageReportRequest } = require('../requests/upload-coverage-report')
|
|
10
11
|
const log = require('../../log')
|
|
11
12
|
const BufferingExporter = require('../../exporters/common/buffering-exporter')
|
|
12
13
|
const { GIT_REPOSITORY_URL, GIT_COMMIT_SHA } = require('../../plugins/util/tags')
|
|
@@ -120,7 +121,7 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
120
121
|
isGzipCompatible: this._isGzipCompatible,
|
|
121
122
|
evpProxyPrefix: this.evpProxyPrefix,
|
|
122
123
|
custom: getTestConfigurationTags(this._config.tags),
|
|
123
|
-
...testConfiguration
|
|
124
|
+
...testConfiguration,
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
|
|
@@ -211,7 +212,8 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
211
212
|
isKnownTestsEnabled,
|
|
212
213
|
isTestManagementEnabled,
|
|
213
214
|
testManagementAttemptToFixRetries,
|
|
214
|
-
isImpactedTestsEnabled
|
|
215
|
+
isImpactedTestsEnabled,
|
|
216
|
+
isCoverageReportUploadEnabled,
|
|
215
217
|
} = remoteConfiguration
|
|
216
218
|
return {
|
|
217
219
|
isCodeCoverageEnabled,
|
|
@@ -228,7 +230,8 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
228
230
|
isTestManagementEnabled: isTestManagementEnabled && this._config.isTestManagementEnabled,
|
|
229
231
|
testManagementAttemptToFixRetries:
|
|
230
232
|
testManagementAttemptToFixRetries ?? this._config.testManagementAttemptToFixRetries,
|
|
231
|
-
isImpactedTestsEnabled: isImpactedTestsEnabled && this._config.isImpactedTestsEnabled
|
|
233
|
+
isImpactedTestsEnabled: isImpactedTestsEnabled && this._config.isImpactedTestsEnabled,
|
|
234
|
+
isCoverageReportUploadEnabled,
|
|
232
235
|
}
|
|
233
236
|
}
|
|
234
237
|
|
|
@@ -284,7 +287,7 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
284
287
|
formatLogMessage (testEnvironmentMetadata, logMessage) {
|
|
285
288
|
const {
|
|
286
289
|
[GIT_REPOSITORY_URL]: gitRepositoryUrl,
|
|
287
|
-
[GIT_COMMIT_SHA]: gitCommitSha
|
|
290
|
+
[GIT_COMMIT_SHA]: gitCommitSha,
|
|
288
291
|
} = testEnvironmentMetadata
|
|
289
292
|
|
|
290
293
|
const { service, env, version } = this._config
|
|
@@ -293,7 +296,7 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
293
296
|
ddtags: [
|
|
294
297
|
...(logMessage.ddtags || []),
|
|
295
298
|
`${GIT_REPOSITORY_URL}:${gitRepositoryUrl}`,
|
|
296
|
-
`${GIT_COMMIT_SHA}:${gitCommitSha}
|
|
299
|
+
`${GIT_COMMIT_SHA}:${gitCommitSha}`,
|
|
297
300
|
].join(','),
|
|
298
301
|
level: 'error',
|
|
299
302
|
service,
|
|
@@ -301,10 +304,10 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
301
304
|
...(logMessage.dd || []),
|
|
302
305
|
service,
|
|
303
306
|
env,
|
|
304
|
-
version
|
|
307
|
+
version,
|
|
305
308
|
},
|
|
306
309
|
ddsource: 'dd_debugger',
|
|
307
|
-
...logMessage
|
|
310
|
+
...logMessage,
|
|
308
311
|
}
|
|
309
312
|
}
|
|
310
313
|
|
|
@@ -331,7 +334,7 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
331
334
|
const writers = [
|
|
332
335
|
this._writer,
|
|
333
336
|
this._coverageWriter,
|
|
334
|
-
this._logsWriter
|
|
337
|
+
this._logsWriter,
|
|
335
338
|
].filter(Boolean)
|
|
336
339
|
|
|
337
340
|
let remaining = writers.length
|
|
@@ -347,13 +350,13 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
347
350
|
}
|
|
348
351
|
}
|
|
349
352
|
|
|
350
|
-
|
|
353
|
+
for (const writer of writers) writer.flush(onFlushComplete)
|
|
351
354
|
}
|
|
352
355
|
|
|
353
356
|
exportUncodedCoverages () {
|
|
354
|
-
this._coverageBuffer
|
|
357
|
+
for (const oldCoveragePayload of this._coverageBuffer) {
|
|
355
358
|
this.exportCoverage(oldCoveragePayload)
|
|
356
|
-
}
|
|
359
|
+
}
|
|
357
360
|
this._coverageBuffer = []
|
|
358
361
|
}
|
|
359
362
|
|
|
@@ -386,6 +389,29 @@ class CiVisibilityExporter extends BufferingExporter {
|
|
|
386
389
|
})
|
|
387
390
|
}
|
|
388
391
|
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Uploads a single coverage report to the CI intake.
|
|
395
|
+
* @param {object} options - Upload options
|
|
396
|
+
* @param {string} options.filePath - Path to the coverage report file
|
|
397
|
+
* @param {string} options.format - Format of the coverage report
|
|
398
|
+
* @param {object} options.testEnvironmentMetadata - Test environment metadata containing git/CI tags
|
|
399
|
+
* @param {Function} callback - Callback function (err)
|
|
400
|
+
*/
|
|
401
|
+
uploadCoverageReport ({ filePath, format, testEnvironmentMetadata }, callback) {
|
|
402
|
+
if (!this._codeCoverageReportUrl) {
|
|
403
|
+
return callback(new Error('Coverage report upload URL not configured'))
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
uploadCoverageReportRequest({
|
|
407
|
+
filePath,
|
|
408
|
+
format,
|
|
409
|
+
testEnvironmentMetadata,
|
|
410
|
+
url: this._codeCoverageReportUrl,
|
|
411
|
+
isEvpProxy: !!this._isUsingEvpProxy,
|
|
412
|
+
evpProxyPrefix: this.evpProxyPrefix,
|
|
413
|
+
}, callback)
|
|
414
|
+
}
|
|
389
415
|
}
|
|
390
416
|
|
|
391
417
|
module.exports = CiVisibilityExporter
|
|
@@ -16,7 +16,7 @@ const {
|
|
|
16
16
|
getCommitsRevList,
|
|
17
17
|
isShallowRepository,
|
|
18
18
|
unshallowRepository,
|
|
19
|
-
isGitAvailable
|
|
19
|
+
isGitAvailable,
|
|
20
20
|
} = require('../../../plugins/util/git')
|
|
21
21
|
|
|
22
22
|
const {
|
|
@@ -29,7 +29,7 @@ const {
|
|
|
29
29
|
TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES,
|
|
30
30
|
TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_MS,
|
|
31
31
|
TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_ERRORS,
|
|
32
|
-
TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_BYTES
|
|
32
|
+
TELEMETRY_GIT_REQUESTS_OBJECT_PACKFILES_BYTES,
|
|
33
33
|
} = require('../../../ci-visibility/telemetry')
|
|
34
34
|
|
|
35
35
|
const isValidSha1 = (sha) => /^[0-9a-f]{40}$/.test(sha)
|
|
@@ -51,10 +51,10 @@ function getCommonRequestOptions (url) {
|
|
|
51
51
|
return {
|
|
52
52
|
method: 'POST',
|
|
53
53
|
headers: {
|
|
54
|
-
'dd-api-key': getValueFromEnvSources('DD_API_KEY')
|
|
54
|
+
'dd-api-key': getValueFromEnvSources('DD_API_KEY'),
|
|
55
55
|
},
|
|
56
56
|
timeout: 15_000,
|
|
57
|
-
url
|
|
57
|
+
url,
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -70,9 +70,9 @@ function getCommitsToUpload ({ url, repositoryUrl, latestCommits, isEvpProxy, ev
|
|
|
70
70
|
...commonOptions,
|
|
71
71
|
headers: {
|
|
72
72
|
...commonOptions.headers,
|
|
73
|
-
'Content-Type': 'application/json'
|
|
73
|
+
'Content-Type': 'application/json',
|
|
74
74
|
},
|
|
75
|
-
path: '/api/v2/git/repository/search_commits'
|
|
75
|
+
path: '/api/v2/git/repository/search_commits',
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
if (isEvpProxy) {
|
|
@@ -83,12 +83,12 @@ function getCommitsToUpload ({ url, repositoryUrl, latestCommits, isEvpProxy, ev
|
|
|
83
83
|
|
|
84
84
|
const localCommitData = JSON.stringify({
|
|
85
85
|
meta: {
|
|
86
|
-
repository_url: repositoryUrl
|
|
86
|
+
repository_url: repositoryUrl,
|
|
87
87
|
},
|
|
88
88
|
data: latestCommits.map(commit => ({
|
|
89
89
|
id: commit,
|
|
90
|
-
type: 'commit'
|
|
91
|
-
}))
|
|
90
|
+
type: 'commit',
|
|
91
|
+
})),
|
|
92
92
|
})
|
|
93
93
|
|
|
94
94
|
incrementCountMetric(TELEMETRY_GIT_REQUESTS_SEARCH_COMMITS)
|
|
@@ -134,11 +134,11 @@ function uploadPackFile ({ url, isEvpProxy, evpProxyPrefix, packFileToUpload, re
|
|
|
134
134
|
const pushedSha = JSON.stringify({
|
|
135
135
|
data: {
|
|
136
136
|
id: headCommit,
|
|
137
|
-
type: 'commit'
|
|
137
|
+
type: 'commit',
|
|
138
138
|
},
|
|
139
139
|
meta: {
|
|
140
|
-
repository_url: repositoryUrl
|
|
141
|
-
}
|
|
140
|
+
repository_url: repositoryUrl,
|
|
141
|
+
},
|
|
142
142
|
})
|
|
143
143
|
|
|
144
144
|
form.append('pushedSha', pushedSha, { contentType: 'application/json' })
|
|
@@ -149,7 +149,7 @@ function uploadPackFile ({ url, isEvpProxy, evpProxyPrefix, packFileToUpload, re
|
|
|
149
149
|
const [, filename] = path.basename(packFileToUpload).split('-')
|
|
150
150
|
form.append('packfile', packFileContent, {
|
|
151
151
|
filename,
|
|
152
|
-
contentType: 'application/octet-stream'
|
|
152
|
+
contentType: 'application/octet-stream',
|
|
153
153
|
})
|
|
154
154
|
} catch {
|
|
155
155
|
callback(new Error(`Could not read "${packFileToUpload}"`))
|
|
@@ -163,8 +163,8 @@ function uploadPackFile ({ url, isEvpProxy, evpProxyPrefix, packFileToUpload, re
|
|
|
163
163
|
path: '/api/v2/git/repository/packfile',
|
|
164
164
|
headers: {
|
|
165
165
|
...commonOptions.headers,
|
|
166
|
-
...form.getHeaders()
|
|
167
|
-
}
|
|
166
|
+
...form.getHeaders(),
|
|
167
|
+
},
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
if (isEvpProxy) {
|
|
@@ -195,7 +195,7 @@ function generateAndUploadPackFiles ({
|
|
|
195
195
|
evpProxyPrefix,
|
|
196
196
|
commitsToUpload,
|
|
197
197
|
repositoryUrl,
|
|
198
|
-
headCommit
|
|
198
|
+
headCommit,
|
|
199
199
|
}, callback) {
|
|
200
200
|
log.debug('There are %s commits to upload', commitsToUpload.length)
|
|
201
201
|
|
|
@@ -224,7 +224,7 @@ function generateAndUploadPackFiles ({
|
|
|
224
224
|
isEvpProxy,
|
|
225
225
|
evpProxyPrefix,
|
|
226
226
|
repositoryUrl,
|
|
227
|
-
headCommit
|
|
227
|
+
headCommit,
|
|
228
228
|
},
|
|
229
229
|
uploadPackFileCallback
|
|
230
230
|
)
|
|
@@ -237,7 +237,7 @@ function generateAndUploadPackFiles ({
|
|
|
237
237
|
isEvpProxy,
|
|
238
238
|
evpProxyPrefix,
|
|
239
239
|
repositoryUrl,
|
|
240
|
-
headCommit
|
|
240
|
+
headCommit,
|
|
241
241
|
},
|
|
242
242
|
uploadPackFileCallback
|
|
243
243
|
)
|
|
@@ -283,7 +283,7 @@ function sendGitMetadata (url, { isEvpProxy, evpProxyPrefix }, configRepositoryU
|
|
|
283
283
|
evpProxyPrefix,
|
|
284
284
|
commitsToUpload,
|
|
285
285
|
repositoryUrl,
|
|
286
|
-
headCommit
|
|
286
|
+
headCommit,
|
|
287
287
|
}, callback)
|
|
288
288
|
}
|
|
289
289
|
// Otherwise we unshallow and get commits to upload again
|
|
@@ -299,7 +299,7 @@ function sendGitMetadata (url, { isEvpProxy, evpProxyPrefix }, configRepositoryU
|
|
|
299
299
|
repositoryUrl,
|
|
300
300
|
latestCommits,
|
|
301
301
|
isEvpProxy,
|
|
302
|
-
evpProxyPrefix
|
|
302
|
+
evpProxyPrefix,
|
|
303
303
|
}, getOnFinishGetCommitsToUpload(true))
|
|
304
304
|
}
|
|
305
305
|
|
|
@@ -308,10 +308,10 @@ function sendGitMetadata (url, { isEvpProxy, evpProxyPrefix }, configRepositoryU
|
|
|
308
308
|
repositoryUrl,
|
|
309
309
|
latestCommits,
|
|
310
310
|
isEvpProxy,
|
|
311
|
-
evpProxyPrefix
|
|
311
|
+
evpProxyPrefix,
|
|
312
312
|
}, getOnFinishGetCommitsToUpload(false))
|
|
313
313
|
}
|
|
314
314
|
|
|
315
315
|
module.exports = {
|
|
316
|
-
sendGitMetadata
|
|
316
|
+
sendGitMetadata,
|
|
317
317
|
}
|
|
@@ -8,7 +8,7 @@ const {
|
|
|
8
8
|
JEST_WORKER_LOGS_PAYLOAD_CODE,
|
|
9
9
|
PLAYWRIGHT_WORKER_TRACE_PAYLOAD_CODE,
|
|
10
10
|
VITEST_WORKER_TRACE_PAYLOAD_CODE,
|
|
11
|
-
VITEST_WORKER_LOGS_PAYLOAD_CODE
|
|
11
|
+
VITEST_WORKER_LOGS_PAYLOAD_CODE,
|
|
12
12
|
} = require('../../../plugins/util/test')
|
|
13
13
|
const { getEnvironmentVariable, getValueFromEnvSources } = require('../../../config/helper')
|
|
14
14
|
const Writer = require('./writer')
|
|
@@ -4,7 +4,7 @@ const { getEnvironmentVariable } = require('../../../config/helper')
|
|
|
4
4
|
const log = require('../../../log')
|
|
5
5
|
const {
|
|
6
6
|
VITEST_WORKER_TRACE_PAYLOAD_CODE,
|
|
7
|
-
VITEST_WORKER_LOGS_PAYLOAD_CODE
|
|
7
|
+
VITEST_WORKER_LOGS_PAYLOAD_CODE,
|
|
8
8
|
} = require('../../../plugins/util/test')
|
|
9
9
|
|
|
10
10
|
class Writer {
|
|
@@ -11,7 +11,7 @@ const {
|
|
|
11
11
|
TELEMETRY_ITR_SKIPPABLE_TESTS_ERRORS,
|
|
12
12
|
TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_SUITES,
|
|
13
13
|
TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_TESTS,
|
|
14
|
-
TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_BYTES
|
|
14
|
+
TELEMETRY_ITR_SKIPPABLE_TESTS_RESPONSE_BYTES,
|
|
15
15
|
} = require('../../ci-visibility/telemetry')
|
|
16
16
|
|
|
17
17
|
function getSkippableSuites ({
|
|
@@ -29,16 +29,16 @@ function getSkippableSuites ({
|
|
|
29
29
|
runtimeName,
|
|
30
30
|
runtimeVersion,
|
|
31
31
|
custom,
|
|
32
|
-
testLevel = 'suite'
|
|
32
|
+
testLevel = 'suite',
|
|
33
33
|
}, done) {
|
|
34
34
|
const options = {
|
|
35
35
|
path: '/api/v2/ci/tests/skippable',
|
|
36
36
|
method: 'POST',
|
|
37
37
|
headers: {
|
|
38
|
-
'Content-Type': 'application/json'
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
39
|
},
|
|
40
40
|
timeout: 20_000,
|
|
41
|
-
url
|
|
41
|
+
url,
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
if (isGzipCompatible) {
|
|
@@ -68,14 +68,14 @@ function getSkippableSuites ({
|
|
|
68
68
|
'os.architecture': osArchitecture,
|
|
69
69
|
'runtime.name': runtimeName,
|
|
70
70
|
'runtime.version': runtimeVersion,
|
|
71
|
-
custom
|
|
71
|
+
custom,
|
|
72
72
|
},
|
|
73
73
|
service,
|
|
74
74
|
env,
|
|
75
75
|
repository_url: repositoryUrl,
|
|
76
|
-
sha
|
|
77
|
-
}
|
|
78
|
-
}
|
|
76
|
+
sha,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
79
|
})
|
|
80
80
|
|
|
81
81
|
incrementCountMetric(TELEMETRY_ITR_SKIPPABLE_TESTS)
|
|
@@ -12,8 +12,8 @@ function getWinstonLogSubmissionParameters (config) {
|
|
|
12
12
|
path: `/api/v2/logs?ddsource=winston&service=${service}`,
|
|
13
13
|
ssl: true,
|
|
14
14
|
headers: {
|
|
15
|
-
'DD-API-KEY': getValueFromEnvSources('DD_API_KEY')
|
|
16
|
-
}
|
|
15
|
+
'DD-API-KEY': getValueFromEnvSources('DD_API_KEY'),
|
|
16
|
+
},
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
if (!getValueFromEnvSources('DD_AGENTLESS_LOG_SUBMISSION_URL')) {
|
|
@@ -27,7 +27,7 @@ function getWinstonLogSubmissionParameters (config) {
|
|
|
27
27
|
port: url.port,
|
|
28
28
|
ssl: url.protocol === 'https:',
|
|
29
29
|
path: defaultParameters.path,
|
|
30
|
-
headers: defaultParameters.headers
|
|
30
|
+
headers: defaultParameters.headers,
|
|
31
31
|
}
|
|
32
32
|
} catch {
|
|
33
33
|
log.error('Could not parse DD_AGENTLESS_LOG_SUBMISSION_URL')
|
|
@@ -10,8 +10,9 @@ const {
|
|
|
10
10
|
TELEMETRY_GIT_REQUESTS_SETTINGS,
|
|
11
11
|
TELEMETRY_GIT_REQUESTS_SETTINGS_MS,
|
|
12
12
|
TELEMETRY_GIT_REQUESTS_SETTINGS_ERRORS,
|
|
13
|
-
TELEMETRY_GIT_REQUESTS_SETTINGS_RESPONSE
|
|
13
|
+
TELEMETRY_GIT_REQUESTS_SETTINGS_RESPONSE,
|
|
14
14
|
} = require('../telemetry')
|
|
15
|
+
const { writeSettingsToCache } = require('../test-optimization-cache')
|
|
15
16
|
|
|
16
17
|
const DEFAULT_EARLY_FLAKE_DETECTION_NUM_RETRIES = 2
|
|
17
18
|
const DEFAULT_EARLY_FLAKE_DETECTION_ERROR_THRESHOLD = 30
|
|
@@ -32,16 +33,16 @@ function getLibraryConfiguration ({
|
|
|
32
33
|
branch,
|
|
33
34
|
testLevel = 'suite',
|
|
34
35
|
custom,
|
|
35
|
-
tag
|
|
36
|
+
tag,
|
|
36
37
|
}, done) {
|
|
37
38
|
const options = {
|
|
38
39
|
path: '/api/v2/libraries/tests/services/setting',
|
|
39
40
|
method: 'POST',
|
|
40
41
|
headers: {
|
|
41
|
-
'Content-Type': 'application/json'
|
|
42
|
+
'Content-Type': 'application/json',
|
|
42
43
|
},
|
|
43
44
|
url,
|
|
44
|
-
timeout: 20_000
|
|
45
|
+
timeout: 20_000,
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
if (isEvpProxy) {
|
|
@@ -67,15 +68,15 @@ function getLibraryConfiguration ({
|
|
|
67
68
|
'os.architecture': osArchitecture,
|
|
68
69
|
'runtime.name': runtimeName,
|
|
69
70
|
'runtime.version': runtimeVersion,
|
|
70
|
-
custom
|
|
71
|
+
custom,
|
|
71
72
|
},
|
|
72
73
|
service,
|
|
73
74
|
env,
|
|
74
75
|
repository_url: repositoryUrl,
|
|
75
76
|
sha,
|
|
76
|
-
branch: branch || tag
|
|
77
|
-
}
|
|
78
|
-
}
|
|
77
|
+
branch: branch || tag,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
79
80
|
})
|
|
80
81
|
|
|
81
82
|
incrementCountMetric(TELEMETRY_GIT_REQUESTS_SETTINGS)
|
|
@@ -100,9 +101,10 @@ function getLibraryConfiguration ({
|
|
|
100
101
|
di_enabled: isDiEnabled,
|
|
101
102
|
known_tests_enabled: isKnownTestsEnabled,
|
|
102
103
|
test_management: testManagementConfig,
|
|
103
|
-
impacted_tests_enabled: isImpactedTestsEnabled
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
impacted_tests_enabled: isImpactedTestsEnabled,
|
|
105
|
+
coverage_report_upload_enabled: isCoverageReportUploadEnabled,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
106
108
|
} = JSON.parse(res)
|
|
107
109
|
|
|
108
110
|
const settings = {
|
|
@@ -121,7 +123,8 @@ function getLibraryConfiguration ({
|
|
|
121
123
|
isTestManagementEnabled: (testManagementConfig?.enabled ?? false),
|
|
122
124
|
testManagementAttemptToFixRetries:
|
|
123
125
|
testManagementConfig?.attempt_to_fix_retries,
|
|
124
|
-
isImpactedTestsEnabled
|
|
126
|
+
isImpactedTestsEnabled,
|
|
127
|
+
isCoverageReportUploadEnabled: isCoverageReportUploadEnabled ?? false,
|
|
125
128
|
}
|
|
126
129
|
|
|
127
130
|
log.debug('Remote settings: %j', settings)
|
|
@@ -137,6 +140,8 @@ function getLibraryConfiguration ({
|
|
|
137
140
|
|
|
138
141
|
incrementCountMetric(TELEMETRY_GIT_REQUESTS_SETTINGS_RESPONSE, settings)
|
|
139
142
|
|
|
143
|
+
writeSettingsToCache(settings)
|
|
144
|
+
|
|
140
145
|
done(null, settings)
|
|
141
146
|
} catch (err) {
|
|
142
147
|
done(err)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { readFileSync } = require('node:fs')
|
|
4
|
+
const { gzipSync } = require('node:zlib')
|
|
5
|
+
|
|
6
|
+
const FormData = require('../../exporters/common/form-data')
|
|
7
|
+
const request = require('../../exporters/common/request')
|
|
8
|
+
const log = require('../../log')
|
|
9
|
+
const { getValueFromEnvSources } = require('../../config/helper')
|
|
10
|
+
|
|
11
|
+
const UPLOAD_TIMEOUT_MS = 30_000
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Uploads a single coverage report to the Datadog CI intake.
|
|
15
|
+
* One file per request with field names 'coverage' and 'event'.
|
|
16
|
+
* @param {object} options - Upload options
|
|
17
|
+
* @param {string} options.filePath - Path to the coverage report file
|
|
18
|
+
* @param {string} options.format - Format of the coverage report (e.g., 'lcov', 'cobertura')
|
|
19
|
+
* @param {object} options.testEnvironmentMetadata - Test environment metadata containing git/CI tags
|
|
20
|
+
* @param {URL} options.url - The base URL for the coverage report upload
|
|
21
|
+
* @param {boolean} [options.isEvpProxy] - Whether to use EVP proxy for the upload
|
|
22
|
+
* @param {string} [options.evpProxyPrefix] - The EVP proxy prefix (e.g., '/evp_proxy/v4')
|
|
23
|
+
* @param {Function} callback - Callback function (err)
|
|
24
|
+
*/
|
|
25
|
+
function uploadCoverageReport (
|
|
26
|
+
{ filePath, format, testEnvironmentMetadata, url, isEvpProxy, evpProxyPrefix },
|
|
27
|
+
callback
|
|
28
|
+
) {
|
|
29
|
+
const apiKey = getValueFromEnvSources('DD_API_KEY')
|
|
30
|
+
|
|
31
|
+
if (!apiKey && !isEvpProxy) {
|
|
32
|
+
return callback(new Error('DD_API_KEY is required for coverage report upload'))
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
let compressedCoverage
|
|
36
|
+
try {
|
|
37
|
+
const coverageContent = readFileSync(filePath)
|
|
38
|
+
compressedCoverage = gzipSync(coverageContent)
|
|
39
|
+
} catch (err) {
|
|
40
|
+
return callback(new Error(`Failed to read coverage report at ${filePath}: ${err.message}`))
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Build the event payload with format, type, and all tags from test environment metadata
|
|
44
|
+
const eventPayload = {
|
|
45
|
+
type: 'coverage_report',
|
|
46
|
+
format,
|
|
47
|
+
...testEnvironmentMetadata,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Create multipart form
|
|
51
|
+
const form = new FormData()
|
|
52
|
+
|
|
53
|
+
form.append('coverage', compressedCoverage, {
|
|
54
|
+
filename: 'coverage.gz',
|
|
55
|
+
contentType: 'application/gzip',
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
form.append('event', JSON.stringify(eventPayload), {
|
|
59
|
+
filename: 'event.json',
|
|
60
|
+
contentType: 'application/json',
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
const options = {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
headers: {
|
|
66
|
+
...form.getHeaders(),
|
|
67
|
+
},
|
|
68
|
+
timeout: UPLOAD_TIMEOUT_MS,
|
|
69
|
+
url,
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (isEvpProxy) {
|
|
73
|
+
options.path = `${evpProxyPrefix}/api/v2/cicovreprt`
|
|
74
|
+
options.headers['X-Datadog-EVP-Subdomain'] = 'ci-intake'
|
|
75
|
+
} else {
|
|
76
|
+
options.path = '/api/v2/cicovreprt'
|
|
77
|
+
options.headers['dd-api-key'] = apiKey
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
log.debug('Uploading coverage report %s to %s%s', filePath, url, options.path)
|
|
81
|
+
|
|
82
|
+
request(form, options, (err, res, statusCode) => {
|
|
83
|
+
if (err) {
|
|
84
|
+
log.error('Error uploading coverage report: %s', err.message)
|
|
85
|
+
return callback(err)
|
|
86
|
+
}
|
|
87
|
+
log.debug('Coverage report uploaded successfully (status: %d)', statusCode)
|
|
88
|
+
callback(null)
|
|
89
|
+
})
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
module.exports = { uploadCoverageReport }
|
|
@@ -16,7 +16,7 @@ const formattedTags = {
|
|
|
16
16
|
isNew: 'is_new',
|
|
17
17
|
isRum: 'is_rum',
|
|
18
18
|
browserDriver: 'browser_driver',
|
|
19
|
-
autoInjected: 'auto_injected'
|
|
19
|
+
autoInjected: 'auto_injected',
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// Transform tags dictionary to array of strings.
|
|
@@ -164,5 +164,5 @@ module.exports = {
|
|
|
164
164
|
TELEMETRY_KNOWN_TESTS_MS,
|
|
165
165
|
TELEMETRY_KNOWN_TESTS_ERRORS,
|
|
166
166
|
TELEMETRY_KNOWN_TESTS_RESPONSE_TESTS,
|
|
167
|
-
TELEMETRY_KNOWN_TESTS_RESPONSE_BYTES
|
|
167
|
+
TELEMETRY_KNOWN_TESTS_RESPONSE_BYTES,
|
|
168
168
|
}
|
|
@@ -15,16 +15,16 @@ function getTestManagementTests ({
|
|
|
15
15
|
sha,
|
|
16
16
|
commitHeadSha,
|
|
17
17
|
commitHeadMessage,
|
|
18
|
-
branch
|
|
18
|
+
branch,
|
|
19
19
|
}, done) {
|
|
20
20
|
const options = {
|
|
21
21
|
path: '/api/v2/test/libraries/test-management/tests',
|
|
22
22
|
method: 'POST',
|
|
23
23
|
headers: {
|
|
24
|
-
'Content-Type': 'application/json'
|
|
24
|
+
'Content-Type': 'application/json',
|
|
25
25
|
},
|
|
26
26
|
timeout: 20_000,
|
|
27
|
-
url
|
|
27
|
+
url,
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
if (isGzipCompatible) {
|
|
@@ -51,9 +51,9 @@ function getTestManagementTests ({
|
|
|
51
51
|
repository_url: repositoryUrl,
|
|
52
52
|
commit_message: commitHeadMessage || commitMessage,
|
|
53
53
|
sha: commitHeadSha || sha,
|
|
54
|
-
branch
|
|
55
|
-
}
|
|
56
|
-
}
|
|
54
|
+
branch,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
57
|
})
|
|
58
58
|
|
|
59
59
|
log.debug('Requesting test management tests: %s', data)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { writeFileSync } = require('node:fs')
|
|
4
|
+
const { tmpdir } = require('node:os')
|
|
5
|
+
const { randomUUID } = require('node:crypto')
|
|
6
|
+
const path = require('node:path')
|
|
7
|
+
|
|
8
|
+
const { getValueFromEnvSources } = require('../config/helper')
|
|
9
|
+
const log = require('../log')
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Gets the test optimization settings cache file path from the env var.
|
|
13
|
+
* @returns {string|undefined} The cache file path, or undefined if not set.
|
|
14
|
+
*/
|
|
15
|
+
function getSettingsCachePath () {
|
|
16
|
+
return getValueFromEnvSources('DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE')
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Sets up the test optimization settings cache file path.
|
|
21
|
+
* Returns the existing path if already set, otherwise creates a new one.
|
|
22
|
+
* @returns {string} The cache file path.
|
|
23
|
+
*/
|
|
24
|
+
function setupSettingsCachePath () {
|
|
25
|
+
const existing = getSettingsCachePath()
|
|
26
|
+
if (existing) {
|
|
27
|
+
return existing
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const cacheFilePath = path.join(tmpdir(), `dd-test-optimization-${randomUUID()}.json`)
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line eslint-rules/eslint-process-env
|
|
33
|
+
process.env.DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE = cacheFilePath
|
|
34
|
+
|
|
35
|
+
return cacheFilePath
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Writes the settings to the cache file specified by DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE.
|
|
40
|
+
* Does nothing if the env var is not set.
|
|
41
|
+
* @param {object} settings - The settings object to cache.
|
|
42
|
+
*/
|
|
43
|
+
function writeSettingsToCache (settings) {
|
|
44
|
+
const settingsCachePath = getSettingsCachePath()
|
|
45
|
+
if (!settingsCachePath) {
|
|
46
|
+
return
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
writeFileSync(settingsCachePath, JSON.stringify(settings), 'utf8')
|
|
51
|
+
log.debug('Settings written to %s', settingsCachePath)
|
|
52
|
+
} catch (err) {
|
|
53
|
+
log.error('Failed to write settings to cache file', err)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
module.exports = {
|
|
58
|
+
getSettingsCachePath,
|
|
59
|
+
setupSettingsCachePath,
|
|
60
|
+
writeSettingsToCache,
|
|
61
|
+
}
|
|
@@ -35,7 +35,7 @@ function getGitMetadataFromGitProperties (gitPropertiesString) {
|
|
|
35
35
|
|
|
36
36
|
return {
|
|
37
37
|
commitSHA: commitSHAMatch ? commitSHAMatch[1] : undefined,
|
|
38
|
-
repositoryUrl: removeUserSensitiveInfo(repositoryUrl)
|
|
38
|
+
repositoryUrl: removeUserSensitiveInfo(repositoryUrl),
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -43,8 +43,8 @@ function loadStableConfig () {
|
|
|
43
43
|
stableConfigLoaded = true
|
|
44
44
|
|
|
45
45
|
// Lazy require to avoid circular dependency at module load time.
|
|
46
|
-
const {
|
|
47
|
-
if (
|
|
46
|
+
const { IS_SERVERLESS } = require('../serverless')
|
|
47
|
+
if (IS_SERVERLESS) {
|
|
48
48
|
// Stable config is not supported in serverless environments.
|
|
49
49
|
return
|
|
50
50
|
}
|