Пример #1
0
 public GitHubRepositoryOptimizer(WopConfig wopConfig, DeveImageOptimizerConfiguration deveImageOptimizerConfiguration, IProgressReporter progressReporter)
 {
     _wopConfig = wopConfig;
     _deveImageOptimizerConfiguration = deveImageOptimizerConfiguration;
     _progressReporter  = progressReporter;
     _gitOctoKitHandler = new GitOctoKitHandler(_wopConfig);
     _git = new GitCommandLineHandler(_wopConfig);
 }
Пример #2
0
        private async Task <IEnumerable <OptimizableFile> > GoOptimize(string dir, WopConfig config)
        {
            var fileRememberer = new FileProcessedStateRememberer(false);
            var dirRememberer  = new DirProcessedStateRememberer(true);

            var fileProcessor        = new DeveImageOptimizerProcessor(_deveImageOptimizerConfiguration, _progressReporter, fileRememberer, dirRememberer);
            var optimizedFileResults = await fileProcessor.ProcessDirectory(dir);

            return(optimizedFileResults);
        }
        private GitHubClient CreateGitHubClient(WopConfig config)
        {
            if (string.IsNullOrWhiteSpace(config.GitHubToken))
            {
                throw new InvalidOperationException("Github token is null or empty, make sure the token is configured in the Environment Variables or secrets.json");
            }
            //var credentials = new InMemoryCredentialStore(new Credentials(config.GitHubToken));
            var githubclient = new GitHubClient(new ProductHeaderValue(Constants.FeatureName));

            var cred = new Credentials(config.GitHubToken);

            githubclient.Credentials = cred;
            return(githubclient);
        }
Пример #4
0
        public static async Task Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                          .AddEnvironmentVariables()
                          .AddUserSecrets(Assembly.GetExecutingAssembly(), true, true);

            var configuration = builder.Build();

            Console.WriteLine("For this tool to work you need to have both GIT and HUB installed.");

            var wopConfig = new WopConfig();

            configuration.Bind(wopConfig);

            var deveImageOptimizerConfiguration = new DeveImageOptimizerConfiguration()
            {
                ExecuteImageOptimizationParallel = true,
                MaxDegreeOfParallelism           = Environment.ProcessorCount
            };

            //var githubRepositoryOptimizer = new GitHubRepositoryOptimizer(wopConfig, deveImageOptimizerConfiguration, new WopProgressReporter());
            //await githubRepositoryOptimizer.GoOptimize("WebOptimizationProject", "TestRepo1");
            //await githubRepositoryOptimizer.GoOptimize(282345207L);



            var repoManager = new WopRepoManager(wopConfig);

            repoManager.Start();

            //string owner = "vuejs";
            //var repos = await GitHubRepositoryOptimizer.ObtainRepositoriesForOwner(owner);
            //foreach (var repo in repos)
            //{
            //    await GitHubRepositoryOptimizer.GoOptimize(owner, repo);
            //}

            //await GitHubRepositoryOptimizer.GoOptimize("vuejs-templates", "webpack");
            //await GitHubRepositoryOptimizer.GoOptimize("vuejs-templates", "simple");
            //await GitHubRepositoryOptimizer.GoOptimize("vuejs-templates", "pwa");
            //await GitHubRepositoryOptimizer.GoOptimize("vuejs-templates", "browserify");
            //await GitHubRepositoryOptimizer.GoOptimize("vuejs-templates", "webpack-simple");
            //await GitHubRepositoryOptimizer.GoOptimize("vuejs-templates", "browserify-simple");

            Console.WriteLine("Application finished, press any key to continue...");
            Console.ReadKey();
        }
Пример #5
0
        public WopRepoManager(WopConfig wopConfig)
        {
            _wopConfig = wopConfig;

            _gitOctoKitHandler = new GitOctoKitHandler(_wopConfig);
        }
 public GitOctoKitHandler(WopConfig config)
 {
     _config      = config;
     GitHubClient = CreateGitHubClient(config);
 }
Пример #7
0
 public GitCommandLineHandler(WopConfig config)
 {
     _config = config;
 }