diff --git a/Octokit.Reactive/Clients/IObservableGitDatabaseClient.cs b/Octokit.Reactive/Clients/IObservableGitDatabaseClient.cs
new file mode 100644
index 00000000..8c984fb6
--- /dev/null
+++ b/Octokit.Reactive/Clients/IObservableGitDatabaseClient.cs
@@ -0,0 +1,10 @@
+namespace Octokit.Reactive
+{
+ ///
+ /// Used to maintain api structure therefore contains no methods
+ ///
+ public interface IObservableGitDatabaseClient
+ {
+ IObservableTagsClient Tag { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Octokit.Reactive/Clients/ObservableGitDatabaseClient.cs b/Octokit.Reactive/Clients/ObservableGitDatabaseClient.cs
new file mode 100644
index 00000000..c39ca562
--- /dev/null
+++ b/Octokit.Reactive/Clients/ObservableGitDatabaseClient.cs
@@ -0,0 +1,12 @@
+namespace Octokit.Reactive
+{
+ public class ObservableGitDatabaseClient : IObservableGitDatabaseClient
+ {
+ public ObservableGitDatabaseClient(IGitHubClient client)
+ {
+ this.Tag = new ObservableTagsClient(client);
+ }
+
+ public IObservableTagsClient Tag { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Octokit.Reactive/Clients/ObservableTagsClient.cs b/Octokit.Reactive/Clients/ObservableTagsClient.cs
index 9c001a45..08bcf721 100644
--- a/Octokit.Reactive/Clients/ObservableTagsClient.cs
+++ b/Octokit.Reactive/Clients/ObservableTagsClient.cs
@@ -11,7 +11,7 @@ namespace Octokit.Reactive
{
Ensure.ArgumentNotNull(client, "client");
- this._client = client.Tag;
+ this._client = client.GitDatabase.Tag;
}
public IObservable Get(string owner, string name, string reference)
diff --git a/Octokit.Reactive/IObservableGitHubClient.cs b/Octokit.Reactive/IObservableGitHubClient.cs
index f315196b..60f6854d 100644
--- a/Octokit.Reactive/IObservableGitHubClient.cs
+++ b/Octokit.Reactive/IObservableGitHubClient.cs
@@ -10,5 +10,6 @@
IObservableRepositoriesClient Repository { get; }
IObservableSshKeysClient SshKey { get; }
IObservableUsersClient User { get; }
+ IObservableGitDatabaseClient GitDatabase { get; }
}
}
\ No newline at end of file
diff --git a/Octokit.Reactive/ObservableGitHubClient.cs b/Octokit.Reactive/ObservableGitHubClient.cs
index ba15a9b7..290d4ee1 100644
--- a/Octokit.Reactive/ObservableGitHubClient.cs
+++ b/Octokit.Reactive/ObservableGitHubClient.cs
@@ -41,6 +41,7 @@ namespace Octokit.Reactive
SshKey = new ObservableSshKeysClient(gitHubClient);
User = new ObservableUsersClient(gitHubClient);
Release = new ObservableReleasesClient(gitHubClient);
+ GitDatabase = new ObservableGitDatabaseClient(gitHubClient);
}
public IConnection Connection
@@ -56,5 +57,6 @@ namespace Octokit.Reactive
public IObservableReleasesClient Release { get; private set; }
public IObservableSshKeysClient SshKey { get; private set; }
public IObservableUsersClient User { get; private set; }
+ public IObservableGitDatabaseClient GitDatabase { get; private set; }
}
}
diff --git a/Octokit.Reactive/Octokit.Reactive.csproj b/Octokit.Reactive/Octokit.Reactive.csproj
index a75729f7..6cbfd9be 100644
--- a/Octokit.Reactive/Octokit.Reactive.csproj
+++ b/Octokit.Reactive/Octokit.Reactive.csproj
@@ -71,6 +71,8 @@
Properties\SolutionInfo.cs
+
+
diff --git a/Octokit.Tests/Clients/GitDatabaseClientTests.cs b/Octokit.Tests/Clients/GitDatabaseClientTests.cs
new file mode 100644
index 00000000..e51924b0
--- /dev/null
+++ b/Octokit.Tests/Clients/GitDatabaseClientTests.cs
@@ -0,0 +1,24 @@
+using System;
+using NSubstitute;
+using Octokit;
+using Xunit;
+
+public class GitDatabaseClientTests
+{
+ public class TheCtor
+ {
+ [Fact]
+ public void EnsuresArgument()
+ {
+ Assert.Throws(() => new GitDatabaseClient(null));
+ }
+
+ [Fact]
+ public void SetChildClients()
+ {
+ var apiConnection = Substitute.For();
+ var gitDatabaseClient = new GitDatabaseClient(apiConnection);
+ Assert.NotNull(gitDatabaseClient.Tag);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Octokit.Tests/Octokit.Tests.csproj b/Octokit.Tests/Octokit.Tests.csproj
index 974ad4f2..3b8383c9 100644
--- a/Octokit.Tests/Octokit.Tests.csproj
+++ b/Octokit.Tests/Octokit.Tests.csproj
@@ -62,6 +62,7 @@
+
diff --git a/Octokit/Clients/GitDatabaseClient.cs b/Octokit/Clients/GitDatabaseClient.cs
new file mode 100644
index 00000000..e55a82f2
--- /dev/null
+++ b/Octokit/Clients/GitDatabaseClient.cs
@@ -0,0 +1,13 @@
+namespace Octokit
+{
+ public class GitDatabaseClient : ApiClient, IGitDatabaseClient
+ {
+ public GitDatabaseClient(IApiConnection apiConnection)
+ : base(apiConnection)
+ {
+ this.Tag = new TagsClient(apiConnection);
+ }
+
+ public ITagsClient Tag { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Octokit/Clients/IGitDatabaseClient.cs b/Octokit/Clients/IGitDatabaseClient.cs
new file mode 100644
index 00000000..6bd46eb4
--- /dev/null
+++ b/Octokit/Clients/IGitDatabaseClient.cs
@@ -0,0 +1,10 @@
+namespace Octokit
+{
+ ///
+ /// Used to maintain api structure therefore contains no methods
+ ///
+ public interface IGitDatabaseClient
+ {
+ ITagsClient Tag { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Octokit/GitHubClient.cs b/Octokit/GitHubClient.cs
index 23d92402..42bcfb5b 100644
--- a/Octokit/GitHubClient.cs
+++ b/Octokit/GitHubClient.cs
@@ -88,7 +88,7 @@ namespace Octokit
Release = new ReleasesClient(apiConnection);
User = new UsersClient(apiConnection);
SshKey = new SshKeysClient(apiConnection);
- Tag = new TagsClient(apiConnection);
+ GitDatabase = new GitDatabaseClient(apiConnection);
}
///
@@ -134,7 +134,7 @@ namespace Octokit
public ISshKeysClient SshKey { get; private set; }
public IUsersClient User { get; private set; }
public INotificationsClient Notification { get; private set; }
- public ITagsClient Tag { get; private set; }
+ public IGitDatabaseClient GitDatabase { get; private set; }
static Uri FixUpBaseUri(Uri uri)
{
diff --git a/Octokit/IGitHubClient.cs b/Octokit/IGitHubClient.cs
index c5ef775d..f9f5032b 100644
--- a/Octokit/IGitHubClient.cs
+++ b/Octokit/IGitHubClient.cs
@@ -15,6 +15,6 @@ namespace Octokit
ISshKeysClient SshKey { get; }
IUsersClient User { get; }
INotificationsClient Notification { get; }
- ITagsClient Tag { get; }
+ IGitDatabaseClient GitDatabase { get; }
}
}
diff --git a/Octokit/Octokit-netcore45.csproj b/Octokit/Octokit-netcore45.csproj
index 4802ce28..ef3c99f4 100644
--- a/Octokit/Octokit-netcore45.csproj
+++ b/Octokit/Octokit-netcore45.csproj
@@ -49,9 +49,11 @@
+
+
diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj
index a1823e33..a00eec68 100644
--- a/Octokit/Octokit.csproj
+++ b/Octokit/Octokit.csproj
@@ -52,7 +52,9 @@
+
+