Adds missing OAuth login request parameters (#1919)

* Adds support for 'login' parameter
* Adds support for 'allow_signup' parameter

Closes #1918
This commit is contained in:
Patrik Svensson
2019-01-30 12:12:39 +01:00
committed by Ryan Gribble
parent 3e29e0c053
commit 64cecbb264
2 changed files with 17 additions and 2 deletions
+4 -2
View File
@@ -44,8 +44,10 @@ public class OauthClientTests
var request = new OauthLoginRequest("secret")
{
RedirectUri = new Uri("https://example.com/foo?foo=bar"),
Login = "johnDOE",
Scopes = { "foo", "bar" },
State = "canARY"
State = "canARY",
AllowSignup = false
};
var connection = Substitute.For<IConnection>();
connection.BaseAddress.Returns(new Uri("https://api.github.com"));
@@ -54,7 +56,7 @@ public class OauthClientTests
var result = client.GetGitHubLoginUrl(request);
Assert.Equal("/login/oauth/authorize", result.AbsolutePath);
Assert.Equal("?client_id=secret&redirect_uri=https%3A%2F%2Fexample.com%2Ffoo%3Ffoo%3Dbar&scope=foo%2Cbar&state=canARY", result.Query);
Assert.Equal("?client_id=secret&redirect_uri=https%3A%2F%2Fexample.com%2Ffoo%3Ffoo%3Dbar&login=johnDOE&scope=foo%2Cbar&state=canARY&allow_signup=false", result.Query);
}
}
@@ -40,6 +40,12 @@ namespace Octokit
[Parameter(Key = "redirect_uri")]
public Uri RedirectUri { get; set; }
/// <summary>
/// Suggests a specific account to use for signing in and authorizing the app.
/// </summary>
[Parameter(Key = "login")]
public string Login { get; set; }
/// <summary>
/// A set of scopes to request. If not provided, scope defaults to an empty list of scopes for users that dont
/// have a valid token for the app. For users who do already have a valid token for the app, the user wont be
@@ -60,6 +66,13 @@ namespace Octokit
[Parameter(Key = "state")]
public string State { get; set; }
/// <summary>
/// Whether or not unauthenticated users will be offered an option to sign up for GitHub during the OAuth flow.
/// The default is <c>true</c>. Use <c>false</c> in the case that a policy prohibits signups.
/// </summary>
[Parameter(Key = "allow_signup")]
public bool? AllowSignup { get; set; }
internal string DebuggerDisplay
{
get