cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

cli: don't run update-notifier in CI environment - #33

Closed
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier
Closed

cli: don't run update-notifier in CI environment#33
sibiraj-s wants to merge 4 commits into
npm:latestfrom
sibiraj-s:ci-skip-update-notifier

Conversation

@sibiraj-s

Copy link
Copy Markdown

This Prevents update notifier from running in CI environment

@sibiraj-s
sibiraj-s requested a review from a team as a code ownerJuly 28, 2018 07:16
@olore

olore commented Jul 28, 2018

Copy link
Copy Markdown
Contributor

Nice one @sibiraj-s. This and #32 will make the update-notifier work the same as pnpm

@zkat

zkat commented Jul 30, 2018

Copy link
Copy Markdown
Contributor

Ahh, I commented on #32 before seeing this PR. @olore feel free to ignore my comments related to CI itself.

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks a bunch for submitting this PR, and welcome! Just a couple of changes and I think this is ready to go. 🎉

Comment threadbin/npm-cli.js Outdated
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('is-ci')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather use ci-info, since it's what is-ci itself uses. We don't need yet another package.json floating around for a one-liner by the same author. ci-info exports an isCI property that you can achieve the same thing with.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zkat . It seems is-ci is already a part of this package(a dependant of update-notifier). having that now won't make a difference?

Comment threadbin/npm-cli.js Outdated
if (
notifier.update &&
notifier.update.latest !== pkg.version
notifier.update.latest !== pkg.version && !isCI

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind putting this on the next line for consistency?

Comment threadpackage.json Outdated
"inherits",
"ini",
"init-package-json",
"is-ci",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! You added it to bundleDependencies. Additionally, we commit our dependencies, and we use package-lock.json so please go ahead and git add -A node_modules/ package-lock.json as well before you commit the ci-info change I asked for above!

@zkatzkat added semver:minor new backwards-compatible feature in-progress labels Jul 30, 2018
Comment threadbin/npm-cli.js
) {
const pkg = require('../package.json')
let notifier = require('update-notifier')({pkg})
const isCI = require('ci-info').isCI

@iarnaiarnaJul 31, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already detect CI in a handful of places and currently ci-info doesn't entirely align. Then again, our various detectors don't align with each other. Ideally, I'd like to see those patched to use ci-info as well (but not in this PR).

For reference, our existing CI detectors are here:

'progress': !process.env.TRAVIS&&!process.env.CI,

and here:

https://github.com/npm/npm-registry-fetch/blob/03dde52817d00996d8316b155832d8802f338236/config.js#L26

The latter one detects things ci-info doesn't, so ci-info will need patching before we can entirely switch over to it.

There's also:

https://github.com/npm/npm-registry-client/blob/d70399bff938b04cd3ed7052f415c6ed2d6bd275/lib/initialize.js#L15

Which should probably be patched too, though we aren't/won't be using it any more in npm proper.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW: The is-ci module is just a convenience wrapper around ci-info, that when used programmatically returns a boolean and when used from the command line uses the exit code to signal if it's being run on a CI server or not.

Comment threadpackage.json Outdated
"cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
"ci-info": "^1.1.3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still no package-lock.json change in this PR? We'll need that to land this.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iarna I got it. The ci-info is already used as a dependecy of update-notifier

update-notifier -> is-ci -> ci-info

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhhh

that makes sense.

@sibiraj-s

Copy link
Copy Markdown
Author

@iarna . I raised a PR in ci-info for detecting solano-ci. which is the only ci which is not detected by ci-info and used here.

watson/ci-info#9

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

Once @watson gets around to reviewing/approving the ci-info changes, I think we'll be ready to merge this. So I figure I'll ping him 😅

@zkat

zkat commented Aug 13, 2018

Copy link
Copy Markdown
Contributor

As a note for @iarna: I think it's fine and pretty much safe that ci-info uses different env var keys for Bamboo. If one is present, the other one is also present. And if you're being that clever about tricking npm into thinking you're in bamboo, then I dunno what to tell ya. I think it's fine to accept this once ci-info gets the solano patch. Everything else seems to be the same.

Additional note to self: I should probably patch npm-registry-fetch to use this as well. Maybe pacote if this gets merged before we upgrade pacote to the n-r-f version.

@watson

Copy link
Copy Markdown

@zkat Thanks a lot of pinging me on this. I'm so bad at checking github notifications - have a huge backlog 😬

@sibiraj-s

sibiraj-s commented Aug 14, 2018

Copy link
Copy Markdown
Author

ci-info updated to v1.3.1. detects solano-ci

@zkatzkat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 looks good! Thank you @watson and @sibiraj-s!

zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@zkat

zkat commented Aug 20, 2018

Copy link
Copy Markdown
Contributor

I merged this manually, so github isn't gonna detect it as a merge, but this is now in release-next: cabc0f0

@zkatzkat closed this Aug 20, 2018
zkat added a commit that referenced this pull request Aug 20, 2018
PR-URL: #33
Credit: @sibiraj-s
Reviewed-By: @zkat
zkat added a commit that referenced this pull request Aug 20, 2018
@sibiraj-s
sibiraj-s deleted the ci-skip-update-notifier branch August 21, 2018 05:19
@sibiraj-s

Copy link
Copy Markdown
Author

cool. @zkat I would also suggest to update ci-info to v1.4 before the release, as it detects two more popular CI's

mislav added a commit to mislav/npm-cli that referenced this pull request Sep 3, 2018
This is a followup to npm#33 that changes the logic to literally *not* run update-notifier
in CI environment, instead of running it and omitting the result.
koralle pushed a commit to koralle/npm-cli that referenced this pull request Feb 11, 2026
Jah-yee pushed a commit to Jah-yee/cli that referenced this pull request Apr 16, 2026
npm#33)
* feat(error): detect accessNotConfigured and guide users to enable APIs
When the Google API returns a 403 with reason accessNotConfigured,
gws now:
- Extracts the GCP Console enable URL from the error message.
- Adds an optional enable_url field to the JSON error output.
- Prints an actionable hint with the enable URL to stderr.
Also adds extract_enable_url() helper with tests, and a Troubleshooting
section to README.
Fixesnpm#31
* fix(error): trim trailing punctuation from accessNotConfigured enable URL
github-actionsBot referenced this pull request in Kevinlee7250/cli Jun 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 6, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Jul 26, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 14, 2026
github-actionsBot referenced this pull request in Kevinlee7250/cli Aug 20, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minornew backwards-compatible feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@sibiraj-s@olore@zkat@watson@iarna