34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
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<ReleaseAssetDownloadService>();
|
|
builder.Services.AddSingleton<GithubService>();
|
|
builder.Services.AddSingleton<ForgejoService>();
|
|
builder.Services.AddSingleton<SyncService>();
|
|
|
|
var app = builder.Build();
|
|
|
|
using var scope = app.Services.CreateScope();
|
|
|
|
await scope.ServiceProvider
|
|
.GetRequiredService<SyncService>()
|
|
.Sync();
|
|
|
|
await app.RunAsync(); |