@sentry/cli 2.58.2 → 2.58.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +110 -27
- package/checksums.txt +7 -10
- package/js/helper.d.ts +123 -0
- package/js/helper.js +222 -243
- package/js/index.d.ts +59 -234
- package/js/index.js +53 -49
- package/js/logger.d.ts +6 -0
- package/js/logger.js +7 -10
- package/js/releases/index.d.ts +148 -0
- package/js/releases/index.js +230 -244
- package/js/releases/options/deploys.d.ts +2 -0
- package/js/releases/options/deploys.js +24 -24
- package/js/releases/options/uploadSourcemaps.d.ts +2 -0
- package/js/releases/options/uploadSourcemaps.js +57 -57
- package/js/types.d.ts +230 -0
- package/js/types.js +4 -0
- package/package.json +19 -16
package/js/index.d.ts
CHANGED
|
@@ -1,248 +1,73 @@
|
|
|
1
|
+
export = SentryCli;
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* @typedef {import('./types').SentryCliOptions} SentryCliOptions
|
|
4
|
+
* @typedef {import('./types').SentryCliUploadSourceMapsOptions} SentryCliUploadSourceMapsOptions
|
|
5
|
+
* @typedef {import('./types').SourceMapsPathDescriptor} SourceMapsPathDescriptor
|
|
6
|
+
* @typedef {import('./types').SentryCliNewDeployOptions} SentryCliNewDeployOptions
|
|
7
|
+
* @typedef {import('./types').SentryCliCommitsOptions} SentryCliCommitsOptions
|
|
8
|
+
* @typedef {import('./types').SentryCliReleases} SentryCliReleases
|
|
3
9
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* This option is scheduled for removal in the next major release.
|
|
21
|
-
*/
|
|
22
|
-
apiKey?: string;
|
|
23
|
-
/**
|
|
24
|
-
* Sentry DSN.
|
|
25
|
-
* This value will update `SENTRY_DSN` env variable.
|
|
26
|
-
*/
|
|
27
|
-
dsn?: string;
|
|
28
|
-
/**
|
|
29
|
-
* Organization slug.
|
|
30
|
-
* This value will update `SENTRY_ORG` env variable.
|
|
31
|
-
*/
|
|
32
|
-
org?: string;
|
|
33
|
-
/**
|
|
34
|
-
* Project Project slug.
|
|
35
|
-
* This value will update `SENTRY_PROJECT` env variable.
|
|
36
|
-
*/
|
|
37
|
-
project?: string;
|
|
38
|
-
/**
|
|
39
|
-
* Version control system remote name.
|
|
40
|
-
* This value will update `SENTRY_VCS_REMOTE` env variable.
|
|
41
|
-
*/
|
|
42
|
-
vcsRemote?: string;
|
|
43
|
-
/**
|
|
44
|
-
* If true, all logs are suppressed.
|
|
45
|
-
*/
|
|
46
|
-
silent?: boolean;
|
|
47
|
-
/**
|
|
48
|
-
* A header added to every outgoing network request.
|
|
49
|
-
* This value will update `CUSTOM_HEADER` env variable.
|
|
50
|
-
*/
|
|
51
|
-
customHeader?: string;
|
|
52
|
-
/**
|
|
53
|
-
* Headers added to every outgoing network request.
|
|
54
|
-
* This value does not set any env variable, and is overridden by `customHeader`.
|
|
55
|
-
*/
|
|
56
|
-
headers?: Record<string, string>;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Custom upload-sourcemaps options for a particular `include` path. In this
|
|
61
|
-
* case `paths` takes the place of `include` in the options so as to make it
|
|
62
|
-
* clear that this is not recursive.
|
|
63
|
-
*/
|
|
64
|
-
export type SourceMapsPathDescriptor = Omit<SentryCliUploadSourceMapsOptions, 'include'> & {
|
|
65
|
-
paths: string[];
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
export interface SentryCliUploadSourceMapsOptions {
|
|
69
|
-
/**
|
|
70
|
-
* One or more paths that Sentry CLI should scan recursively for sources.
|
|
71
|
-
* It will upload all .map files and match associated .js files.
|
|
72
|
-
*/
|
|
73
|
-
include: Array<string | SourceMapsPathDescriptor>;
|
|
74
|
-
/**
|
|
75
|
-
* One or more paths to ignore during upload. Overrides entries in ignoreFile file.
|
|
76
|
-
*/
|
|
77
|
-
ignore?: string[];
|
|
78
|
-
/**
|
|
79
|
-
* Path to a file containing list of files/directories to ignore.
|
|
80
|
-
* Can point to .gitignore or anything with same format.
|
|
81
|
-
*/
|
|
82
|
-
ignoreFile?: string | null;
|
|
83
|
-
/**
|
|
84
|
-
* Enables rewriting of matching sourcemaps so that indexed maps are flattened
|
|
85
|
-
* and missing sources are inlined if possible. Defaults to `true`.
|
|
86
|
-
*/
|
|
87
|
-
rewrite?: boolean;
|
|
88
|
-
/**
|
|
89
|
-
* This prevents the automatic detection of sourcemap references.
|
|
90
|
-
*/
|
|
91
|
-
sourceMapReference?: boolean;
|
|
92
|
-
/**
|
|
93
|
-
* Enables files gzip decompression prior to uploading. Defaults to `false`.
|
|
94
|
-
*/
|
|
95
|
-
decompress?: boolean;
|
|
96
|
-
/**
|
|
97
|
-
* Enable artifacts deduplication prior to uploading. This will skip uploading
|
|
98
|
-
* any artifacts that are already present on the server. Defaults to `true`.
|
|
99
|
-
*/
|
|
100
|
-
dedupe?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* When paired with the rewrite option this will remove a prefix from uploaded files.
|
|
103
|
-
* For instance you can use this to remove a path that is build machine specific.
|
|
104
|
-
*/
|
|
105
|
-
stripPrefix?: string[];
|
|
106
|
-
/**
|
|
107
|
-
* When paired with the rewrite option this will add ~ to the stripPrefix array.
|
|
108
|
-
*/
|
|
109
|
-
stripCommonPrefix?: boolean;
|
|
110
|
-
/**
|
|
111
|
-
* The projects to upload the sourcemaps to. If not provided, the sourcemaps will be uploaded to the default project.
|
|
112
|
-
*/
|
|
113
|
-
projects?: string[];
|
|
114
|
-
/**
|
|
115
|
-
* This attempts sourcemap validation before upload when rewriting is not enabled.
|
|
116
|
-
* It will spot a variety of issues with source maps and cancel the upload if any are found.
|
|
117
|
-
* This is not enabled by default as this can cause false positives.
|
|
118
|
-
*/
|
|
119
|
-
validate?: boolean;
|
|
120
|
-
/**
|
|
121
|
-
* This sets an URL prefix at the beginning of all files.
|
|
122
|
-
* This defaults to `~/` but you might want to set this to the full URL.
|
|
123
|
-
* This is also useful if your files are stored in a sub folder. eg: url-prefix `~/static/js`.
|
|
124
|
-
*/
|
|
125
|
-
urlPrefix?: string;
|
|
126
|
-
/**
|
|
127
|
-
* This sets an URL suffix at the end of all files.
|
|
128
|
-
* Useful for appending query parameters.
|
|
129
|
-
*/
|
|
130
|
-
urlSuffix?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Interface to and wrapper around the `sentry-cli` executable.
|
|
12
|
+
*
|
|
13
|
+
* Commands are grouped into namespaces. See the respective namespaces for more
|
|
14
|
+
* documentation. To use this wrapper, simply create an instance and call methods:
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* const cli = new SentryCli();
|
|
18
|
+
* console.log(SentryCli.getVersion());
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const cli = new SentryCli('path/to/custom/sentry.properties');
|
|
22
|
+
* const release = await cli.releases.proposeVersion());
|
|
23
|
+
* console.log(release);
|
|
24
|
+
*/
|
|
25
|
+
declare class SentryCli {
|
|
131
26
|
/**
|
|
132
|
-
*
|
|
133
|
-
*
|
|
27
|
+
* Returns the version of the installed `sentry-cli` binary.
|
|
28
|
+
* @returns {string}
|
|
134
29
|
*/
|
|
135
|
-
|
|
30
|
+
static getVersion(): string;
|
|
136
31
|
/**
|
|
137
|
-
*
|
|
138
|
-
*
|
|
32
|
+
* Returns an absolute path to the `sentry-cli` binary.
|
|
33
|
+
* @returns {string}
|
|
139
34
|
*/
|
|
140
|
-
|
|
35
|
+
static getPath(): string;
|
|
141
36
|
/**
|
|
142
|
-
*
|
|
143
|
-
* even when the Sentry server does not declare support for it.
|
|
37
|
+
* Creates a new `SentryCli` instance.
|
|
144
38
|
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
|
|
148
|
-
useArtifactBundle?: boolean;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
export interface SentryCliNewDeployOptions {
|
|
152
|
-
/**
|
|
153
|
-
* Environment for this release. Values that make sense here would be `production` or `staging`.
|
|
154
|
-
*/
|
|
155
|
-
env: string;
|
|
156
|
-
/**
|
|
157
|
-
* Deployment start time in Unix timestamp (in seconds) or ISO 8601 format.
|
|
158
|
-
*/
|
|
159
|
-
started?: number | string;
|
|
160
|
-
/**
|
|
161
|
-
* Deployment finish time in Unix timestamp (in seconds) or ISO 8601 format.
|
|
162
|
-
*/
|
|
163
|
-
finished?: number | string;
|
|
164
|
-
/**
|
|
165
|
-
* Deployment duration (in seconds). Can be used instead of started and finished.
|
|
166
|
-
*/
|
|
167
|
-
time?: number;
|
|
168
|
-
/**
|
|
169
|
-
* Human readable name for the deployment.
|
|
170
|
-
*/
|
|
171
|
-
name?: string;
|
|
172
|
-
/**
|
|
173
|
-
* URL that points to the deployment.
|
|
174
|
-
*/
|
|
175
|
-
url?: string;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export interface SentryCliCommitsOptions {
|
|
179
|
-
/**
|
|
180
|
-
* Automatically choose the associated commit (uses the current commit). Overrides other setCommit options.
|
|
181
|
-
*/
|
|
182
|
-
auto?: boolean;
|
|
183
|
-
/**
|
|
184
|
-
* The full repo name as defined in Sentry. Required if auto option is not true.
|
|
185
|
-
*/
|
|
186
|
-
repo?: string;
|
|
187
|
-
/**
|
|
188
|
-
* The current (last) commit in the release. Required if auto option is not true.
|
|
189
|
-
*/
|
|
190
|
-
commit?: string;
|
|
191
|
-
/**
|
|
192
|
-
* The commit before the beginning of this release (in other words, the last commit of the previous release).
|
|
193
|
-
* If omitted, this will default to the last commit of the previous release in Sentry.
|
|
194
|
-
* If there was no previous release, the last 10 commits will be used.
|
|
195
|
-
*/
|
|
196
|
-
previousCommit?: string;
|
|
197
|
-
/**
|
|
198
|
-
* When the flag is set and the previous release commit was not found in the repository, will create a release
|
|
199
|
-
* with the default commits count(or the one specified with `--initial-depth`) instead of failing the command.
|
|
200
|
-
*/
|
|
201
|
-
ignoreMissing?: boolean;
|
|
202
|
-
/**
|
|
203
|
-
* When the flag is set, command will not fail and just exit silently if no new commits for a given release have been found.
|
|
204
|
-
*/
|
|
205
|
-
ignoreEmpty?: boolean;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export interface SentryCliReleases {
|
|
209
|
-
['new'](release: string, options?: { projects: string[] } | string[]): Promise<string>;
|
|
210
|
-
|
|
211
|
-
setCommits(release: string, options: SentryCliCommitsOptions): Promise<string>;
|
|
212
|
-
|
|
213
|
-
finalize(release: string): Promise<string>;
|
|
214
|
-
|
|
215
|
-
proposeVersion(): Promise<string>;
|
|
216
|
-
|
|
217
|
-
uploadSourceMaps(
|
|
218
|
-
release: string,
|
|
219
|
-
options: SentryCliUploadSourceMapsOptions & { live?: boolean | 'rejectOnError' }
|
|
220
|
-
): Promise<string>;
|
|
221
|
-
|
|
222
|
-
listDeploys(release: string): Promise<string>;
|
|
223
|
-
|
|
224
|
-
newDeploy(release: string, options: SentryCliNewDeployOptions): Promise<string>;
|
|
225
|
-
|
|
226
|
-
execute(args: string[], live: boolean | 'rejectOnError'): Promise<string>;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
export default class SentryCli {
|
|
230
|
-
/**
|
|
231
|
-
* Creates a new instance of SentryCli class
|
|
39
|
+
* If the `configFile` parameter is specified, configuration located in the default
|
|
40
|
+
* location and the value specified in the `SENTRY_PROPERTIES` environment variable is
|
|
41
|
+
* overridden.
|
|
232
42
|
*
|
|
233
|
-
* @param configFile Path to Sentry CLI config properties, as described in https://docs.sentry.io/learn/cli/configuration/#properties-files.
|
|
43
|
+
* @param {string | null} [configFile] - Path to Sentry CLI config properties, as described in https://docs.sentry.io/learn/cli/configuration/#properties-files.
|
|
234
44
|
* By default, the config file is looked for upwards from the current path and defaults from ~/.sentryclirc are always loaded.
|
|
235
45
|
* This value will update `SENTRY_PROPERTIES` env variable.
|
|
236
|
-
* @param options
|
|
46
|
+
* @param {SentryCliOptions} [options] - More options to pass to the CLI
|
|
237
47
|
*/
|
|
238
48
|
constructor(configFile?: string | null, options?: SentryCliOptions);
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
49
|
+
configFile: string;
|
|
50
|
+
options: import("./types").SentryCliOptions;
|
|
51
|
+
releases: Releases;
|
|
52
|
+
/**
|
|
53
|
+
* See {helper.execute} docs.
|
|
54
|
+
* @param {string[]} args Command line arguments passed to `sentry-cli`.
|
|
55
|
+
* @param {boolean | 'rejectOnError'} live can be set to:
|
|
56
|
+
* - `true` to inherit stdio to display `sentry-cli` output directly.
|
|
57
|
+
* - `false` to not inherit stdio and return the output as a string.
|
|
58
|
+
* - `'rejectOnError'` to inherit stdio and reject the promise if the command
|
|
59
|
+
* exits with a non-zero exit code.
|
|
60
|
+
* @returns {Promise<string>} A promise that resolves to the standard output.
|
|
61
|
+
*/
|
|
62
|
+
execute(args: string[], live: boolean | "rejectOnError"): Promise<string>;
|
|
63
|
+
}
|
|
64
|
+
declare namespace SentryCli {
|
|
65
|
+
export { SentryCliOptions, SentryCliUploadSourceMapsOptions, SourceMapsPathDescriptor, SentryCliNewDeployOptions, SentryCliCommitsOptions, SentryCliReleases };
|
|
248
66
|
}
|
|
67
|
+
import Releases = require("./releases");
|
|
68
|
+
type SentryCliOptions = import("./types").SentryCliOptions;
|
|
69
|
+
type SentryCliUploadSourceMapsOptions = import("./types").SentryCliUploadSourceMapsOptions;
|
|
70
|
+
type SourceMapsPathDescriptor = import("./types").SourceMapsPathDescriptor;
|
|
71
|
+
type SentryCliNewDeployOptions = import("./types").SentryCliNewDeployOptions;
|
|
72
|
+
type SentryCliCommitsOptions = import("./types").SentryCliCommitsOptions;
|
|
73
|
+
type SentryCliReleases = import("./types").SentryCliReleases;
|
package/js/index.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
2
|
const pkgInfo = require('../package.json');
|
|
4
3
|
const helper = require('./helper');
|
|
5
4
|
const Releases = require('./releases');
|
|
6
|
-
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import('./types').SentryCliOptions} SentryCliOptions
|
|
7
|
+
* @typedef {import('./types').SentryCliUploadSourceMapsOptions} SentryCliUploadSourceMapsOptions
|
|
8
|
+
* @typedef {import('./types').SourceMapsPathDescriptor} SourceMapsPathDescriptor
|
|
9
|
+
* @typedef {import('./types').SentryCliNewDeployOptions} SentryCliNewDeployOptions
|
|
10
|
+
* @typedef {import('./types').SentryCliCommitsOptions} SentryCliCommitsOptions
|
|
11
|
+
* @typedef {import('./types').SentryCliReleases} SentryCliReleases
|
|
12
|
+
*/
|
|
7
13
|
/**
|
|
8
14
|
* Interface to and wrapper around the `sentry-cli` executable.
|
|
9
15
|
*
|
|
@@ -20,53 +26,51 @@ const Releases = require('./releases');
|
|
|
20
26
|
* console.log(release);
|
|
21
27
|
*/
|
|
22
28
|
class SentryCli {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new `SentryCli` instance.
|
|
31
|
+
*
|
|
32
|
+
* If the `configFile` parameter is specified, configuration located in the default
|
|
33
|
+
* location and the value specified in the `SENTRY_PROPERTIES` environment variable is
|
|
34
|
+
* overridden.
|
|
35
|
+
*
|
|
36
|
+
* @param {string | null} [configFile] - Path to Sentry CLI config properties, as described in https://docs.sentry.io/learn/cli/configuration/#properties-files.
|
|
37
|
+
* By default, the config file is looked for upwards from the current path and defaults from ~/.sentryclirc are always loaded.
|
|
38
|
+
* This value will update `SENTRY_PROPERTIES` env variable.
|
|
39
|
+
* @param {SentryCliOptions} [options] - More options to pass to the CLI
|
|
40
|
+
*/
|
|
41
|
+
constructor(configFile, options) {
|
|
42
|
+
if (typeof configFile === 'string') {
|
|
43
|
+
this.configFile = configFile;
|
|
44
|
+
}
|
|
45
|
+
this.options = options || { silent: false };
|
|
46
|
+
this.releases = new Releases(Object.assign(Object.assign({}, this.options), { configFile }));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Returns the version of the installed `sentry-cli` binary.
|
|
50
|
+
* @returns {string}
|
|
51
|
+
*/
|
|
52
|
+
static getVersion() {
|
|
53
|
+
return pkgInfo.version;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Returns an absolute path to the `sentry-cli` binary.
|
|
57
|
+
* @returns {string}
|
|
58
|
+
*/
|
|
59
|
+
static getPath() {
|
|
60
|
+
return helper.getPath();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* See {helper.execute} docs.
|
|
64
|
+
* @param {string[]} args Command line arguments passed to `sentry-cli`.
|
|
65
|
+
* @param {boolean | 'rejectOnError'} live can be set to:
|
|
66
|
+
* - `true` to inherit stdio to display `sentry-cli` output directly.
|
|
67
|
+
* - `false` to not inherit stdio and return the output as a string.
|
|
68
|
+
* - `'rejectOnError'` to inherit stdio and reject the promise if the command
|
|
69
|
+
* exits with a non-zero exit code.
|
|
70
|
+
* @returns {Promise<string>} A promise that resolves to the standard output.
|
|
71
|
+
*/
|
|
72
|
+
execute(args, live) {
|
|
73
|
+
return helper.execute(args, live, this.options.silent, this.configFile, this.options);
|
|
36
74
|
}
|
|
37
|
-
this.options = options || { silent: false };
|
|
38
|
-
this.releases = new Releases({ ...this.options, configFile });
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Returns the version of the installed `sentry-cli` binary.
|
|
43
|
-
* @returns {string}
|
|
44
|
-
*/
|
|
45
|
-
static getVersion() {
|
|
46
|
-
return pkgInfo.version;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Returns an absolute path to the `sentry-cli` binary.
|
|
51
|
-
* @returns {string}
|
|
52
|
-
*/
|
|
53
|
-
static getPath() {
|
|
54
|
-
return helper.getPath();
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* See {helper.execute} docs.
|
|
59
|
-
* @param {string[]} args Command line arguments passed to `sentry-cli`.
|
|
60
|
-
* @param {boolean | 'rejectOnError'} live can be set to:
|
|
61
|
-
* - `true` to inherit stdio to display `sentry-cli` output directly.
|
|
62
|
-
* - `false` to not inherit stdio and return the output as a string.
|
|
63
|
-
* - `'rejectOnError'` to inherit stdio and reject the promise if the command
|
|
64
|
-
* exits with a non-zero exit code.
|
|
65
|
-
* @returns {Promise.<string>} A promise that resolves to the standard output.
|
|
66
|
-
*/
|
|
67
|
-
execute(args, live) {
|
|
68
|
-
return helper.execute(args, live, this.options.silent, this.configFile, this.options);
|
|
69
|
-
}
|
|
70
75
|
}
|
|
71
|
-
|
|
72
76
|
module.exports = SentryCli;
|
package/js/logger.d.ts
ADDED
package/js/logger.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
2
|
const format = require('util').format;
|
|
4
|
-
|
|
5
3
|
module.exports = class Logger {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
4
|
+
constructor(stream) {
|
|
5
|
+
this.stream = stream;
|
|
6
|
+
}
|
|
7
|
+
log() {
|
|
8
|
+
const message = format(...arguments);
|
|
9
|
+
this.stream.write(`[sentry-cli] ${message}\n`);
|
|
10
|
+
}
|
|
14
11
|
};
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
export = Releases;
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {import('../types').SentryCliUploadSourceMapsOptions} SentryCliUploadSourceMapsOptions
|
|
4
|
+
* @typedef {import('../types').SourceMapsPathDescriptor} SourceMapsPathDescriptor
|
|
5
|
+
* @typedef {import('../types').SentryCliNewDeployOptions} SentryCliNewDeployOptions
|
|
6
|
+
* @typedef {import('../types').SentryCliCommitsOptions} SentryCliCommitsOptions
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Manages releases and release artifacts on Sentry.
|
|
10
|
+
* @namespace SentryReleases
|
|
11
|
+
*/
|
|
12
|
+
declare class Releases {
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new `Releases` instance.
|
|
15
|
+
*
|
|
16
|
+
* @param {Object} [options] More options to pass to the CLI
|
|
17
|
+
*/
|
|
18
|
+
constructor(options?: any);
|
|
19
|
+
options: any;
|
|
20
|
+
configFile: any;
|
|
21
|
+
/**
|
|
22
|
+
* Registers a new release with sentry.
|
|
23
|
+
*
|
|
24
|
+
* The given release name should be unique and deterministic. It can later be used to
|
|
25
|
+
* upload artifacts, such as source maps.
|
|
26
|
+
*
|
|
27
|
+
* @param {string} release Unique name of the new release.
|
|
28
|
+
* @param {{projects?: string[]}} [options] The list of project slugs for a release.
|
|
29
|
+
* @returns {Promise<string>} A promise that resolves when the release has been created.
|
|
30
|
+
* @memberof SentryReleases
|
|
31
|
+
*/
|
|
32
|
+
"new"(release: string, options?: {
|
|
33
|
+
projects?: string[];
|
|
34
|
+
}): Promise<string>;
|
|
35
|
+
/**
|
|
36
|
+
* Specifies the set of commits covered in this release.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} release Unique name of the release
|
|
39
|
+
* @param {SentryCliCommitsOptions} options A set of options to configure the commits to include
|
|
40
|
+
* @returns {Promise<string>} A promise that resolves when the commits have been associated
|
|
41
|
+
* @memberof SentryReleases
|
|
42
|
+
*/
|
|
43
|
+
setCommits(release: string, options: SentryCliCommitsOptions): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Marks this release as complete. This should be called once all artifacts has been
|
|
46
|
+
* uploaded.
|
|
47
|
+
*
|
|
48
|
+
* @param {string} release Unique name of the release.
|
|
49
|
+
* @returns {Promise<string>} A promise that resolves when the release has been finalized.
|
|
50
|
+
* @memberof SentryReleases
|
|
51
|
+
*/
|
|
52
|
+
finalize(release: string): Promise<string>;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a unique, deterministic version identifier based on the project type and
|
|
55
|
+
* source files. This identifier can be used as release name.
|
|
56
|
+
*
|
|
57
|
+
* @returns {Promise<string>} A promise that resolves to the version string.
|
|
58
|
+
* @memberof SentryReleases
|
|
59
|
+
*/
|
|
60
|
+
proposeVersion(): Promise<string>;
|
|
61
|
+
/**
|
|
62
|
+
* Scans the given include folders for JavaScript source maps and uploads them to the
|
|
63
|
+
* specified release for processing.
|
|
64
|
+
*
|
|
65
|
+
* The options require an `include` array, which is a list of directories to scan.
|
|
66
|
+
* Additionally, it supports to ignore certain files, validate and preprocess source
|
|
67
|
+
* maps and define a URL prefix.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* await cli.releases.uploadSourceMaps(cli.releases.proposeVersion(), {
|
|
71
|
+
* // required options:
|
|
72
|
+
* include: ['build'],
|
|
73
|
+
*
|
|
74
|
+
* // default options:
|
|
75
|
+
* ignore: ['node_modules'], // globs for files to ignore
|
|
76
|
+
* ignoreFile: null, // path to a file with ignore rules
|
|
77
|
+
* rewrite: false, // preprocess sourcemaps before uploading
|
|
78
|
+
* sourceMapReference: true, // add a source map reference to source files
|
|
79
|
+
* dedupe: true, // deduplicate already uploaded files
|
|
80
|
+
* stripPrefix: [], // remove certain prefixes from filenames
|
|
81
|
+
* stripCommonPrefix: false, // guess common prefixes to remove from filenames
|
|
82
|
+
* validate: false, // validate source maps and cancel the upload on error
|
|
83
|
+
* urlPrefix: '', // add a prefix source map urls after stripping them
|
|
84
|
+
* urlSuffix: '', // add a suffix source map urls after stripping them
|
|
85
|
+
* ext: ['js', 'map', 'jsbundle', 'bundle'], // override file extensions to scan for
|
|
86
|
+
* projects: ['node'], // provide a list of projects
|
|
87
|
+
* decompress: false // decompress gzip files before uploading
|
|
88
|
+
* live: true // whether to inherit stdio to display `sentry-cli` output directly.
|
|
89
|
+
* });
|
|
90
|
+
*
|
|
91
|
+
* @param {string} release Unique name of the release.
|
|
92
|
+
* @param {SentryCliUploadSourceMapsOptions & {live?: boolean | 'rejectOnError'}} options Options to configure the source map upload.
|
|
93
|
+
* @returns {Promise<string[]>} A promise that resolves when the upload has completed successfully.
|
|
94
|
+
* @memberof SentryReleases
|
|
95
|
+
*/
|
|
96
|
+
uploadSourceMaps(release: string, options: SentryCliUploadSourceMapsOptions & {
|
|
97
|
+
live?: boolean | "rejectOnError";
|
|
98
|
+
}): Promise<string[]>;
|
|
99
|
+
/**
|
|
100
|
+
* List all deploys for a given release.
|
|
101
|
+
*
|
|
102
|
+
* @param {string} release Unique name of the release.
|
|
103
|
+
* @returns {Promise<string>} A promise that resolves when the list comes back from the server.
|
|
104
|
+
* @memberof SentryReleases
|
|
105
|
+
*/
|
|
106
|
+
listDeploys(release: string): Promise<string>;
|
|
107
|
+
/**
|
|
108
|
+
* Creates a new release deployment. This should be called after the release has been
|
|
109
|
+
* finalized, while deploying on a given environment.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* await cli.releases.newDeploy(cli.releases.proposeVersion(), {
|
|
113
|
+
* // required options:
|
|
114
|
+
* env: 'production', // environment for this release. Values that make sense here would be 'production' or 'staging'
|
|
115
|
+
*
|
|
116
|
+
* // optional options:
|
|
117
|
+
* started: 42, // unix timestamp when the deployment started
|
|
118
|
+
* finished: 1337, // unix timestamp when the deployment finished
|
|
119
|
+
* time: 1295, // deployment duration in seconds. This can be specified alternatively to `started` and `finished`
|
|
120
|
+
* name: 'PickleRick', // human readable name for this deployment
|
|
121
|
+
* url: 'https://example.com', // URL that points to the deployment
|
|
122
|
+
* });
|
|
123
|
+
*
|
|
124
|
+
* @param {string} release Unique name of the release.
|
|
125
|
+
* @param {SentryCliNewDeployOptions} options Options to configure the new release deploy.
|
|
126
|
+
* @returns {Promise<string>} A promise that resolves when the deploy has been created.
|
|
127
|
+
* @memberof SentryReleases
|
|
128
|
+
*/
|
|
129
|
+
newDeploy(release: string, options: SentryCliNewDeployOptions): Promise<string>;
|
|
130
|
+
/**
|
|
131
|
+
* See {helper.execute} docs.
|
|
132
|
+
* @param {string[]} args Command line arguments passed to `sentry-cli`.
|
|
133
|
+
* @param {boolean | 'rejectOnError'} live can be set to:
|
|
134
|
+
* - `true` to inherit stdio to display `sentry-cli` output directly.
|
|
135
|
+
* - `false` to not inherit stdio and return the output as a string.
|
|
136
|
+
* - `'rejectOnError'` to inherit stdio and reject the promise if the command
|
|
137
|
+
* exits with a non-zero exit code.
|
|
138
|
+
* @returns {Promise<string>} A promise that resolves to the standard output.
|
|
139
|
+
*/
|
|
140
|
+
execute(args: string[], live: boolean | "rejectOnError"): Promise<string>;
|
|
141
|
+
}
|
|
142
|
+
declare namespace Releases {
|
|
143
|
+
export { SentryCliUploadSourceMapsOptions, SourceMapsPathDescriptor, SentryCliNewDeployOptions, SentryCliCommitsOptions };
|
|
144
|
+
}
|
|
145
|
+
type SentryCliUploadSourceMapsOptions = import("../types").SentryCliUploadSourceMapsOptions;
|
|
146
|
+
type SourceMapsPathDescriptor = import("../types").SourceMapsPathDescriptor;
|
|
147
|
+
type SentryCliNewDeployOptions = import("../types").SentryCliNewDeployOptions;
|
|
148
|
+
type SentryCliCommitsOptions = import("../types").SentryCliCommitsOptions;
|