1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
.TH "NPM-HOOK" "1" "May 2023" "" ""
.SH "NAME"
\fBnpm-hook\fR - Manage registry hooks
.SS "Synopsis"
.P
.RS 2
.nf
npm hook add <pkg> <url> <secret> \[lB]--type=<type>\[rB]
npm hook ls \[lB]pkg\[rB]
npm hook rm <id>
npm hook update <id> <url> <secret>
.fi
.RE
.P
Note: This command is unaware of workspaces.
.SS "Description"
.P
Allows you to manage \fBnpm hooks\fR \fI\(lahttps://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm\(ra\fR, including adding, removing, listing, and updating.
.P
Hooks allow you to configure URL endpoints that will be notified whenever a change happens to any of the supported entity types. Three different types of entities can be watched by hooks: packages, owners, and scopes.
.P
To create a package hook, simply reference the package name.
.P
To create an owner hook, prefix the owner name with \fB~\fR (as in, \fB~youruser\fR).
.P
To create a scope hook, prefix the scope name with \fB@\fR (as in, \fB@yourscope\fR).
.P
The hook \fBid\fR used by \fBupdate\fR and \fBrm\fR are the IDs listed in \fBnpm hook ls\fR for that particular hook.
.P
The shared secret will be sent along to the URL endpoint so you can verify the request came from your own configured hook.
.SS "Example"
.P
Add a hook to watch a package for changes:
.P
.RS 2
.nf
$ npm hook add lodash https://example.com/ my-shared-secret
.fi
.RE
.P
Add a hook to watch packages belonging to the user \fBsubstack\fR:
.P
.RS 2
.nf
$ npm hook add ~substack https://example.com/ my-shared-secret
.fi
.RE
.P
Add a hook to watch packages in the scope \fB@npm\fR
.P
.RS 2
.nf
$ npm hook add @npm https://example.com/ my-shared-secret
.fi
.RE
.P
List all your active hooks:
.P
.RS 2
.nf
$ npm hook ls
.fi
.RE
.P
List your active hooks for the \fBlodash\fR package:
.P
.RS 2
.nf
$ npm hook ls lodash
.fi
.RE
.P
Update an existing hook's url:
.P
.RS 2
.nf
$ npm hook update id-deadbeef https://my-new-website.here/
.fi
.RE
.P
Remove a hook:
.P
.RS 2
.nf
$ npm hook rm id-deadbeef
.fi
.RE
.SS "Configuration"
.SS "\fBregistry\fR"
.RS 0
.IP \(bu 4
Default: "https://registry.npmjs.org/"
.IP \(bu 4
Type: URL
.RE 0
.P
The base URL of the npm registry.
.SS "\fBotp\fR"
.RS 0
.IP \(bu 4
Default: null
.IP \(bu 4
Type: null or String
.RE 0
.P
This is a one-time password from a two-factor authenticator. It's needed when publishing or changing package permissions with \fBnpm access\fR.
.P
If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one.
.SS "See Also"
.RS 0
.IP \(bu 4
\fB"Introducing Hooks" blog post\fR \fI\(lahttps://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm\(ra\fR
.RE 0
|