using System; using System.Globalization; namespace Octokit.Internal { class TokenAuthenticator : IAuthenticationHandler { /// ///Authenticate a request using the OAuth2 Token (sent in a header) authentication scheme /// ///The request to authenticate ///The credentials to attach to the request /// ///See the OAuth2 Token (sent in a header) documentation for more information. /// public void Authenticate(IRequest request, Credentials credentials) { Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(credentials, "credentials"); Ensure.ArgumentNotNull(credentials.Password, "credentials.Password"); var token = credentials.GetToken(); if (credentials.Login != null) { throw new InvalidOperationException("The Login is not null for a token authentication request. You " + "probably did something wrong."); } if (token != null) { request.Headers["Authorization"] = string.Format(CultureInfo.InvariantCulture, "Token {0}", token); } } } }