diff --git a/.gitmodules b/.gitmodules
index 420ec785e..d16d4fdf7 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,6 @@
[submodule "submodules/rothko"]
path = submodules/rothko
- url = https://github.com/shana/Rothko.git
+ url = https://github.com/haacked/Rothko.git
[submodule "submodules/reactiveui"]
path = submodules/reactiveui
url = https://github.com/shana/ReactiveUI
diff --git a/src/DesignTimeStyleHelper/App.xaml.cs b/src/DesignTimeStyleHelper/App.xaml.cs
index dd7661d51..d9b155f51 100644
--- a/src/DesignTimeStyleHelper/App.xaml.cs
+++ b/src/DesignTimeStyleHelper/App.xaml.cs
@@ -43,7 +43,7 @@ namespace DesignTimeStyleHelper
SComponentModel sc;
[Import]
- public IBrowser Browser;
+ public IVisualStudioBrowser Browser;
[Import]
public ExportFactoryProvider ExportFactoryProvider;
diff --git a/src/DesignTimeStyleHelper/packages.config b/src/DesignTimeStyleHelper/packages.config
index 009b3c7f5..39251e9e0 100644
--- a/src/DesignTimeStyleHelper/packages.config
+++ b/src/DesignTimeStyleHelper/packages.config
@@ -6,4 +6,5 @@
+
\ No newline at end of file
diff --git a/src/GitHub.App/Factories/HostCacheFactory.cs b/src/GitHub.App/Factories/HostCacheFactory.cs
index 27e3cfc50..829790f95 100644
--- a/src/GitHub.App/Factories/HostCacheFactory.cs
+++ b/src/GitHub.App/Factories/HostCacheFactory.cs
@@ -13,10 +13,10 @@ namespace GitHub.Factories
public class HostCacheFactory : IHostCacheFactory
{
readonly Lazy blobCacheFactory;
- readonly Lazy operatingSystem;
+ readonly Lazy operatingSystem;
[ImportingConstructor]
- public HostCacheFactory(Lazy blobCacheFactory, Lazy operatingSystem)
+ public HostCacheFactory(Lazy blobCacheFactory, Lazy operatingSystem)
{
this.blobCacheFactory = blobCacheFactory;
this.operatingSystem = operatingSystem;
@@ -43,7 +43,7 @@ namespace GitHub.Factories
return new HostCache(localMachineCache, userAccountCache);
}
- IOperatingSystemFacade OperatingSystem { get { return operatingSystem.Value; } }
+ IOperatingSystem OperatingSystem { get { return operatingSystem.Value; } }
IBlobCacheFactory BlobCacheFactory { get { return blobCacheFactory.Value; } }
}
}
diff --git a/src/GitHub.App/GitHub.App.csproj b/src/GitHub.App/GitHub.App.csproj
index 0635a58fb..a597f015a 100644
--- a/src/GitHub.App/GitHub.App.csproj
+++ b/src/GitHub.App/GitHub.App.csproj
@@ -63,6 +63,14 @@
False
..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll
+
+ False
+ ..\..\packages\Octokit.0.6.2\lib\net45\Octokit.dll
+
+
+ False
+ ..\..\packages\Octokit.Reactive.0.6.2\lib\net45\Octokit.Reactive.dll
+
diff --git a/src/GitHub.App/Services/Browser.cs b/src/GitHub.App/Services/Browser.cs
index 365ea0df2..14fbcb760 100644
--- a/src/GitHub.App/Services/Browser.cs
+++ b/src/GitHub.App/Services/Browser.cs
@@ -2,13 +2,13 @@
using System.ComponentModel.Composition;
using System.IO;
using GitHub.Services;
-using NLog;
using Rothko;
+using NLog;
namespace GitHub
{
- [Export(typeof(IBrowser))]
- public class Browser : IBrowser
+ [Export(typeof(IVisualStudioBrowser))]
+ public class Browser : IVisualStudioBrowser
{
static readonly Logger log = LogManager.GetCurrentClassLogger();
diff --git a/src/GitHub.App/ViewModels/LoginTabViewModel.cs b/src/GitHub.App/ViewModels/LoginTabViewModel.cs
index 702159329..5718c5f49 100644
--- a/src/GitHub.App/ViewModels/LoginTabViewModel.cs
+++ b/src/GitHub.App/ViewModels/LoginTabViewModel.cs
@@ -21,9 +21,8 @@ namespace GitHub.ViewModels
{
static readonly Logger log = LogManager.GetCurrentClassLogger();
- // TODO: Lets fix it so we don't have to suppress this.
[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
- protected LoginTabViewModel(IRepositoryHosts repositoryHosts, IBrowser browser)
+ protected LoginTabViewModel(IRepositoryHosts repositoryHosts, IVisualStudioBrowser browser)
{
RepositoryHosts = repositoryHosts;
diff --git a/src/GitHub.App/ViewModels/LoginToGitHubForEnterpriseViewModel.cs b/src/GitHub.App/ViewModels/LoginToGitHubForEnterpriseViewModel.cs
index b9c373e25..a72da626f 100644
--- a/src/GitHub.App/ViewModels/LoginToGitHubForEnterpriseViewModel.cs
+++ b/src/GitHub.App/ViewModels/LoginToGitHubForEnterpriseViewModel.cs
@@ -18,7 +18,7 @@ namespace GitHub.ViewModels
public class LoginToGitHubForEnterpriseViewModel : LoginTabViewModel, ILoginToGitHubForEnterpriseViewModel
{
[ImportingConstructor]
- public LoginToGitHubForEnterpriseViewModel(IRepositoryHosts hosts, IBrowser browser) : base(hosts, browser)
+ public LoginToGitHubForEnterpriseViewModel(IRepositoryHosts hosts, IVisualStudioBrowser browser) : base(hosts, browser)
{
enterpriseUrlValidator = ReactivePropertyValidator.For(this, x => x.EnterpriseUrl)
.IfNullOrEmpty("Please enter an Enterprise URL")
diff --git a/src/GitHub.App/ViewModels/LoginToGitHubViewModel.cs b/src/GitHub.App/ViewModels/LoginToGitHubViewModel.cs
index b1b25d08a..b678e4cb3 100644
--- a/src/GitHub.App/ViewModels/LoginToGitHubViewModel.cs
+++ b/src/GitHub.App/ViewModels/LoginToGitHubViewModel.cs
@@ -16,7 +16,7 @@ namespace GitHub.ViewModels
readonly Uri baseUri;
[ImportingConstructor]
- public LoginToGitHubViewModel(IRepositoryHosts repositoryHosts, IBrowser browser)
+ public LoginToGitHubViewModel(IRepositoryHosts repositoryHosts, IVisualStudioBrowser browser)
: base(repositoryHosts, browser)
{
baseUri = repositoryHosts.GitHubHost.Address.WebUri;
diff --git a/src/GitHub.App/ViewModels/TwoFactorDialogViewModel.cs b/src/GitHub.App/ViewModels/TwoFactorDialogViewModel.cs
index 51dca5a6a..b3522dd49 100644
--- a/src/GitHub.App/ViewModels/TwoFactorDialogViewModel.cs
+++ b/src/GitHub.App/ViewModels/TwoFactorDialogViewModel.cs
@@ -23,7 +23,7 @@ namespace GitHub.ViewModels
readonly ObservableAsPropertyHelper isSms;
[ImportingConstructor]
- public TwoFactorDialogViewModel(IBrowser browser)
+ public TwoFactorDialogViewModel(IVisualStudioBrowser browser)
{
OkCommand = ReactiveCommand.Create(this.WhenAny(
x => x.AuthenticationCodeValidator.ValidationResult.IsValid,
diff --git a/src/GitHub.Exports/GitHub.Exports.csproj b/src/GitHub.Exports/GitHub.Exports.csproj
index 70c5c237d..e7eb24e6c 100644
--- a/src/GitHub.Exports/GitHub.Exports.csproj
+++ b/src/GitHub.Exports/GitHub.Exports.csproj
@@ -84,7 +84,7 @@
-
+
diff --git a/src/GitHub.Exports/Services/IBrowser.cs b/src/GitHub.Exports/Services/IBrowser.cs
deleted file mode 100644
index 55f875ba3..000000000
--- a/src/GitHub.Exports/Services/IBrowser.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System;
-
-namespace GitHub.Services
-{
- public interface IBrowser
- {
- void OpenUrl(Uri url);
- }
-}
diff --git a/src/GitHub.Exports/Services/IVisualStudioBrowser.cs b/src/GitHub.Exports/Services/IVisualStudioBrowser.cs
new file mode 100644
index 000000000..2a1c3f6c2
--- /dev/null
+++ b/src/GitHub.Exports/Services/IVisualStudioBrowser.cs
@@ -0,0 +1,19 @@
+using System;
+
+namespace GitHub.Services
+{
+ ///
+ /// A service used to navigate to URLs such as GitHub issues, pull requests, etc.
+ ///
+ ///
+ /// This interface is (and needs to be) safe to use within TeamExplorer. It should not pull in other dependencies.
+ ///
+ public interface IVisualStudioBrowser
+ {
+ ///
+ /// Opens the user's default browser to the specified URL.
+ ///
+ /// The absolute URI to open
+ void OpenUrl(Uri url);
+ }
+}
diff --git a/src/GitHub.Extensions.Reactive/GitHub.Extensions.Reactive.csproj b/src/GitHub.Extensions.Reactive/GitHub.Extensions.Reactive.csproj
index f5318caca..a4fe11a2a 100644
--- a/src/GitHub.Extensions.Reactive/GitHub.Extensions.Reactive.csproj
+++ b/src/GitHub.Extensions.Reactive/GitHub.Extensions.Reactive.csproj
@@ -11,7 +11,6 @@
GitHub.Extensions.Reactive
v4.5
512
- 9b778d60
83c06b42
4
true
@@ -51,6 +50,7 @@
False
+ True
..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll
@@ -109,6 +109,7 @@
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
diff --git a/src/GitHub.Extensions/GitHub.Extensions.csproj b/src/GitHub.Extensions/GitHub.Extensions.csproj
index db1a5803b..b6fbaf2ab 100644
--- a/src/GitHub.Extensions/GitHub.Extensions.csproj
+++ b/src/GitHub.Extensions/GitHub.Extensions.csproj
@@ -96,6 +96,7 @@
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
diff --git a/src/GitHub.UI.Reactive/GitHub.UI.Reactive.csproj b/src/GitHub.UI.Reactive/GitHub.UI.Reactive.csproj
index d405278e7..4049e0bf1 100644
--- a/src/GitHub.UI.Reactive/GitHub.UI.Reactive.csproj
+++ b/src/GitHub.UI.Reactive/GitHub.UI.Reactive.csproj
@@ -12,7 +12,11 @@
v4.5
512
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- 86007da4
+ 0264ca35
+ 4
+ true
+ ..\..\script\GitHubVS.ruleset
+ true
true
@@ -47,6 +51,7 @@
False
+ True
..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll
diff --git a/src/GitHub.VisualStudio/Base/TeamExplorerNavigationItemBase.cs b/src/GitHub.VisualStudio/Base/TeamExplorerNavigationItemBase.cs
index 734c1c598..9bb2846b1 100644
--- a/src/GitHub.VisualStudio/Base/TeamExplorerNavigationItemBase.cs
+++ b/src/GitHub.VisualStudio/Base/TeamExplorerNavigationItemBase.cs
@@ -76,7 +76,7 @@ namespace GitHub.VisualStudio.Base
return visible;
}
- protected async void OpenInBrowser(Lazy browser, string endpoint)
+ protected async void OpenInBrowser(Lazy browser, string endpoint)
{
var b = browser.Value;
Debug.Assert(b != null, "Could not create a browser helper instance.");
diff --git a/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj b/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj
index e2b9607de..0ad925d87 100644
--- a/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj
+++ b/src/GitHub.VisualStudio/GitHub.VisualStudio.csproj
@@ -4,7 +4,7 @@
14.0
12.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
- 1fcdc7f2
+ 8fda56e5
@@ -102,6 +102,14 @@
False
..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll
+
+ False
+ ..\..\packages\Octokit.0.6.2\lib\net45\Octokit.dll
+
+
+ False
+ ..\..\packages\Splat.1.6.0\lib\Net45\Splat.dll
+
@@ -359,6 +367,7 @@
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
diff --git a/src/GitHub.VisualStudio/Helpers/Browser.cs b/src/GitHub.VisualStudio/Helpers/Browser.cs
index 32b68c6ba..4baa5f128 100644
--- a/src/GitHub.VisualStudio/Helpers/Browser.cs
+++ b/src/GitHub.VisualStudio/Helpers/Browser.cs
@@ -10,8 +10,8 @@ using Rothko;
namespace GitHub.VisualStudio.Helpers
{
- [Export(typeof(IBrowser))]
- public class Browser : IBrowser
+ [Export(typeof(IVisualStudioBrowser))]
+ public class Browser : IVisualStudioBrowser
{
readonly IServiceProvider serviceProvider;
readonly IProcessStarter processManager;
diff --git a/src/GitHub.VisualStudio/TeamExplorerHome/GraphsNavigationItem.cs b/src/GitHub.VisualStudio/TeamExplorerHome/GraphsNavigationItem.cs
index df10eb057..096d6b40f 100644
--- a/src/GitHub.VisualStudio/TeamExplorerHome/GraphsNavigationItem.cs
+++ b/src/GitHub.VisualStudio/TeamExplorerHome/GraphsNavigationItem.cs
@@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
{
public const string GraphsNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA5";
- readonly Lazy browser;
+ readonly Lazy browser;
[ImportingConstructor]
public GraphsNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
- ISimpleApiClientFactory apiFactory, Lazy browser)
+ ISimpleApiClientFactory apiFactory, Lazy browser)
: base(serviceProvider, apiFactory)
{
this.browser = browser;
diff --git a/src/GitHub.VisualStudio/TeamExplorerHome/IssuesNavigationItem.cs b/src/GitHub.VisualStudio/TeamExplorerHome/IssuesNavigationItem.cs
index 38984d87a..cdddf9250 100644
--- a/src/GitHub.VisualStudio/TeamExplorerHome/IssuesNavigationItem.cs
+++ b/src/GitHub.VisualStudio/TeamExplorerHome/IssuesNavigationItem.cs
@@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
{
public const string IssuesNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA4";
- readonly Lazy browser;
+ readonly Lazy browser;
[ImportingConstructor]
public IssuesNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
- ISimpleApiClientFactory apiFactory, Lazy browser)
+ ISimpleApiClientFactory apiFactory, Lazy browser)
: base(serviceProvider, apiFactory)
{
this.browser = browser;
diff --git a/src/GitHub.VisualStudio/TeamExplorerHome/PullRequestsNavigationItem.cs b/src/GitHub.VisualStudio/TeamExplorerHome/PullRequestsNavigationItem.cs
index bfea00c2a..7e1288bf4 100644
--- a/src/GitHub.VisualStudio/TeamExplorerHome/PullRequestsNavigationItem.cs
+++ b/src/GitHub.VisualStudio/TeamExplorerHome/PullRequestsNavigationItem.cs
@@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
{
public const string PullRequestsNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA3";
- readonly Lazy browser;
+ readonly Lazy browser;
[ImportingConstructor]
public PullRequestsNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
- ISimpleApiClientFactory apiFactory, Lazy browser)
+ ISimpleApiClientFactory apiFactory, Lazy browser)
: base(serviceProvider, apiFactory)
{
this.browser = browser;
diff --git a/src/GitHub.VisualStudio/TeamExplorerHome/PulseNavigationItem.cs b/src/GitHub.VisualStudio/TeamExplorerHome/PulseNavigationItem.cs
index 018e2d982..6bc7d8760 100644
--- a/src/GitHub.VisualStudio/TeamExplorerHome/PulseNavigationItem.cs
+++ b/src/GitHub.VisualStudio/TeamExplorerHome/PulseNavigationItem.cs
@@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
{
public const string PulseNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA2";
- readonly Lazy browser;
+ readonly Lazy browser;
[ImportingConstructor]
public PulseNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
- ISimpleApiClientFactory apiFactory, Lazy browser)
+ ISimpleApiClientFactory apiFactory, Lazy browser)
: base(serviceProvider, apiFactory)
{
this.browser = browser;
diff --git a/src/GitHub.VisualStudio/TeamExplorerHome/WikiNavigationItem.cs b/src/GitHub.VisualStudio/TeamExplorerHome/WikiNavigationItem.cs
index f7baf452a..15683cc07 100644
--- a/src/GitHub.VisualStudio/TeamExplorerHome/WikiNavigationItem.cs
+++ b/src/GitHub.VisualStudio/TeamExplorerHome/WikiNavigationItem.cs
@@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
{
public const string WikiNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA1";
- readonly Lazy browser;
+ readonly Lazy browser;
[ImportingConstructor]
public WikiNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
- ISimpleApiClientFactory apiFactory, Lazy browser)
+ ISimpleApiClientFactory apiFactory, Lazy browser)
: base(serviceProvider, apiFactory)
{
this.browser = browser;
diff --git a/src/UnitTests/GitHub.App/ViewModels/LoginToGitHubViewModelTests.cs b/src/UnitTests/GitHub.App/ViewModels/LoginToGitHubViewModelTests.cs
index 9243535de..fd3eb8492 100644
--- a/src/UnitTests/GitHub.App/ViewModels/LoginToGitHubViewModelTests.cs
+++ b/src/UnitTests/GitHub.App/ViewModels/LoginToGitHubViewModelTests.cs
@@ -18,7 +18,7 @@ public class LoginToGitHubViewModelTests
var gitHubHost = Substitute.For();
gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress);
repositoryHosts.GitHubHost.Returns(gitHubHost);
- var browser = Substitute.For();
+ var browser = Substitute.For();
var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);
loginViewModel.SignUp.Execute(null);
@@ -36,7 +36,7 @@ public class LoginToGitHubViewModelTests
var gitHubHost = Substitute.For();
gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress);
repositoryHosts.GitHubHost.Returns(gitHubHost);
- var browser = Substitute.For();
+ var browser = Substitute.For();
var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);
loginViewModel.ForgotPassword.Execute(null);
diff --git a/submodules/rothko b/submodules/rothko
index 301784394..9a056be65 160000
--- a/submodules/rothko
+++ b/submodules/rothko
@@ -1 +1 @@
-Subproject commit 3017843941b12b73154bdbbb3374503db96fdec8
+Subproject commit 9a056be65686807674e8087e2ec2e6602e82e808