Skip to content

feat(core): set proper User-Agent header on outgoing HTTP requests#7180

Open
blut-agent wants to merge 2 commits into
yarnpkg:masterfrom
blut-agent:feat/user-agent-header-20260606
Open

feat(core): set proper User-Agent header on outgoing HTTP requests#7180
blut-agent wants to merge 2 commits into
yarnpkg:masterfrom
blut-agent:feat/user-agent-header-20260606

Conversation

@blut-agent

Copy link
Copy Markdown

What

Set a meaningful User-Agent header on all outgoing HTTP requests, changing from the default got (https://github.com/sindresorhus/got) to yarn/<version> node/<node_version>.

Why

As a sys admin, I want package managers to identify themselves with a meaningful User-Agent header, but Yarn 4 currently sends got (https://github.com/sindresorhus/got) instead of identifying itself as Yarn. This makes it impossible to distinguish Yarn traffic and determine its exact version, preventing enforcement of package manager (and their versions) allow-lists across the organization.

Changes

  • packages/yarnpkg-core/sources/httpUtils.ts: Added getDefaultUserAgent() and applyDefaultHeaders() functions. The request() function now applies default headers before passing to requestImpl().
  • packages/yarnpkg-core/tests/httpUtils.test.ts: Updated existing test to expect the User-Agent header, added test for default User-Agent, added test for preserving custom User-Agent headers.

Test Plan

  • Unit tests added for default User-Agent, custom User-Agent preservation, and integration with existing request flow
  • CI passes

Closes #7146

Set a meaningful User-Agent header on all outgoing HTTP requests,
changing from the default 'got (https://github.com/sindresorhus/got)'
to 'yarn/<version> node/<node_version>'.

This allows sys admins to distinguish Yarn traffic and enforce package
manager allow-lists across the organization, matching the convention
already established by npm and pnpm.

Closes yarnpkg#7146
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Set a proper User-Agent header on outgoing HTTP request

1 participant