From 26f80d25bef495d66c080e9bd4327f5de96436df Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Tue, 25 Aug 2015 22:09:38 +0200 Subject: [PATCH] Put smart host detection behind a configuration, fixes #1764 --- lib/core/resolvers/GitRemoteResolver.js | 5 +++++ test/core/resolvers/gitRemoteResolver.js | 18 +++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/lib/core/resolvers/GitRemoteResolver.js b/lib/core/resolvers/GitRemoteResolver.js index 61cf86b0..e5d57624 100644 --- a/lib/core/resolvers/GitRemoteResolver.js +++ b/lib/core/resolvers/GitRemoteResolver.js @@ -191,6 +191,11 @@ GitRemoteResolver.prototype._supportsShallowCloning = function () { return Q.resolve(false); } + + if (!this._host || !this._config.shallowCloneHosts || this._config.shallowCloneHosts.indexOf(this._host) === -1) { + return Q.resolve(false); + } + // Check for protocol - the remote check for hosts supporting shallow cloning is only required for // HTTP or HTTPS, not for Git or SSH. // Also check for hosts that have been checked in a previous request and have been found to support diff --git a/test/core/resolvers/gitRemoteResolver.js b/test/core/resolvers/gitRemoteResolver.js index 039cac49..f90b03c8 100644 --- a/test/core/resolvers/gitRemoteResolver.js +++ b/test/core/resolvers/gitRemoteResolver.js @@ -285,7 +285,7 @@ describe('GitRemoteResolver', function () { */})) ); - var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger); + var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger); resolver._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(false); @@ -305,7 +305,7 @@ describe('GitRemoteResolver', function () { */})) ); - var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger); + var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger); resolver._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(false); @@ -347,7 +347,7 @@ describe('GitRemoteResolver', function () { */})) ); - var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger); + var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger); resolver._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(true); @@ -383,12 +383,12 @@ describe('GitRemoteResolver', function () { } ); - var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger); + var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger); resolver._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(true); - var resolver2 = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger); + var resolver2 = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger); resolver2._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(true); @@ -428,12 +428,12 @@ describe('GitRemoteResolver', function () { } ); - var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig(), logger); + var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger); resolver._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(true); - var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig(), logger); + var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger); resolver2._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(true); @@ -482,12 +482,12 @@ describe('GitRemoteResolver', function () { } ); - var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig(), logger); + var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig({ shallowCloneHosts: ['foo', 'foo.bar.baz'] }), logger); resolver._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(true); - var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig(), logger); + var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig({ shallowCloneHosts: ['foo', 'foo.bar.baz'] }), logger); resolver2._shallowClone().then(function (shallowCloningSupported) { expect(shallowCloningSupported).to.be(true);