public GitHubRepositoryOptimizer(WopConfig wopConfig, DeveImageOptimizerConfiguration deveImageOptimizerConfiguration, IProgressReporter progressReporter) { _wopConfig = wopConfig; _deveImageOptimizerConfiguration = deveImageOptimizerConfiguration; _progressReporter = progressReporter; _gitOctoKitHandler = new GitOctoKitHandler(_wopConfig); _git = new GitCommandLineHandler(_wopConfig); }
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); }
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(); }
public WopRepoManager(WopConfig wopConfig) { _wopConfig = wopConfig; _gitOctoKitHandler = new GitOctoKitHandler(_wopConfig); }
public GitOctoKitHandler(WopConfig config) { _config = config; GitHubClient = CreateGitHubClient(config); }
public GitCommandLineHandler(WopConfig config) { _config = config; }