diff --git a/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs b/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs index 05a8563c..9ccf2107 100644 --- a/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs +++ b/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs @@ -324,6 +324,14 @@ namespace Octokit.Reactive /// IObservableRepositoryCommitsClient Commit { get; } + /// + /// Access GitHub's Releases API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ + /// + IObservableReleasesClient Release { get; } + /// /// Client for managing pull requests. /// diff --git a/Octokit.Reactive/Clients/ObservableReleasesClient.cs b/Octokit.Reactive/Clients/ObservableReleasesClient.cs index 67e40ac0..8c687af1 100644 --- a/Octokit.Reactive/Clients/ObservableReleasesClient.cs +++ b/Octokit.Reactive/Clients/ObservableReleasesClient.cs @@ -14,7 +14,7 @@ namespace Octokit.Reactive { Ensure.ArgumentNotNull(client, "client"); - _client = client.Release; + _client = client.Repository.Release; _connection = client.Connection; } diff --git a/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs b/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs index bad46c87..0ee0fb24 100644 --- a/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs +++ b/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs @@ -37,6 +37,7 @@ namespace Octokit.Reactive Commits = new ObservableRepositoryCommitsClient(client); #pragma warning restore CS0618 // Type or member is obsolete Commit = new ObservableRepositoryCommitsClient(client); + Release = new ObservableReleasesClient(client); DeployKeys = new ObservableRepositoryDeployKeysClient(client); Content = new ObservableRepositoryContentsClient(client); Merging = new ObservableMergingClient(client); @@ -469,6 +470,14 @@ namespace Octokit.Reactive /// public IObservableRepositoryCommitsClient Commit { get; private set; } + /// + /// Access GitHub's Releases API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ + /// + public IObservableReleasesClient Release { get; private set; } + /// /// Client for managing pull requests. /// diff --git a/Octokit.Reactive/IObservableGitHubClient.cs b/Octokit.Reactive/IObservableGitHubClient.cs index 2aac01d1..717ae82a 100644 --- a/Octokit.Reactive/IObservableGitHubClient.cs +++ b/Octokit.Reactive/IObservableGitHubClient.cs @@ -15,6 +15,7 @@ namespace Octokit.Reactive IObservablePullRequestsClient PullRequest { get; } IObservableRepositoriesClient Repository { get; } IObservableGistsClient Gist { get; } + [Obsolete("Use Repository.Release instead")] IObservableReleasesClient Release { get; } IObservableSshKeysClient SshKey { get; } IObservableUsersClient User { get; } diff --git a/Octokit.Reactive/ObservableGitHubClient.cs b/Octokit.Reactive/ObservableGitHubClient.cs index 51fbbc87..9cbaccb4 100644 --- a/Octokit.Reactive/ObservableGitHubClient.cs +++ b/Octokit.Reactive/ObservableGitHubClient.cs @@ -42,7 +42,6 @@ namespace Octokit.Reactive Repository = new ObservableRepositoriesClient(gitHubClient); SshKey = new ObservableSshKeysClient(gitHubClient); User = new ObservableUsersClient(gitHubClient); - Release = new ObservableReleasesClient(gitHubClient); Git = new ObservableGitDatabaseClient(gitHubClient); Gist = new ObservableGistsClient(gitHubClient); Search = new ObservableSearchClient(gitHubClient); @@ -62,7 +61,8 @@ namespace Octokit.Reactive public IObservablePullRequestsClient PullRequest { get; private set; } public IObservableRepositoriesClient Repository { get; private set; } public IObservableGistsClient Gist { get; private set; } - public IObservableReleasesClient Release { get; private set; } + [Obsolete("Use Repository.Release instead")] + public IObservableReleasesClient Release { get { return Repository.Release; } } public IObservableSshKeysClient SshKey { get; private set; } public IObservableUsersClient User { get; private set; } public IObservableNotificationsClient Notification { get; private set; } diff --git a/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs b/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs index e57ac229..13665523 100644 --- a/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs +++ b/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs @@ -20,7 +20,7 @@ public class ReleasesClientTests public TheGetReleasesMethod() { var github = Helper.GetAuthenticatedClient(); - _releaseClient = github.Release; + _releaseClient = github.Repository.Release; _context = github.CreateRepositoryContext("public-repo").Result; } @@ -84,7 +84,7 @@ public class ReleasesClientTests public TheEditMethod() { _github = Helper.GetAuthenticatedClient(); - _releaseClient = _github.Release; + _releaseClient = _github.Repository.Release; _context = _github.CreateRepositoryContext("public-repo").Result; } @@ -143,7 +143,7 @@ public class ReleasesClientTests public TheUploadAssetMethod() { _github = Helper.GetAuthenticatedClient(); - _releaseClient = _github.Release; + _releaseClient = _github.Repository.Release; _context = _github.CreateRepositoryContext("public-repo").Result; } diff --git a/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs b/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs index e17f2a38..3bec9c74 100644 --- a/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs +++ b/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs @@ -52,7 +52,7 @@ namespace Octokit.Tests.Reactive client.Get("fake", "repo", 1); - gitHubClient.Release.Received(1).Get("fake", "repo", 1); + gitHubClient.Repository.Release.Received(1).Get("fake", "repo", 1); } [Fact] @@ -78,7 +78,7 @@ namespace Octokit.Tests.Reactive releasesClient.Create("fake", "repo", data); - gitHubClient.Release.Received(1).Create("fake", "repo", data); + gitHubClient.Repository.Release.Received(1).Create("fake", "repo", data); } [Fact] @@ -105,7 +105,7 @@ namespace Octokit.Tests.Reactive releasesClient.Edit("fake", "repo", 1, data); - gitHubClient.Release.Received(1).Edit("fake", "repo", 1, data); + gitHubClient.Repository.Release.Received(1).Edit("fake", "repo", 1, data); } [Fact] @@ -132,7 +132,7 @@ namespace Octokit.Tests.Reactive client.Delete("fake", "repo", 1); - gitHubClient.Release.Received(1).Delete("fake", "repo", 1); + gitHubClient.Repository.Release.Received(1).Delete("fake", "repo", 1); } [Fact] @@ -186,7 +186,7 @@ namespace Octokit.Tests.Reactive releasesClient.UploadAsset(release, upload); - gitHubClient.Release.Received(1).UploadAsset(release, upload); + gitHubClient.Repository.Release.Received(1).UploadAsset(release, upload); } [Fact] @@ -212,7 +212,7 @@ namespace Octokit.Tests.Reactive client.GetAsset("fake", "repo", 1); - gitHubClient.Release.Received(1).GetAsset("fake", "repo", 1); + gitHubClient.Repository.Release.Received(1).GetAsset("fake", "repo", 1); } [Fact] @@ -238,7 +238,7 @@ namespace Octokit.Tests.Reactive client.EditAsset("fake", "repo", 1, data); - gitHubClient.Release.Received(1).EditAsset("fake", "repo", 1, data); + gitHubClient.Repository.Release.Received(1).EditAsset("fake", "repo", 1, data); } [Fact] diff --git a/Octokit/Clients/IRepositoriesClient.cs b/Octokit/Clients/IRepositoriesClient.cs index 321691a3..654a4231 100644 --- a/Octokit/Clients/IRepositoriesClient.cs +++ b/Octokit/Clients/IRepositoriesClient.cs @@ -270,6 +270,14 @@ namespace Octokit /// IRepositoryCommitsClient Commit { get; } + /// + /// Access GitHub's Releases API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ + /// + IReleasesClient Release { get; } + /// /// Client for GitHub's Repository Merging API /// diff --git a/Octokit/Clients/RepositoriesClient.cs b/Octokit/Clients/RepositoriesClient.cs index 6b30dfc1..8360a970 100644 --- a/Octokit/Clients/RepositoriesClient.cs +++ b/Octokit/Clients/RepositoriesClient.cs @@ -40,6 +40,7 @@ namespace Octokit Commits = new RepositoryCommitsClient(apiConnection); #pragma warning restore CS0618 // Type or member is obsolete Commit = new RepositoryCommitsClient(apiConnection); + Release = new ReleasesClient(apiConnection); DeployKeys = new RepositoryDeployKeysClient(apiConnection); Merging = new MergingClient(apiConnection); Content = new RepositoryContentsClient(apiConnection); @@ -390,6 +391,14 @@ namespace Octokit /// public IRepositoryCommitsClient Commit { get; private set; } + /// + /// Access GitHub's Releases API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ + /// + public IReleasesClient Release { get; private set; } + /// /// Client for GitHub's Repository Merging API /// diff --git a/Octokit/GitHubClient.cs b/Octokit/GitHubClient.cs index c26d54bd..b59830a6 100644 --- a/Octokit/GitHubClient.cs +++ b/Octokit/GitHubClient.cs @@ -92,7 +92,6 @@ namespace Octokit PullRequest = new PullRequestsClient(apiConnection); Repository = new RepositoriesClient(apiConnection); Gist = new GistsClient(apiConnection); - Release = new ReleasesClient(apiConnection); User = new UsersClient(apiConnection); SshKey = new SshKeysClient(apiConnection); Git = new GitDatabaseClient(apiConnection); @@ -215,14 +214,17 @@ namespace Octokit /// public IGistsClient Gist { get; private set; } - // TODO: this should be under Repositories to align with the API docs /// /// Access GitHub's Releases API. /// /// /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ /// - public IReleasesClient Release { get; private set; } + [Obsolete("Use Repository.Release instead")] + public IReleasesClient Release + { + get { return Repository.Release; } + } // TODO: this should be under Users to align with the API docs // TODO: this should be named PublicKeys to align with the API docs diff --git a/Octokit/IGitHubClient.cs b/Octokit/IGitHubClient.cs index 2d1cee63..d5b97ad4 100644 --- a/Octokit/IGitHubClient.cs +++ b/Octokit/IGitHubClient.cs @@ -2,7 +2,7 @@ namespace Octokit { - /// + /// /// A Client for the GitHub API v3. You can read more about the api here: http://developer.github.com. /// public interface IGitHubClient : IApiInfoProvider @@ -91,6 +91,7 @@ namespace Octokit /// /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ /// + [Obsolete("Use Repository.Release instead")] IReleasesClient Release { get; } // TODO: this should be under Users to align with the API docs