diff --git a/Octokit.Reactive/Clients/IObservableUsersClient.cs b/Octokit.Reactive/Clients/IObservableUsersClient.cs index 6c23a459..e5125ca3 100644 --- a/Octokit.Reactive/Clients/IObservableUsersClient.cs +++ b/Octokit.Reactive/Clients/IObservableUsersClient.cs @@ -50,8 +50,17 @@ namespace Octokit.Reactive /// /// See the Keys API documentation for more information. /// + [Obsolete("Ssh key information is now available under the GitSshKey property. This will be removed in a future update.")] IObservableUserKeysClient Keys { get; } + /// + /// A client for GitHub's User Keys API + /// + /// + /// See the Keys API documentation for more information. + /// + IObservableUserKeysClient GitSshKey { get; } + /// /// A client for GitHub's UserUser GPG Keys API. /// diff --git a/Octokit.Reactive/Clients/ObservableUserKeysClient.cs b/Octokit.Reactive/Clients/ObservableUserKeysClient.cs index cc3590b4..02befe54 100644 --- a/Octokit.Reactive/Clients/ObservableUserKeysClient.cs +++ b/Octokit.Reactive/Clients/ObservableUserKeysClient.cs @@ -19,7 +19,7 @@ namespace Octokit.Reactive { Ensure.ArgumentNotNull(client, "client"); - _client = client.User.Keys; + _client = client.User.GitSshKey; } /// diff --git a/Octokit.Reactive/Clients/ObservableUsersClient.cs b/Octokit.Reactive/Clients/ObservableUsersClient.cs index 30891c4d..79c6c9de 100644 --- a/Octokit.Reactive/Clients/ObservableUsersClient.cs +++ b/Octokit.Reactive/Clients/ObservableUsersClient.cs @@ -16,7 +16,10 @@ namespace Octokit.Reactive Followers = new ObservableFollowersClient(client); Email = new ObservableUserEmailsClient(client); +#pragma warning disable CS0618 // Type or member is obsolete Keys = new ObservableUserKeysClient(client); +#pragma warning restore CS0618 // Type or member is obsolete + GitSshKey = new ObservableUserKeysClient(client); GpgKey = new ObservableUserGpgKeysClient(client); Administration = new ObservableUserAdministrationClient(client); } @@ -77,8 +80,17 @@ namespace Octokit.Reactive /// /// See the Keys API documentation for more information. /// + [Obsolete("Ssh key information is now available under the GitSshKey property. This will be removed in a future update.")] public IObservableUserKeysClient Keys { get; private set; } + /// + /// A client for GitHub's User Keys API + /// + /// + /// See the Keys API documentation for more information. + /// + public IObservableUserKeysClient GitSshKey { get; private set; } + /// /// A client for GitHub's UserUser GPG Keys API. /// diff --git a/Octokit.Tests.Integration/Clients/UserKeysClientTests.cs b/Octokit.Tests.Integration/Clients/UserKeysClientTests.cs index 8a711206..4df8f13f 100644 --- a/Octokit.Tests.Integration/Clients/UserKeysClientTests.cs +++ b/Octokit.Tests.Integration/Clients/UserKeysClientTests.cs @@ -14,7 +14,7 @@ namespace Octokit.Tests.Integration.Clients using (var context = await github.CreatePublicKeyContext()) { - var keys = await github.User.Keys.GetAllForCurrent(); + var keys = await github.User.GitSshKey.GetAllForCurrent(); Assert.NotEmpty(keys); var first = keys[0]; @@ -30,7 +30,7 @@ namespace Octokit.Tests.Integration.Clients { var github = Helper.GetAuthenticatedClient(); - var keys = await github.User.Keys.GetAll("shiftkey"); + var keys = await github.User.GitSshKey.GetAll("shiftkey"); Assert.NotEmpty(keys); var first = keys[0]; @@ -47,7 +47,7 @@ namespace Octokit.Tests.Integration.Clients using (var context = await github.CreatePublicKeyContext()) { - var key = await github.User.Keys.Get(context.KeyId); + var key = await github.User.GitSshKey.Get(context.KeyId); Assert.Equal(key.Title, context.KeyTitle); Assert.Equal(key.Key, context.KeyData); @@ -62,17 +62,17 @@ namespace Octokit.Tests.Integration.Clients string keyData = "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjo4DqFKg8dOxiz/yjypmN1A4itU5QOStyYrfOFuTinesU/2zm9hqxJ5BctIhgtSHJ5foxkhsiBji0qrUg73Q25BThgNg8YFE8njr4EwjmqSqW13akx/zLV0GFFU0SdJ2F6rBldhi93lMnl0ex9swBqa3eLTY8C+HQGBI6MQUMw+BKp0oFkz87Kv+Pfp6lt/Uo32ejSxML1PT5hTH5n+fyl0ied+sRmPGZWmWoHB5Bc9mox7lB6I6A/ZgjtBqbEEn4HQ2/6vp4ojKfSgA4Mm7XMu0bZzX0itKjH1QWD9Lr5apV1cmZsj49Xf8SHucTtH+bq98hb8OOXEGFzplwsX2MQ=="; var github = Helper.GetAuthenticatedClient(); - var key = await github.User.Keys.Create(new NewPublicKey(keyTitle, keyData)); + var key = await github.User.GitSshKey.Create(new NewPublicKey(keyTitle, keyData)); Assert.NotNull(key); Assert.Equal(key.Title, "title"); Assert.Equal(key.Key, keyData); // Delete key - await github.User.Keys.Delete(key.Id); + await github.User.GitSshKey.Delete(key.Id); // Verify key no longer exists - var keys = await github.User.Keys.GetAllForCurrent(); + var keys = await github.User.GitSshKey.GetAllForCurrent(); Assert.False(keys.Any(k => k.Title == keyTitle && k.Key == keyData)); } } diff --git a/Octokit.Tests.Integration/Helper.cs b/Octokit.Tests.Integration/Helper.cs index c4479308..d5225abe 100644 --- a/Octokit.Tests.Integration/Helper.cs +++ b/Octokit.Tests.Integration/Helper.cs @@ -154,7 +154,7 @@ namespace Octokit.Tests.Integration try { var client = new GitHubClient(connection); - client.User.Keys.Delete(keyId).Wait(TimeSpan.FromSeconds(15)); + client.User.GitSshKey.Delete(keyId).Wait(TimeSpan.FromSeconds(15)); } catch { } } diff --git a/Octokit.Tests.Integration/Helpers/GithubClientExtensions.cs b/Octokit.Tests.Integration/Helpers/GithubClientExtensions.cs index f4f2679a..ac7ef4b7 100644 --- a/Octokit.Tests.Integration/Helpers/GithubClientExtensions.cs +++ b/Octokit.Tests.Integration/Helpers/GithubClientExtensions.cs @@ -46,7 +46,7 @@ namespace Octokit.Tests.Integration.Helpers string keyTitle = "title"; string keyData = "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjo4DqFKg8dOxiz/yjypmN1A4itU5QOStyYrfOFuTinesU/2zm9hqxJ5BctIhgtSHJ5foxkhsiBji0qrUg73Q25BThgNg8YFE8njr4EwjmqSqW13akx/zLV0GFFU0SdJ2F6rBldhi93lMnl0ex9swBqa3eLTY8C+HQGBI6MQUMw+BKp0oFkz87Kv+Pfp6lt/Uo32ejSxML1PT5hTH5n+fyl0ied+sRmPGZWmWoHB5Bc9mox7lB6I6A/ZgjtBqbEEn4HQ2/6vp4ojKfSgA4Mm7XMu0bZzX0itKjH1QWD9Lr5apV1cmZsj49Xf8SHucTtH+bq98hb8OOXEGFzplwsX2MQ=="; - var key = await client.User.Keys.Create(new NewPublicKey(keyTitle, keyData)); + var key = await client.User.GitSshKey.Create(new NewPublicKey(keyTitle, keyData)); return new PublicKeyContext(client.Connection, key); } diff --git a/Octokit.Tests.Integration/Helpers/ObservableGithubClientExtensions.cs b/Octokit.Tests.Integration/Helpers/ObservableGithubClientExtensions.cs index 856abdcb..a3073409 100644 --- a/Octokit.Tests.Integration/Helpers/ObservableGithubClientExtensions.cs +++ b/Octokit.Tests.Integration/Helpers/ObservableGithubClientExtensions.cs @@ -48,7 +48,7 @@ namespace Octokit.Tests.Integration.Helpers string keyTitle = "title"; string keyData = "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjo4DqFKg8dOxiz/yjypmN1A4itU5QOStyYrfOFuTinesU/2zm9hqxJ5BctIhgtSHJ5foxkhsiBji0qrUg73Q25BThgNg8YFE8njr4EwjmqSqW13akx/zLV0GFFU0SdJ2F6rBldhi93lMnl0ex9swBqa3eLTY8C+HQGBI6MQUMw+BKp0oFkz87Kv+Pfp6lt/Uo32ejSxML1PT5hTH5n+fyl0ied+sRmPGZWmWoHB5Bc9mox7lB6I6A/ZgjtBqbEEn4HQ2/6vp4ojKfSgA4Mm7XMu0bZzX0itKjH1QWD9Lr5apV1cmZsj49Xf8SHucTtH+bq98hb8OOXEGFzplwsX2MQ=="; - var key = await client.User.Keys.Create(new NewPublicKey(keyTitle, keyData)); + var key = await client.User.GitSshKey.Create(new NewPublicKey(keyTitle, keyData)); return new PublicKeyContext(client.Connection, key); } diff --git a/Octokit.Tests.Integration/Reactive/ObservableUserKeysClientTests.cs b/Octokit.Tests.Integration/Reactive/ObservableUserKeysClientTests.cs index 56a04f1d..864d94ea 100644 --- a/Octokit.Tests.Integration/Reactive/ObservableUserKeysClientTests.cs +++ b/Octokit.Tests.Integration/Reactive/ObservableUserKeysClientTests.cs @@ -21,7 +21,7 @@ namespace Octokit.Tests.Integration.Clients { using (var context = await _github.CreatePublicKeyContext()) { - var observable = _github.User.Keys.GetAllForCurrent(); + var observable = _github.User.GitSshKey.GetAllForCurrent(); var keys = await observable.ToList(); Assert.NotEmpty(keys); @@ -37,7 +37,7 @@ namespace Octokit.Tests.Integration.Clients [IntegrationTest] public async Task CanGetAllForGivenUser() { - var observable = _github.User.Keys.GetAll("shiftkey"); + var observable = _github.User.GitSshKey.GetAll("shiftkey"); var keys = await observable.ToList(); Assert.NotEmpty(keys); @@ -54,7 +54,7 @@ namespace Octokit.Tests.Integration.Clients { using (var context = await _github.CreatePublicKeyContext()) { - var observable = _github.User.Keys.Get(context.KeyId); + var observable = _github.User.GitSshKey.Get(context.KeyId); var key = await observable; Assert.Equal(key.Title, context.KeyTitle); @@ -69,7 +69,7 @@ namespace Octokit.Tests.Integration.Clients string keyTitle = "title"; string keyData = "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjo4DqFKg8dOxiz/yjypmN1A4itU5QOStyYrfOFuTinesU/2zm9hqxJ5BctIhgtSHJ5foxkhsiBji0qrUg73Q25BThgNg8YFE8njr4EwjmqSqW13akx/zLV0GFFU0SdJ2F6rBldhi93lMnl0ex9swBqa3eLTY8C+HQGBI6MQUMw+BKp0oFkz87Kv+Pfp6lt/Uo32ejSxML1PT5hTH5n+fyl0ied+sRmPGZWmWoHB5Bc9mox7lB6I6A/ZgjtBqbEEn4HQ2/6vp4ojKfSgA4Mm7XMu0bZzX0itKjH1QWD9Lr5apV1cmZsj49Xf8SHucTtH+bq98hb8OOXEGFzplwsX2MQ=="; - var observable = _github.User.Keys.Create(new NewPublicKey(keyTitle, keyData)); + var observable = _github.User.GitSshKey.Create(new NewPublicKey(keyTitle, keyData)); var key = await observable; Assert.NotNull(key); @@ -77,10 +77,10 @@ namespace Octokit.Tests.Integration.Clients Assert.Equal(key.Key, keyData); // Delete key - await _github.User.Keys.Delete(key.Id); + await _github.User.GitSshKey.Delete(key.Id); // Verify key no longer exists - var keys = await _github.User.Keys.GetAllForCurrent().ToList(); + var keys = await _github.User.GitSshKey.GetAllForCurrent().ToList(); Assert.False(keys.Any(k => k.Title == keyTitle && k.Key == keyData)); } } diff --git a/Octokit.Tests/Reactive/ObservableUserKeysClientTests.cs b/Octokit.Tests/Reactive/ObservableUserKeysClientTests.cs index 700e5f42..86d1c791 100644 --- a/Octokit.Tests/Reactive/ObservableUserKeysClientTests.cs +++ b/Octokit.Tests/Reactive/ObservableUserKeysClientTests.cs @@ -17,7 +17,7 @@ namespace Octokit.Tests.Reactive client.GetAllForCurrent(); - gitHubClient.User.Keys.Received().GetAllForCurrent(Arg.Any()); + gitHubClient.User.GitSshKey.Received().GetAllForCurrent(Arg.Any()); } } @@ -31,7 +31,7 @@ namespace Octokit.Tests.Reactive client.GetAll("auser"); - gitHubClient.User.Keys.Received().GetAll("auser", Arg.Any()); + gitHubClient.User.GitSshKey.Received().GetAll("auser", Arg.Any()); } } @@ -45,7 +45,7 @@ namespace Octokit.Tests.Reactive client.Get(1); - gitHubClient.User.Keys.Received().Get(1); + gitHubClient.User.GitSshKey.Received().Get(1); } } @@ -59,7 +59,7 @@ namespace Octokit.Tests.Reactive client.Create(new NewPublicKey("title", "ABCDEFG")); - gitHubClient.User.Keys.Received().Create( + gitHubClient.User.GitSshKey.Received().Create( Arg.Is(a => a.Title == "title" && a.Key == "ABCDEFG")); @@ -76,7 +76,7 @@ namespace Octokit.Tests.Reactive client.Delete(1); - gitHubClient.User.Keys.Received().Delete(1); + gitHubClient.User.GitSshKey.Received().Delete(1); } } diff --git a/Octokit/Clients/IUsersClient.cs b/Octokit/Clients/IUsersClient.cs index 93c5fc34..73008554 100644 --- a/Octokit/Clients/IUsersClient.cs +++ b/Octokit/Clients/IUsersClient.cs @@ -1,4 +1,5 @@ -using System.Diagnostics.CodeAnalysis; +using System; +using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; namespace Octokit @@ -25,8 +26,17 @@ namespace Octokit /// /// See the Keys API documentation for more information. /// + [Obsolete("Ssh key information is now available under the GitSshKey property. This will be removed in a future update.")] IUserKeysClient Keys { get; } + /// + /// A client for GitHub's User Keys API + /// + /// + /// See the Keys API documentation for more information. + /// + IUserKeysClient GitSshKey { get; } + [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gpg")] IUserGpgKeysClient GpgKey { get; } diff --git a/Octokit/Clients/UsersClient.cs b/Octokit/Clients/UsersClient.cs index 1b98e13b..3b12832b 100644 --- a/Octokit/Clients/UsersClient.cs +++ b/Octokit/Clients/UsersClient.cs @@ -21,7 +21,10 @@ namespace Octokit { Email = new UserEmailsClient(apiConnection); Followers = new FollowersClient(apiConnection); +#pragma warning disable CS0618 // Type or member is obsolete Keys = new UserKeysClient(apiConnection); +#pragma warning restore CS0618 // Type or member is obsolete + GitSshKey = new UserKeysClient(apiConnection); GpgKey = new UserGpgKeysClient(apiConnection); Administration = new UserAdministrationClient(apiConnection); @@ -41,8 +44,17 @@ namespace Octokit /// /// See the Keys API documentation for more information. /// + [Obsolete("Ssh key information is now available under the GitSshKey property. This will be removed in a future update.")] public IUserKeysClient Keys { get; private set; } + /// + /// A client for GitHub's User Keys API + /// + /// + /// See the Keys API documentation for more information. + /// + public IUserKeysClient GitSshKey { get; private set; } + /// /// A client for GitHub's UserUser GPG Keys API. ///