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"))); }
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); }); }
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); }
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)); }
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); }