/// <inheritdoc /> public IGitHubClient CreateAppClient(ITokenGenerator tokenGenerator) { var token = tokenGenerator.GetToken(); return(new GitHubClient(new ProductHeaderValue("BuildCrossCheck")) { Credentials = new Credentials(token, AuthenticationType.Bearer) }); }
private async Task <ValueTuple <Installation, string> > FindInstallationAndGetToken(ITokenGenerator tokenGenerator, string login) { var appClient = CreateAppClient(tokenGenerator); var installations = await appClient.GitHubApps.GetAllInstallationsForCurrent(); var installation = installations.First(inst => string.Equals(inst.Account.Login, login, StringComparison.InvariantCultureIgnoreCase)); var response = await appClient.GitHubApps.CreateInstallationToken(installation.Id); return(installation, response.Token); }
/// <inheritdoc /> public async Task <IGitHubClient> CreateAppClientForLoginAsync(ITokenGenerator tokenGenerator, string login) { var(installation, token) = await FindInstallationAndGetToken(tokenGenerator, login); return(GitHubClientFactoryHelper.GitHubClient(token, GetUserAgent(installation))); }