From 7113d607c4e99ba39f9c0d3b850f4a72e8004b74 Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Mon, 27 Oct 2014 22:36:22 -0400 Subject: Update github specific code to be git host agnostic --- lib/bugs.js | 41 +++++++++-------------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) (limited to 'lib/bugs.js') diff --git a/lib/bugs.js b/lib/bugs.js index 306d9bb4b..f1a4d44a6 100644 --- a/lib/bugs.js +++ b/lib/bugs.js @@ -1,4 +1,3 @@ - module.exports = bugs bugs.usage = "npm bugs " @@ -6,11 +5,10 @@ bugs.usage = "npm bugs " var npm = require("./npm.js") , log = require("npmlog") , opener = require("opener") - , path = require("path") - , readJson = require("read-package-json") - , npa = require("npm-package-arg") - , fs = require("fs") + , hostedGitInfo = require('hosted-git-info') + , fetchPackageMetadata = require("./fetch-package-metadata.js") , mapToRegistry = require("./utils/map-to-registry.js") + , registry = npm.registry bugs.completion = function (opts, cb) { // FIXME: there used to be registry completion here, but it stopped making @@ -19,17 +17,10 @@ bugs.completion = function (opts, cb) { } function bugs (args, cb) { - var n = args.length && npa(args[0]).name || "." - fs.stat(n, function (er, s) { - if (er) { - if (er.code === "ENOENT") return callRegistry(n, cb) - return cb(er) - } - if (!s.isDirectory()) return callRegistry(n, cb) - readJson(path.resolve(n, "package.json"), function(er, d) { - if (er) return cb(er) - getUrlAndOpen(d, cb) - }) + var n = args.length ? args[0] : "." + fetchPackageMetadata(n, ".", function(er, d) { + if (er) return cb(er) + getUrlAndOpen(d, cb) }) } @@ -43,10 +34,8 @@ function getUrlAndOpen (d, cb) { if (Array.isArray(repo)) repo = repo.shift() if (repo.hasOwnProperty("url")) repo = repo.url log.verbose("bugs", "repository", repo) - if (repo && repo.match(/^(https?:\/\/|git(:\/\/|@))github.com/)) { - url = repo.replace(/^git(@|:\/\/)/, "https://") - .replace(/^https?:\/\/github.com:/, "https://github.com/") - .replace(/\.git$/, "")+"/issues" + if (bugs && hostedGitInfo.fromUrl(bugs)) { + url = hostedGitInfo.fromUrl(bugs).bugs() } } if (!url) { @@ -55,15 +44,3 @@ function getUrlAndOpen (d, cb) { log.silly("bugs", "url", url) opener(url, { command: npm.config.get("browser") }, cb) } - -function callRegistry (name, cb) { - mapToRegistry(name, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri + "/latest", { auth : auth }, function (er, d) { - if (er) return cb(er) - - getUrlAndOpen(d, cb) - }) - }) -} -- cgit v1.2.3