fix(yarn): revert default proxy behavior (#28100)

This commit is contained in:
Rhys Arkins 2024-03-24 09:51:57 +01:00 committed by GitHub
parent e8493c5f27
commit 792bbb4e87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 9 additions and 6 deletions

View file

@ -177,6 +177,6 @@ Don't combine with `redisUrl`, Redis would be preferred over SQlite.
Suppress the pre-commit support warning in PR bodies.
## `RENOVATE_X_YARN_IGNORE_PROXY`
## `RENOVATE_X_YARN_PROXY`
Skip configuring global Yarn proxy settings if HTTP proxy environment variables are detected.
Configure global Yarn proxy settings if HTTP proxy environment variables are detected.

View file

@ -48,6 +48,7 @@ describe('modules/manager/npm/post-update/yarn', () => {
delete process.env.BUILDPACK;
delete process.env.HTTP_PROXY;
delete process.env.HTTPS_PROXY;
delete process.env.RENOVATE_X_YARN_PROXY;
Fixtures.reset();
GlobalConfig.set({ localDir: '.', cacheDir: '/tmp/cache' });
removeDockerContainer.mockResolvedValue();
@ -152,6 +153,7 @@ describe('modules/manager/npm/post-update/yarn', () => {
it('sets http proxy', async () => {
process.env.HTTP_PROXY = 'http://proxy';
process.env.HTTPS_PROXY = 'http://proxy';
process.env.RENOVATE_X_YARN_PROXY = 'true';
GlobalConfig.set({
localDir: '.',
allowScripts: true,

View file

@ -210,7 +210,7 @@ export async function generateLockFile(
commands.push(`yarn set version ${quote(yarnUpdate.newValue!)}`);
}
if (!process.env.RENOVATE_X_YARN_IGNORE_PROXY) {
if (process.env.RENOVATE_X_YARN_PROXY) {
if (process.env.HTTP_PROXY && !isYarn1) {
commands.push('yarn config unset --home httpProxy');
commands.push(

View file

@ -17,9 +17,10 @@ If Renovate detects a `packageManager` setting for Yarn in `package.json` then i
#### HTTP Proxy Support
Yarn itself does not natively recognize/support the `HTTP_PROXY` and `HTTPS_PROXY` environment variables.
If Renovate detects Yarn 2+, and one or both of those variables are present, then it will run commands like `yarn config set --home httpProxy http://proxy` prior to executing `yarn install`.
You can configure `RENOVATE_X_YARN_PROXY=true` as an environment variable to enable configuring of Yarn proxy (e.g. if you cannot configure these proxy settings yourself in `~/.yarnrc.yml`).
If set, and Renovate detects Yarn 2+, and one or both of those variables are present, then Renovate will run commands like `yarn config set --home httpProxy http://proxy` prior to executing `yarn install`.
This will result in the `~/.yarnrc.yml` file being created or modified with these settings, and the settings are not removed afterwards.
Configuration/conversion of `NO_PROXY` to Yarn config is not supported.
You can configure `RENOVATE_X_YARN_IGNORE_PROXY=true` as an environment variable to skip the configuring of Yarn proxy (e.g. if you already configure these proxy settings yourself in `~/.yarnrc.yml`);