public TokenGenerator(int appIntegrationId, IPrivateKeySource privateKeySource,
                       ILogger <TokenGenerator> logger = null)
 {
     _privateKeySource = privateKeySource;
     Logger            = logger ?? new NullLogger <TokenGenerator>();
     _appIntegrationId = appIntegrationId;
 }
Пример #2
0
 public CheckSuiteRequestHandler(PullRequestEventPayload payload, IPrivateKeySource keySource, Guid requestId)
 {
     GithubInstallationId = payload.Installation.Id;
     CurrentRepository    = payload.Repository;
     CommitSha            = payload.PullRequest.Head.Sha;
     IsPullRequest        = true;
     RequestId            = requestId;
     Init(keySource);
 }
Пример #3
0
        private void Init(IPrivateKeySource keySource)
        {
            CheckId = Guid.NewGuid();

            this.jwtHelper = JwtTokenHelper.CreateGitHubJwtFactory(
                keySource,
                int.Parse(GitScanAppConfig.GetValue(Constants.GlobalSection, Constants.GitHubAppIdKey)));

            gitHubInstallationClient = this.CreateGitHubInstallationClientAsync().Result;
        }
        private string GetAppToken(int gitHubAppId, IPrivateKeySource privateKeySource)
        {
            var generator = new GitHubJwtFactory(
                privateKeySource,
                new GitHubJwtFactoryOptions
            {
                AppIntegrationId  = gitHubAppId,
                ExpirationSeconds = 600
            });

            return(generator.CreateEncodedJwtToken());
        }
        private string GetAppToken(int gitHubAppId, IPrivateKeySource privateKeySource)
        {
            var generator = new GitHubJwtFactory(
                privateKeySource,
                new GitHubJwtFactoryOptions
            {
                AppIntegrationId = gitHubAppId,
                // Due to clock drift, use 9:30 to avoid "'Expiration time' claim ('exp') is too far in the future"
                ExpirationSeconds = 570
            });

            return(generator.CreateEncodedJwtToken());
        }
Пример #6
0
        public static GitHubJwtFactory CreateGitHubJwtFactory(IPrivateKeySource keySource, int appId)
        {
            // Use GitHubJwt library to create the GitHubApp Jwt Token using our private certificate PEM file
            GitHubJwtFactory generator = new GitHubJwtFactory(
                keySource,
                new GitHubJwtFactoryOptions
            {
                AppIntegrationId  = appId,  // The GitHub App Id
                ExpirationSeconds = 600     // 10 minutes is the maximum time allowed
            }
                );

            return(generator);
        }
Пример #7
0
        public CheckSuiteRequestHandler(CheckSuiteEventPayload payload, IPrivateKeySource keySource, Guid requestId)
        {
            if (payload == null)
            {
                throw new ArgumentNullException(nameof(payload));
            }

            if (keySource == null)
            {
                throw new ArgumentNullException(nameof(keySource));
            }

            GithubInstallationId = payload.Installation.Id;
            CurrentRepository    = payload.Repository;
            CommitSha            = payload.CheckSuite.HeadSha;
            IsPullRequest        = false;
            RequestId            = requestId;
            Init(keySource);
        }
Пример #8
0
 public GitHubJwtFactory(IPrivateKeySource privateKeySource, GitHubJwtFactoryOptions options)
 {
     this.privateKeySource = privateKeySource;
     this.options          = options;
 }