feat: refactor HTTP client setup for Github and Forgejo services
- Centralized HTTP client configuration for `GithubService` and `ForgejoService` using `AddHttpClient`. - Enhanced maintainability by moving Forgejo token and base URL setup into DI-configured HTTP clients. - Fixed `forgejoInstance` validation logic and adjusted release selection to prioritize the first non-prerelease.
This commit is contained in:
1 parent
7ac8a5af62
commit
3b644de2d5
5 files changed
+20
-15
No files matched your search
+16
-10
@@ -1,4 +1,5 @@
|
||||
using ForgejoReleaseSync.Services;
|
||||
using System.Net.Http.Headers;
|
||||
using ForgejoReleaseSync.Services;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
@@ -11,12 +12,19 @@ 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.FromMinutes(3);
|
||||
client.MaxResponseContentBufferSize = 1024 * 1024 * 1;
|
||||
builder.Services.AddSingleton(client);
|
||||
builder.Services.AddHttpClient<GithubService>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri("https://api.github.com/");
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd("ForgejoReleaseSync");
|
||||
client.DefaultRequestHeaders.Accept.ParseAdd("application/vnd.github+json");
|
||||
});
|
||||
|
||||
builder.Services.AddHttpClient<ForgejoService>(client =>
|
||||
{
|
||||
client.BaseAddress = new Uri(config.ForgejoInstacne);
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd("ForgejoReleaseSync");
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("token", config.ForgejoToken);
|
||||
});
|
||||
|
||||
builder.Services.AddSingleton<ReleaseAssetDownloadService>();
|
||||
builder.Services.AddSingleton<GithubService>();
|
||||
@@ -29,6 +37,4 @@ using var scope = app.Services.CreateScope();
|
||||
|
||||
await scope.ServiceProvider
|
||||
.GetRequiredService<SyncService>()
|
||||
.Sync();
|
||||
|
||||
await app.RunAsync();
|
||||
.Sync();
|
||||
Reference in new issue
Block a user