diff --git a/lib/services/circle.js b/lib/services/circle.js index a70f036d..e9093688 100644 --- a/lib/services/circle.js +++ b/lib/services/circle.js @@ -13,8 +13,23 @@ module.exports = { commit : process.env.CIRCLE_SHA1, branch : process.env.CIRCLE_BRANCH, pr: process.env.CIRCLE_PR_NUMBER, - slug : process.env.CIRCLE_PROJECT_USERNAME + '/' + process.env.CIRCLE_PROJECT_REPONAME, + slug : detectRepoSlug(), }; + function detectRepoSlug(){ + if (process.env.CIRCLE_PROJECT_REPONAME) { + // CircleCI 1.0 + // CIRCLE_PROJECT_REPONAME=codecov + // CIRCLE_PROJECT_USERNAME=codecov-node + // CIRCLE_REPOSITORY_URL=https://github.com/codecov/codecov-node (note: GitHub Web URL) + return process.env.CIRCLE_PROJECT_USERNAME + '/' + process.env.CIRCLE_PROJECT_REPONAME; + } + if (process.env.CIRCLE_REPOSITORY_URL) { + // CircleCI 2.0 + // CIRCLE_REPOSITORY_URL=git@github.com:codecov/codecov-node.git (note: Git/SSH URL) + return process.env.CIRCLE_REPOSITORY_URL.replace(/^.*:/, '').replace(/\.git$/, ''); + } + throw new Error('Cannot detect repository slug.'); + } } };