Ejemplo n.º 1
0
        private IPrincipal GetUserFromGraph(string code, HttpContextBase context)
        {
            bool acomAuthRequest   = context.Request.QueryString["referer"] == "acom";
            var  githubAccessToken = new GitHubAccessTokenResponse();

            if (!acomAuthRequest)
            {
                // treat code a regular code
                var githubAccessTokenResponse = AuthUtilities.GetContentFromGitHubUrl(GetGraphUrl(code, context), "POST",
                                                                                      jsonAccept: true);

                githubAccessToken =
                    JsonConvert.DeserializeObject <GitHubAccessTokenResponse>(githubAccessTokenResponse);

                if (string.IsNullOrEmpty(githubAccessToken.AccessToken))
                {
                    return(null);
                }
            }

            //Now get user's emailid
            var githubUserEmailsResponse = AuthUtilities.GetContentFromGitHubUrl(GetGitHubUserUrl(), addGitHubHeaders: true, AuthorizationHeader: GetGitHubAuthHeader(acomAuthRequest? code: githubAccessToken.AccessToken));
            var githubUserEmails         = JsonConvert.DeserializeObject <IList <GitHubUserEmailResponse> >(githubUserEmailsResponse);
            var primaryEmail             = githubUserEmails.FirstOrDefault(em => em.Primary && em.Verified);

            if (primaryEmail == null)
            {
                return(null);
            }
            return(new TryWebsitesPrincipal(new TryWebsitesIdentity(primaryEmail.Email, primaryEmail.Email, "GitHub")));
        }
Ejemplo n.º 2
0
 public void Factories_GetGitHubAccessToken()
 {
     RunTest("Factories_GetGitHubAccessToken", (example, client, responseCode) =>
     {
         GitHubAccessTokenRequest request   = new GitHubAccessTokenRequest("someCode", "https://github.com/login/oauth/access_token");
         GitHubAccessTokenResponse resource = client.Factories.GetGitHubAccessToken(RGN(example), FN(example), request);
         CheckResponseBody(example, client, responseCode, resource);
     });
 }
Ejemplo n.º 3
0
        public async Task TestGetWorkspace()
        {
            WorkspaceGitRepoManagementClient client = TriggerRunClient();
            string clientID    = "";
            string accessToken = "";
            GitHubAccessTokenRequest  request  = new GitHubAccessTokenRequest(clientID, accessToken, "https://github.com/login/oauth/access_token");
            GitHubAccessTokenResponse response = await client.GetGitHubAccessTokenAsync(request);

            Assert.NotNull(response.GitHubAccessToken);
        }
Ejemplo n.º 4
0
        public async Task <Response <GitHubAccessTokenResponse> > GetGitHubAccessTokenAsync(GitHubAccessTokenRequest gitHubAccessTokenRequest, CancellationToken cancellationToken = default)
        {
            if (gitHubAccessTokenRequest == null)
            {
                throw new ArgumentNullException(nameof(gitHubAccessTokenRequest));
            }

            using var message = CreateGetGitHubAccessTokenRequest(gitHubAccessTokenRequest);
            await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false);

            switch (message.Response.Status)
            {
            case 200:
            {
                GitHubAccessTokenResponse value = default;
                using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false);

                value = GitHubAccessTokenResponse.DeserializeGitHubAccessTokenResponse(document.RootElement);
                return(Response.FromValue(value, message.Response));
            }
Ejemplo n.º 5
0
 private void CaptureFactories_GetGitHubAccessToken()
 {
     interceptor.CurrentExampleName = "Factories_GetGitHubAccessToken";
     GitHubAccessTokenRequest  request  = new GitHubAccessTokenRequest("someCode", "https://github.com/login/oauth/access_token");//replace someCode with real code from GitHub
     GitHubAccessTokenResponse response = client.Factories.GetGitHubAccessToken(secrets.ResourceGroupName, secrets.FactoryName, request);
 }