diff options
Diffstat (limited to 'lib/utils/hosted-git-info-from-manifest.js')
-rw-r--r-- | lib/utils/hosted-git-info-from-manifest.js | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/utils/hosted-git-info-from-manifest.js b/lib/utils/hosted-git-info-from-manifest.js new file mode 100644 index 000000000..ecb7555b1 --- /dev/null +++ b/lib/utils/hosted-git-info-from-manifest.js @@ -0,0 +1,14 @@ +// given a manifest, try to get the hosted git info from it based on +// repository (if a string) or repository.url (if an object) +// returns null if it's not a valid repo, or not a known hosted repo +const hostedGitInfo = require('hosted-git-info') +module.exports = mani => { + const r = mani.repository + const rurl = !r ? null + : typeof r === 'string' ? r + : typeof r === 'object' && typeof r.url === 'string' ? r.url + : null + + // hgi returns undefined sometimes, but let's always return null here + return rurl && hostedGitInfo.fromUrl(rurl.replace(/^git\+/, '')) || null +} |