using ForgejoReleaseSync.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; var builder = Host.CreateApplicationBuilder(args); var config = AppConfigLoader.LoadConfigFromEnv(); builder.Services.AddSingleton(config); var repositoryConfig = await RepoConfigLoader.LoadConfigAsync( config.RepositoryConfigFilePath); builder.Services.AddSingleton(repositoryConfig); var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "ForgejoReleaseSync"); client.DefaultRequestHeaders.Add("Accept", "application/json"); client.Timeout = TimeSpan.FromSeconds(90); client.MaxResponseContentBufferSize = 1024 * 1024 * 1; builder.Services.AddSingleton(client); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); var app = builder.Build(); using var scope = app.Services.CreateScope(); await scope.ServiceProvider .GetRequiredService() .Sync(); await app.RunAsync();