Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: npm@6.7.0 #141

Merged
merged 15 commits into from
Jan 23, 2019
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,53 @@
## v6.7.0 (2019-01-23):

Hey y'all! This is a quick hotfix release that includes some important fixes to
`npm@6.6.0` related to the large rewrite/refactor. We're tagging it as a feature
release because the changes involve some minor new features, and semver is
semver, but there's nothing major here.

### NEW FEATURES

* [`50463f58b`](https://github.com/npm/cli/commit/50463f58b4b70180a85d6d8c10fcf50d8970ef5e)
Improve usage errors to `npm org` commands and add optional filtering to `npm
org ls` subcommand.
([@zkat](https://github.com/zkat))

### BUGFIXES

* [`4027070b0`](https://github.com/npm/cli/commit/4027070b03be3bdae2515f2291de89b91f901df9)
Fix default usage printout for `npm org` so you actually see how it's supposed
to be used.
([@zkat](https://github.com/zkat))
* [`cfea6ea5b`](https://github.com/npm/cli/commit/cfea6ea5b67ec5e4ec57e3a9cb8c82d018cb5476)
fix default usage message for npm hook
([@zkat](https://github.com/zkat))

### DOCS

* [`e959e1421`](https://github.com/npm/cli/commit/e959e14217d751ddb295565fd75cc81de1ee0d5b)
Add manpage for `npm org` command.
([@zkat](https://github.com/zkat))

### DEPENDENCY BUMPS

* [`8543fc357`](https://github.com/npm/cli/commit/8543fc3576f64e91f7946d4c56a5ffb045b55156)
`pacote@9.4.0`: Fall back to "fullfat" packuments on ETARGET errors. This will
make it so that, when a package is published but the corgi follower hasn't
caught up, users can still install a freshly-published package.
([@zkat](https://github.com/zkat))
* [`75475043b`](https://github.com/npm/cli/commit/75475043b03a254b2e7db2c04c3f0baea31d8dc5)
[npm.community#4752](https://npm.community/t/npm-6-6-0-broke-authentication-with-npm-registry-couchapp/4752)
`libnpmpublish@1.1.1`: Fixes auth error for username/password legacy authentication.
([@sreeramjayan](https://github.com/sreeramjayan))
* [`0af8c00ac`](https://github.com/npm/cli/commit/0af8c00acb01849362ffca25b567cc62447c7175)
[npm.community#4746](https://npm.community/t/npm-6-6-0-release-breaking-docker-npm-ci-commands/4746)
`libcipm@3.0.3`: Fixes issue with "cannot run in wd" errors for run-scripts.
([@zkat](https://github.com/zkat))
* [`5a7962e46`](https://github.com/npm/cli/commit/5a7962e46f582c6bd91784b0ddc941ed45e9f802)
`write-file-atomic@2.4.2`:
Fixes issues with leaking `signal-exit` instances and file descriptors.
([@iarna](https://github.com/iarna))

## v6.6.0 (2019-01-17):

### REFACTORING OUT npm-REGISTRY-CLIENT
Expand Down
50 changes: 50 additions & 0 deletions doc/cli/npm-org.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
npm-org(1) -- Manage orgs
===================================

## SYNOPSIS

npm org set <orgname> <username> [developer | admin | owner]
npm org rm <orgname> <username>
npm org ls <orgname> [<username>]

## EXAMPLE

Add a new developer to an org:
```
$ npm org set my-org @mx-smith
```

Add a new admin to an org (or change a developer to an admin):
```
$ npm org set my-org @mx-santos admin
```

Remove a user from an org:
```
$ npm org rm my-org mx-santos
```

List all users in an org:
```
$ npm org ls my-org
```

List all users in JSON format:
```
$ npm org ls my-org --json
```

See what role a user has in an org:
```
$ npm org ls my-org @mx-santos
```

## DESCRIPTION

You can use the `npm org` commands to manage and view users of an organization.
It supports adding and removing users, changing their roles, listing them, and
finding specific ones and their roles.

## SEE ALSO

* [Documentation on npm Orgs](https://docs.npmjs.com/orgs/)
16 changes: 12 additions & 4 deletions lib/hook.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,14 @@ const otplease = require('./utils/otplease.js')
const pudding = require('figgy-pudding')
const relativeDate = require('tiny-relative-date')
const Table = require('cli-table3')
const usage = require('./utils/usage.js')
const validate = require('aproba')

hook.usage = usage([
hook.usage = [
'npm hook add <pkg> <url> <secret> [--type=<type>]',
'npm hook ls [pkg]',
'npm hook rm <id>',
'npm hook update <id> <url> <secret>'
])
].join('\n')

hook.completion = (opts, cb) => {
validate('OF', [opts, cb])
Expand All @@ -32,7 +31,14 @@ const HookConfig = pudding({
unicode: {}
})

module.exports = (args, cb) => BB.try(() => hook(args)).nodeify(cb)
function UsageError () {
throw Object.assign(new Error(hook.usage), {code: 'EUSAGE'})
}

module.exports = (args, cb) => BB.try(() => hook(args)).then(
val => cb(null, val),
err => err.code === 'EUSAGE' ? cb(err.message) : cb(err)
)
function hook (args) {
return otplease(npmConfig(), opts => {
opts = HookConfig(opts)
Expand All @@ -46,6 +52,8 @@ function hook (args) {
case 'update':
case 'up':
return update(args[1], args[2], args[3], opts)
default:
UsageError()
}
})
}
Expand Down
34 changes: 30 additions & 4 deletions lib/org.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ org.subcommands = ['set', 'rm', 'ls']
org.usage =
'npm org set orgname username [developer | admin | owner]\n' +
'npm org rm orgname username\n' +
'npm org ls orgname'
'npm org ls orgname [<username>]'

const OrgConfig = figgyPudding({
json: {},
Expand Down Expand Up @@ -53,17 +53,27 @@ function org ([cmd, orgname, username, role], cb) {
case 'rm':
return orgRm(orgname, username, opts)
case 'ls':
return orgList(orgname, opts)
return orgList(orgname, username, opts)
default:
UsageError()
}
}).then(
x => cb(null, x),
err => err.code === 'EUSAGE' ? err.message : err
err => cb(err.code === 'EUSAGE' ? err.message : err)
)
}

function orgSet (org, user, role, opts) {
role = role || 'developer'
if (!org) {
throw new Error('First argument `orgname` is required.')
}
if (!user) {
throw new Error('Second argument `username` is required.')
}
if (!['owner', 'admin', 'developer'].find(x => x === role)) {
throw new Error('Third argument `role` must be one of `owner`, `admin`, or `developer`, with `developer` being the default value if omitted.')
}
return liborg.set(org, user, role, opts).then(memDeets => {
if (opts.json) {
output(JSON.stringify(memDeets, null, 2))
Expand All @@ -83,6 +93,12 @@ function orgSet (org, user, role, opts) {
}

function orgRm (org, user, opts) {
if (!org) {
throw new Error('First argument `orgname` is required.')
}
if (!user) {
throw new Error('Second argument `username` is required.')
}
return liborg.rm(org, user, opts).then(() => {
return liborg.ls(org, opts)
}).then(roster => {
Expand All @@ -105,8 +121,18 @@ function orgRm (org, user, opts) {
})
}

function orgList (org, opts) {
function orgList (org, user, opts) {
if (!org) {
throw new Error('First argument `orgname` is required.')
}
return liborg.ls(org, opts).then(roster => {
if (user) {
const newRoster = {}
if (roster[user]) {
newRoster[user] = roster[user]
}
roster = newRoster
}
if (opts.json) {
output(JSON.stringify(roster, null, 2))
} else if (opts.parseable) {
Expand Down
1 change: 1 addition & 0 deletions node_modules/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions node_modules/libcipm/CHANGELOG.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion node_modules/libcipm/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions node_modules/libcipm/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 0 additions & 4 deletions node_modules/libnpm/node_modules/aproba/CHANGELOG.md

This file was deleted.

14 changes: 0 additions & 14 deletions node_modules/libnpm/node_modules/aproba/LICENSE

This file was deleted.

Loading