release-it 14.12.1 → 14.12.2
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/lib/plugin/github/GitHub.js +6 -2
- package/package.json +1 -1
- package/test/github.js +3 -3
- package/test/stub/github.js +15 -8
|
@@ -37,7 +37,7 @@ class GitHub extends Release {
|
|
|
37
37
|
async init() {
|
|
38
38
|
await super.init();
|
|
39
39
|
|
|
40
|
-
const { skipChecks, tokenRef, web, update } = this.options;
|
|
40
|
+
const { skipChecks, tokenRef, web, update, assets } = this.options;
|
|
41
41
|
|
|
42
42
|
if (!this.token || web) {
|
|
43
43
|
if (!web) {
|
|
@@ -48,6 +48,10 @@ class GitHub extends Release {
|
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
if (web && assets) {
|
|
52
|
+
this.log.warn('Assets are not included in web-based releases.');
|
|
53
|
+
}
|
|
54
|
+
|
|
51
55
|
if (!skipChecks) {
|
|
52
56
|
// If we're running on GitHub Actions, we can skip the authentication and
|
|
53
57
|
// collaborator checks. Ref: https://bit.ly/2vsyRzu
|
|
@@ -192,7 +196,7 @@ class GitHub extends Release {
|
|
|
192
196
|
const { version, releaseNotes } = this.getContext();
|
|
193
197
|
const { isPreRelease } = parseVersion(version);
|
|
194
198
|
const name = format(releaseName, this.config.getContext());
|
|
195
|
-
const body = autoGenerate ?
|
|
199
|
+
const body = autoGenerate ? '' : releaseNotes || '';
|
|
196
200
|
|
|
197
201
|
return Object.assign(options, {
|
|
198
202
|
owner,
|
package/package.json
CHANGED
package/test/github.js
CHANGED
|
@@ -15,7 +15,7 @@ const {
|
|
|
15
15
|
const tokenRef = 'GITHUB_TOKEN';
|
|
16
16
|
const pushRepo = 'git://github.com:user/repo';
|
|
17
17
|
const host = 'github.com';
|
|
18
|
-
const git = { changelog:
|
|
18
|
+
const git = { changelog: '' };
|
|
19
19
|
const requestErrorOptions = { request: { url: '', headers: {} }, response: { headers: {} } };
|
|
20
20
|
|
|
21
21
|
test.serial('should check token and perform checks', async t => {
|
|
@@ -89,7 +89,7 @@ test('should create a pre-release and draft release notes', async t => {
|
|
|
89
89
|
|
|
90
90
|
interceptAuthentication();
|
|
91
91
|
interceptCollaborator();
|
|
92
|
-
interceptCreate({ body: { tag_name: '2.0.2', name: 'Release 2.0.2', body:
|
|
92
|
+
interceptCreate({ body: { tag_name: '2.0.2', name: 'Release 2.0.2', body: '', prerelease: true, draft: true } });
|
|
93
93
|
|
|
94
94
|
await runTasks(github);
|
|
95
95
|
|
|
@@ -244,7 +244,7 @@ test('should release to alternative host and proxy', async t => {
|
|
|
244
244
|
test('should release to git.pushRepo', async t => {
|
|
245
245
|
const remote = { api: 'https://my-custom-host.org/api/v3', host: 'my-custom-host.org' };
|
|
246
246
|
interceptCreate(Object.assign({ body: { tag_name: '1.0.1' } }, remote));
|
|
247
|
-
const options = { git: { pushRepo: 'upstream', changelog:
|
|
247
|
+
const options = { git: { pushRepo: 'upstream', changelog: '' }, github: { tokenRef, skipChecks: true } };
|
|
248
248
|
const github = factory(GitHub, { options });
|
|
249
249
|
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
|
250
250
|
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('1.0.0');
|
package/test/stub/github.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
const nock = require('nock');
|
|
2
2
|
|
|
3
|
-
const interceptAuthentication = ({ api = 'https://api.github.com', username = 'john' } = {}) =>
|
|
3
|
+
const interceptAuthentication = ({ api = 'https://api.github.com', username = 'john' } = {}) => {
|
|
4
4
|
nock(api).get('/user').reply(200, {
|
|
5
5
|
login: username
|
|
6
6
|
});
|
|
7
|
+
};
|
|
7
8
|
|
|
8
9
|
const interceptCollaborator = ({
|
|
9
10
|
api = 'https://api.github.com',
|
|
10
11
|
owner = 'user',
|
|
11
12
|
project = 'repo',
|
|
12
13
|
username = 'john'
|
|
13
|
-
} = {}) =>
|
|
14
|
+
} = {}) => {
|
|
15
|
+
nock(api).get(`/repos/${owner}/${project}/collaborators/${username}`).reply(204);
|
|
16
|
+
};
|
|
14
17
|
|
|
15
18
|
const interceptListReleases = ({
|
|
16
19
|
host = 'github.com',
|
|
@@ -18,7 +21,7 @@ const interceptListReleases = ({
|
|
|
18
21
|
owner = 'user',
|
|
19
22
|
project = 'repo',
|
|
20
23
|
tag_name
|
|
21
|
-
} = {}) =>
|
|
24
|
+
} = {}) => {
|
|
22
25
|
nock(api)
|
|
23
26
|
.get(`/repos/${owner}/${project}/releases?per_page=1&page=1`)
|
|
24
27
|
.reply(200, [
|
|
@@ -34,14 +37,15 @@ const interceptListReleases = ({
|
|
|
34
37
|
prerelease: false
|
|
35
38
|
}
|
|
36
39
|
]);
|
|
40
|
+
};
|
|
37
41
|
|
|
38
42
|
const interceptCreate = ({
|
|
39
43
|
api = 'https://api.github.com',
|
|
40
44
|
host = 'github.com',
|
|
41
45
|
owner = 'user',
|
|
42
46
|
project = 'repo',
|
|
43
|
-
body: { tag_name, name = '', body =
|
|
44
|
-
} = {}) =>
|
|
47
|
+
body: { tag_name, name = '', body = '', prerelease = false, draft = false, generate_release_notes = false }
|
|
48
|
+
} = {}) => {
|
|
45
49
|
nock(api)
|
|
46
50
|
.post(`/repos/${owner}/${project}/releases`, {
|
|
47
51
|
tag_name,
|
|
@@ -66,14 +70,15 @@ const interceptCreate = ({
|
|
|
66
70
|
};
|
|
67
71
|
return [200, responseBody, { location: `${api}/repos/${owner}/${project}/releases/${id}` }];
|
|
68
72
|
});
|
|
73
|
+
};
|
|
69
74
|
|
|
70
75
|
const interceptUpdate = ({
|
|
71
76
|
host = 'github.com',
|
|
72
77
|
api = 'https://api.github.com',
|
|
73
78
|
owner = 'user',
|
|
74
79
|
project = 'repo',
|
|
75
|
-
body: { tag_name, name = '', body =
|
|
76
|
-
} = {}) =>
|
|
80
|
+
body: { tag_name, name = '', body = '', prerelease = false, draft = false, generate_release_notes = false }
|
|
81
|
+
} = {}) => {
|
|
77
82
|
nock(api)
|
|
78
83
|
.patch(`/repos/${owner}/${project}/releases/1`, { tag_name, name, body, draft, prerelease, generate_release_notes })
|
|
79
84
|
.reply(200, {
|
|
@@ -87,6 +92,7 @@ const interceptUpdate = ({
|
|
|
87
92
|
upload_url: `https://uploads.${host}/repos/${owner}/${project}/releases/1/assets{?name,label}`,
|
|
88
93
|
html_url: `https://${host}/${owner}/${project}/releases/tag/${tag_name}`
|
|
89
94
|
});
|
|
95
|
+
};
|
|
90
96
|
|
|
91
97
|
const interceptAsset = ({
|
|
92
98
|
api = 'https://api.github.com',
|
|
@@ -95,7 +101,7 @@ const interceptAsset = ({
|
|
|
95
101
|
project = 'repo',
|
|
96
102
|
tagName,
|
|
97
103
|
body = {}
|
|
98
|
-
} = {}) =>
|
|
104
|
+
} = {}) => {
|
|
99
105
|
nock(`https://uploads.${host}`)
|
|
100
106
|
.post(`/repos/${owner}/${project}/releases/1/assets`, body)
|
|
101
107
|
.query(true)
|
|
@@ -112,6 +118,7 @@ const interceptAsset = ({
|
|
|
112
118
|
browser_download_url: `https://${host}/${owner}/${project}/releases/download/${tagName}/${name}`
|
|
113
119
|
};
|
|
114
120
|
});
|
|
121
|
+
};
|
|
115
122
|
|
|
116
123
|
module.exports = {
|
|
117
124
|
interceptAuthentication,
|