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:
mahdium committed 2026-11-04 16:55:58 +03:30
1 parent 7ac8a5af62
commit 3b644de2d5
5 files changed
+20 -15

No files matched your search

+2 -2
View File
@@ -36,7 +36,7 @@ public class SyncService(
var (owner, name) = ParseGithubUrl(repo.GithubUrl);
var githubReleases = await githubService.FetchRepoReleasesAsync(owner, name, token);
var githubRelease = githubReleases.LastOrDefault(r => !r.Prerelease);
var githubRelease = githubReleases.FirstOrDefault(r => !r.Prerelease);
if (githubRelease is null)
{
logger.LogWarning("{Owner}/{Name}: no GitHub release found, skipping", owner, name);
@@ -44,7 +44,7 @@ public class SyncService(
}
var forgejoReleases = await forgejoService.FetchRepoReleasesAsync(owner, name, token);
var forgejoRelease = forgejoReleases.LastOrDefault(r => !r.Prerelease);
var forgejoRelease = forgejoReleases.FirstOrDefault(r => !r.Prerelease);
var releaseId = await ResolveReleaseIdAsync(owner, name, githubRelease, forgejoRelease, token);