Beispiel #1
0
        public GithubProvider(ILogger logger, GitSourceControlAsync gitSourceControl, string username,
                              string accessToken)
        {
            _logger           = logger;
            _gitSourceControl = gitSourceControl;
            _username         = username;
            _accessToken      = accessToken;

            _httpClient = new HttpClient();
            _httpClient.DefaultRequestHeaders.Add("User-Agent",
                                                  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36");
        }
        public BitbucketCloudProvider(ILogger logger, GitSourceControlAsync gitSourceControl, string accountUsername,
                                      string username, string password)
        {
            _logger           = logger;
            _gitSourceControl = gitSourceControl;
            _accountUsername  = accountUsername;

            _httpClient = new HttpClient();

            var basicAuthHeaderValue = new AuthenticationHeaderValue("Basic",
                                                                     Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}")));

            _httpClient.DefaultRequestHeaders.Authorization = basicAuthHeaderValue;
        }
        public void BitbucketCloud(BitbucketCloudArgs args)
        {
            try
            {
                var userInfo              = new UserInfo(args.Username, args.Email, args.Password);
                var sourceControl         = new GitSourceControlAsync(Logger, userInfo);
                var sourceControlProvider = new BitbucketCloudProvider(Logger, sourceControl, args.AccountUsername,
                                                                       args.Username, args.Password);

                using (var stopwatch = new StopwatchHelper())
                {
                    var repos = new List <RepositoryInfo>();
                    using (var stopwatch2 = new StopwatchHelper())
                    {
                        repos.AddRange(sourceControlProvider.FetchRepositories(args.RepositoryMatchers)
                                       .ConfigureAwait(false)
                                       .GetAwaiter()
                                       .GetResult());
                        Logger.Information("Fetching repositories took {TotalMs}ms ({Min}:{Sec} mm:ss)",
                                           stopwatch2.Result.TotalMilliseconds, stopwatch2.Result.Minutes, stopwatch2.Result.Seconds);
                    }

                    sourceControlProvider.EnsureRepositoriesSync(
                        repos,
                        args.RepositoryPathTemplate,
                        args.BranchMatchers)
                    .ConfigureAwait(false)
                    .GetAwaiter()
                    .GetResult();

                    Logger.Information("Done! Process took {TotalMs}ms ({Min}:{Sec} mm:ss)",
                                       stopwatch.Result.TotalMilliseconds, stopwatch.Result.Minutes, stopwatch.Result.Seconds);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "There was an unhandled exception!");
                Console.ReadLine();
            }
        }