Skip to content

Commit

Permalink
fix: when adding labels, expect labels array to be sent in request bo…
Browse files Browse the repository at this point in the history
…dy for GHE support
  • Loading branch information
gr2m authored and pvdlg committed Dec 15, 2018
1 parent aef7e23 commit 8421388
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 24 deletions.
9 changes: 8 additions & 1 deletion lib/success.js
Expand Up @@ -87,7 +87,14 @@ module.exports = async (pluginConfig, context) => {
logger.log('Added comment to issue #%d: %s', issue.number, url);

if (releasedLabels) {
await github.issues.addLabels({owner, repo, number: issue.number, labels: releasedLabels});
// Don’t use .issues.addLabels for GHE < 2.16 support
// https://github.com/semantic-release/github/issues/138
await github.request('POST /repos/:owner/:repo/issues/:number/labels', {
owner,
repo,
number: issue.number,
data: releasedLabels,
});
logger.log('Added labels %O to issue #%d', releasedLabels, issue.number);
}
} else {
Expand Down
4 changes: 2 additions & 2 deletions test/integration.test.js
Expand Up @@ -202,7 +202,7 @@ test.serial('Comment and add labels on PR included in the releases', async t =>
.reply(200, [{sha: commits[0].hash}])
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down Expand Up @@ -297,7 +297,7 @@ test.serial('Verify, release and notify success', async t => {
.reply(200, [{sha: commits[0].hash}])
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down
42 changes: 21 additions & 21 deletions test/success.test.js
Expand Up @@ -67,23 +67,23 @@ test.serial(
.reply(200, [{sha: commits[1].hash}])
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/1/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/2/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-2'})
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/2/labels`, '{"labels":["released"]}')
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/2/labels`, '["released"]')
.reply(200, {})
.get(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3`)
.reply(200, {state: 'closed'})
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3/comments`, {body: /This issue has been resolved/})
.reply(200, {html_url: 'https://github.com/successcomment-3'})
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3/labels`, '{"labels":["released"]}')
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/3/labels`, '["released"]')
.reply(200, {})
.get(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4`)
.reply(200, {state: 'closed'})
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4/comments`, {body: /This issue has been resolved/})
.reply(200, {html_url: 'https://github.com/successcomment-4'})
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4/labels`, '{"labels":["released"]}')
.post(`/repos/${redirectedOwner}/${redirectedRepo}/issues/4/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${redirectedOwner}/${redirectedRepo}`)}+${escape(
Expand Down Expand Up @@ -141,23 +141,23 @@ test.serial(
.reply(200, [{sha: commits[1].hash}])
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://custom-url.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://custom-url.com/successcomment-2'})
.post(`/repos/${owner}/${repo}/issues/2/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/2/labels`, '["released"]')
.reply(200, {})
.get(`/repos/${owner}/${repo}/issues/3`)
.reply(200, {state: 'closed'})
.post(`/repos/${owner}/${repo}/issues/3/comments`, {body: /This issue has been resolved/})
.reply(200, {html_url: 'https://custom-url.com/successcomment-3'})
.post(`/repos/${owner}/${repo}/issues/3/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/3/labels`, '["released"]')
.reply(200, {})
.get(`/repos/${owner}/${repo}/issues/4`)
.reply(200, {state: 'closed'})
.post(`/repos/${owner}/${repo}/issues/4/comments`, {body: /This issue has been resolved/})
.reply(200, {html_url: 'https://custom-url.com/successcomment-4'})
.post(`/repos/${owner}/${repo}/issues/4/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/4/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down Expand Up @@ -235,27 +235,27 @@ test.serial('Make multiple search queries if necessary', async t => {
.reply(200, [{sha: commits[5].hash}])
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-2'})
.post(`/repos/${owner}/${repo}/issues/2/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/2/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${owner}/${repo}/issues/3/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-3'})
.post(`/repos/${owner}/${repo}/issues/3/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/3/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${owner}/${repo}/issues/4/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-4'})
.post(`/repos/${owner}/${repo}/issues/4/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/4/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${owner}/${repo}/issues/5/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-5'})
.post(`/repos/${owner}/${repo}/issues/5/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/5/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${owner}/${repo}/issues/6/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-6'})
.post(`/repos/${owner}/${repo}/issues/6/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/6/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down Expand Up @@ -313,7 +313,7 @@ test.serial(
.reply(200, {merge_commit_sha: 'unrelated_sha'})
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down Expand Up @@ -354,7 +354,7 @@ test.serial('Do not add comment and labels to open issues/PRs', async t => {
.reply(200, [{sha: commits[0].hash}])
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.get(`/repos/${owner}/${repo}/issues/2`)
.reply(200, {state: 'open'})
Expand Down Expand Up @@ -431,7 +431,7 @@ test.serial('Do not add comment and labels to PR/issues from other repo', async
.reply(200, {state: 'closed'})
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This issue has been resolved/})
.reply(200, {html_url: 'https://github.com/successcomment-2'})
.post(`/repos/${owner}/${repo}/issues/2/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/2/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down Expand Up @@ -476,7 +476,7 @@ test.serial('Ignore missing issues/PRs', async t => {
.reply(200, [{sha: commits[1].hash}])
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.post(`/repos/${owner}/${repo}/issues/2/comments`, {body: /This PR is included/})
.times(3)
Expand All @@ -485,7 +485,7 @@ test.serial('Ignore missing issues/PRs', async t => {
.reply(200, {state: 'closed'})
.post(`/repos/${owner}/${repo}/issues/3/comments`, {body: /This issue has been resolved/})
.reply(200, {html_url: 'https://github.com/successcomment-3'})
.post(`/repos/${owner}/${repo}/issues/3/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/3/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down Expand Up @@ -534,7 +534,7 @@ test.serial('Add custom comment', async t => {
body: /last release: 1\.0\.0 nextRelease: 2\.0\.0 branch: master commits: 1 releases: 1 PR attribute: PR prop/,
})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["released"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["released"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down Expand Up @@ -575,7 +575,7 @@ test.serial('Add custom label', async t => {
.reply(200, [{sha: commits[0].hash}])
.post(`/repos/${owner}/${repo}/issues/1/comments`, {body: /This PR is included/})
.reply(200, {html_url: 'https://github.com/successcomment-1'})
.post(`/repos/${owner}/${repo}/issues/1/labels`, '{"labels":["custom label"]}')
.post(`/repos/${owner}/${repo}/issues/1/labels`, '["custom label"]')
.reply(200, {})
.get(
`/search/issues?q=${escape('in:title')}+${escape(`repo:${owner}/${repo}`)}+${escape('type:issue')}+${escape(
Expand Down

0 comments on commit 8421388

Please sign in to comment.