Skip to content

Commit a81a825

Browse files
gr2mpvdlg
authored andcommittedDec 15, 2018
fix: when adding labels, expect labels array to be sent in request body for GHE support
1 parent be407ea commit a81a825

File tree

3 files changed

+32
-25
lines changed

3 files changed

+32
-25
lines changed
 

‎lib/success.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,14 @@ module.exports = async (pluginConfig, context) => {
8787

8888
if (releasedLabels) {
8989
const labels = releasedLabels.map(label => template(label)(context));
90-
await github.issues.addLabels({owner, repo, number: issue.number, labels});
90+
// Don’t use .issues.addLabels for GHE < 2.16 support
91+
// https://github.com/semantic-release/github/issues/138
92+
await github.request('POST /repos/:owner/:repo/issues/:number/labels', {
93+
owner,
94+
repo,
95+
number: issue.number,
96+
data: labels,
97+
});
9198
logger.log('Added labels %O to issue #%d', labels, issue.number);
9299
}
93100
} else {

‎test/integration.test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ test.serial('Comment and add labels on PR included in the releases', async t =>
238238
.reply(200, [{sha: commits[0].hash}])
239239
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
240240
.reply(200, {html_url: 'https://github.com/successcomment-1'})
241-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
241+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
242242
.reply(200, {})
243243
.get(
244244
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -332,7 +332,7 @@ test.serial('Verify, release and notify success', async t => {
332332
.reply(200, [{sha: commits[0].hash}])
333333
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
334334
.reply(200, {html_url: 'https://github.com/successcomment-1'})
335-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
335+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
336336
.reply(200, {})
337337
.get(
338338
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -410,7 +410,7 @@ test.serial('Verify, update release and notify success', async t => {
410410
.reply(200, [{sha: commits[0].hash}])
411411
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
412412
.reply(200, {html_url: 'https://github.com/successcomment-1'})
413-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
413+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
414414
.reply(200, {})
415415
.get(
416416
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(

‎test/success.test.js

+21-21
Original file line numberDiff line numberDiff line change
@@ -67,23 +67,23 @@ test.serial(
6767
.reply(200, [{sha: commits[1].hash}])
6868
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/1/comments`, {body: /This PR is included/})
6969
.reply(200, {html_url: 'https://github.com/successcomment-1'})
70-
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/1/labels`, '{"labels":["released"]}')
70+
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/1/labels`, '["released"]')
7171
.reply(200, {})
7272
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/2/comments`, {body: /This PR is included/})
7373
.reply(200, {html_url: 'https://github.com/successcomment-2'})
74-
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/2/labels`, '{"labels":["released"]}')
74+
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/2/labels`, '["released"]')
7575
.reply(200, {})
7676
.get(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3`)
7777
.reply(200, {state: 'closed'})
7878
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3/comments`, {body: /This issue has been resolved/})
7979
.reply(200, {html_url: 'https://github.com/successcomment-3'})
80-
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3/labels`, '{"labels":["released"]}')
80+
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3/labels`, '["released"]')
8181
.reply(200, {})
8282
.get(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4`)
8383
.reply(200, {state: 'closed'})
8484
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4/comments`, {body: /This issue has been resolved/})
8585
.reply(200, {html_url: 'https://github.com/successcomment-4'})
86-
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4/labels`, '{"labels":["released"]}')
86+
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4/labels`, '["released"]')
8787
.reply(200, {})
8888
.get(
8989
`/search/issues?q=${escape('in:title')}+${escape(`repo:${redirectedOwner}/${redirectedRepo}`)}+${escape(
@@ -141,23 +141,23 @@ test.serial(
141141
.reply(200, [{sha: commits[1].hash}])
142142
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
143143
.reply(200, {html_url: 'https://custom-url.com/successcomment-1'})
144-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released on @next"]}')
144+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released on @next"]')
145145
.reply(200, {})
146146
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This PR is included/})
147147
.reply(200, {html_url: 'https://custom-url.com/successcomment-2'})
148-
.post(`/repos/${owner}/${repo}/issues/2/labels`, '{"labels":["released on @next"]}')
148+
.post(`/repos/${owner}/${repo}/issues/2/labels`, '["released on @next"]')
149149
.reply(200, {})
150150
.get(`/repos/${owner}/${repo}/issues/3`)
151151
.reply(200, {state: 'closed'})
152152
.post(`/repos/${owner}/${repo}/issues/3/comments`, {body: /This issue has been resolved/})
153153
.reply(200, {html_url: 'https://custom-url.com/successcomment-3'})
154-
.post(`/repos/${owner}/${repo}/issues/3/labels`, '{"labels":["released on @next"]}')
154+
.post(`/repos/${owner}/${repo}/issues/3/labels`, '["released on @next"]')
155155
.reply(200, {})
156156
.get(`/repos/${owner}/${repo}/issues/4`)
157157
.reply(200, {state: 'closed'})
158158
.post(`/repos/${owner}/${repo}/issues/4/comments`, {body: /This issue has been resolved/})
159159
.reply(200, {html_url: 'https://custom-url.com/successcomment-4'})
160-
.post(`/repos/${owner}/${repo}/issues/4/labels`, '{"labels":["released on @next"]}')
160+
.post(`/repos/${owner}/${repo}/issues/4/labels`, '["released on @next"]')
161161
.reply(200, {})
162162
.get(
163163
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -235,27 +235,27 @@ test.serial('Make multiple search queries if necessary', async t => {
235235
.reply(200, [{sha: commits[5].hash}])
236236
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
237237
.reply(200, {html_url: 'https://github.com/successcomment-1'})
238-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
238+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
239239
.reply(200, {})
240240
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This PR is included/})
241241
.reply(200, {html_url: 'https://github.com/successcomment-2'})
242-
.post(`/repos/${owner}/${repo}/issues/2/labels`, '{"labels":["released"]}')
242+
.post(`/repos/${owner}/${repo}/issues/2/labels`, '["released"]')
243243
.reply(200, {})
244244
.post(`/repos/${owner}/${repo}/issues/3/comments`, {body: /This PR is included/})
245245
.reply(200, {html_url: 'https://github.com/successcomment-3'})
246-
.post(`/repos/${owner}/${repo}/issues/3/labels`, '{"labels":["released"]}')
246+
.post(`/repos/${owner}/${repo}/issues/3/labels`, '["released"]')
247247
.reply(200, {})
248248
.post(`/repos/${owner}/${repo}/issues/4/comments`, {body: /This PR is included/})
249249
.reply(200, {html_url: 'https://github.com/successcomment-4'})
250-
.post(`/repos/${owner}/${repo}/issues/4/labels`, '{"labels":["released"]}')
250+
.post(`/repos/${owner}/${repo}/issues/4/labels`, '["released"]')
251251
.reply(200, {})
252252
.post(`/repos/${owner}/${repo}/issues/5/comments`, {body: /This PR is included/})
253253
.reply(200, {html_url: 'https://github.com/successcomment-5'})
254-
.post(`/repos/${owner}/${repo}/issues/5/labels`, '{"labels":["released"]}')
254+
.post(`/repos/${owner}/${repo}/issues/5/labels`, '["released"]')
255255
.reply(200, {})
256256
.post(`/repos/${owner}/${repo}/issues/6/comments`, {body: /This PR is included/})
257257
.reply(200, {html_url: 'https://github.com/successcomment-6'})
258-
.post(`/repos/${owner}/${repo}/issues/6/labels`, '{"labels":["released"]}')
258+
.post(`/repos/${owner}/${repo}/issues/6/labels`, '["released"]')
259259
.reply(200, {})
260260
.get(
261261
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -313,7 +313,7 @@ test.serial(
313313
.reply(200, {merge_commit_sha: 'unrelated_sha'})
314314
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
315315
.reply(200, {html_url: 'https://github.com/successcomment-1'})
316-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
316+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
317317
.reply(200, {})
318318
.get(
319319
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -354,7 +354,7 @@ test.serial('Do not add comment and labels to open issues/PRs', async t => {
354354
.reply(200, [{sha: commits[0].hash}])
355355
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
356356
.reply(200, {html_url: 'https://github.com/successcomment-1'})
357-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
357+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
358358
.reply(200, {})
359359
.get(`/repos/${owner}/${repo}/issues/2`)
360360
.reply(200, {state: 'open'})
@@ -431,7 +431,7 @@ test.serial('Do not add comment and labels to PR/issues from other repo', async
431431
.reply(200, {state: 'closed'})
432432
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This issue has been resolved/})
433433
.reply(200, {html_url: 'https://github.com/successcomment-2'})
434-
.post(`/repos/${owner}/${repo}/issues/2/labels`, '{"labels":["released"]}')
434+
.post(`/repos/${owner}/${repo}/issues/2/labels`, '["released"]')
435435
.reply(200, {})
436436
.get(
437437
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -476,7 +476,7 @@ test.serial('Ignore missing issues/PRs', async t => {
476476
.reply(200, [{sha: commits[1].hash}])
477477
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
478478
.reply(200, {html_url: 'https://github.com/successcomment-1'})
479-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
479+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
480480
.reply(200, {})
481481
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This PR is included/})
482482
.times(3)
@@ -485,7 +485,7 @@ test.serial('Ignore missing issues/PRs', async t => {
485485
.reply(200, {state: 'closed'})
486486
.post(`/repos/${owner}/${repo}/issues/3/comments`, {body: /This issue has been resolved/})
487487
.reply(200, {html_url: 'https://github.com/successcomment-3'})
488-
.post(`/repos/${owner}/${repo}/issues/3/labels`, '{"labels":["released"]}')
488+
.post(`/repos/${owner}/${repo}/issues/3/labels`, '["released"]')
489489
.reply(200, {})
490490
.get(
491491
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -535,7 +535,7 @@ test.serial('Add custom comment and labels', async t => {
535535
body: /last release: 1\.0\.0 nextRelease: 2\.0\.0 branch: master commits: 1 releases: 1 PR attribute: PR prop/,
536536
})
537537
.reply(200, {html_url: 'https://github.com/successcomment-1'})
538-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released on @next","released from master"]}')
538+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released on @next","released from master"]')
539539
.reply(200, {})
540540
.get(
541541
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
@@ -585,7 +585,7 @@ test.serial('Add custom label', async t => {
585585
.reply(200, [{sha: commits[0].hash}])
586586
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
587587
.reply(200, {html_url: 'https://github.com/successcomment-1'})
588-
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["custom label"]}')
588+
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["custom label"]')
589589
.reply(200, {})
590590
.get(
591591
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(

0 commit comments

Comments
 (0)
Please sign in to comment.