* [html5] fix danger file wehn renaming files.
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/83dd1e5e Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/83dd1e5e Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/83dd1e5e Branch: refs/heads/0.16-dev Commit: 83dd1e5e274a45c5d1b20f58fa14617e4ec32481 Parents: 30687e7 Author: MrRaindrop <tekk...@gmail.com> Authored: Fri Jul 28 10:29:17 2017 +0800 Committer: MrRaindrop <tekk...@gmail.com> Committed: Fri Jul 28 11:34:06 2017 +0800 ---------------------------------------------------------------------- dangerfile.js | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/83dd1e5e/dangerfile.js ---------------------------------------------------------------------- diff --git a/dangerfile.js b/dangerfile.js index ac3a5a7..fed5a9b 100644 --- a/dangerfile.js +++ b/dangerfile.js @@ -281,9 +281,10 @@ function findReviewer(resolve, reject) { var fileToDeletedLinesMap = {} var fileToNormalLinesMap = {} var fileToBlamesMap = {} + var repoName = danger.github.pr.base.repo && danger.github.pr.base.repo.name github.pullRequests.get({ owner: danger.github.pr.base.user.login, - repo: danger.github.pr.base.repo.name, + repo: repoName, number: danger.github.pr.number, headers: {Accept: 'application/vnd.github.diff'} }, function (err, result) { @@ -296,7 +297,6 @@ function findReviewer(resolve, reject) { let repoURL = danger.github.pr.base.repo.html_url let fileName = file.replace(/^.*[\\\/]/, '') let blameURL = repoURL + '/blame/' + danger.github.pr.base.ref + '/' + file - // console.log("Getting blame html: " + blameURL) return getContent(blameURL) }); @@ -315,18 +315,25 @@ function getContent(url) { return new Promise((resolve, reject) => { // select http or https module, depending on reqested url const lib = url.startsWith('https') ? require('https') : require('http'); - const request = lib.get(url, (response) => { - // handle http errors - if (response.statusCode < 200 || response.statusCode > 299) { - reject(new Error('Failed to load page, status code: ' + response.statusCode)); - } - // temporary data holder - const body = []; - // on every content chunk, push it to the data array - response.on('data', (chunk) => body.push(chunk)); - // we are done, resolve promise with those joined chunks - response.on('end', () => resolve(body.join(''))); - }); + const request = lib.get(url, (function (url) { + return (response) => { + // handle http errors + if (response.statusCode < 200 || response.statusCode > 299) { + if (response.statusCode === 404) { + // ignore this, probably a renamed file. + return resolve('') + } + reject(new Error('Failed to load page, status code: ' + response.statusCode + ', ' + + ' url: ' + url)); + } + // temporary data holder + const body = []; + // on every content chunk, push it to the data array + response.on('data', (chunk) => body.push(chunk)); + // we are done, resolve promise with those joined chunks + response.on('end', () => resolve(body.join(''))); + } + })(url)); // handle connection errors of the request request.on('error', (err) => reject(err)) })