Should fix output problem
Some checks failed
Build on push / prepare (push) Successful in 7s
Build on push / build (push) Failing after 4s

This commit is contained in:
2026-02-15 10:11:29 +01:00
parent ca51f738c0
commit 8cdd6a6e0e
6 changed files with 140 additions and 48 deletions

View File

@@ -22,24 +22,75 @@ public class GiteaPackageService(
}
}
public async Task<IEnumerable<GiteaPackage>> GetPackagesByOwnerAsync(CancellationToken cancellationToken = default)
public async Task<IEnumerable<GiteaPackage>> GetPackagesByNameAsync(string name, CancellationToken cancellationToken = default)
{
try
{
var baseUrl = GetBaseUrl();
var allPackages = new List<GiteaPackage>();
var packages = new List<GiteaPackage>();
// Parse comma-separated types
var types = (configuration["TYPE"] ?? "")
var types = (configuration["TYPES"] ?? "")
.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
if (types.Length == 0)
{
logger.LogWarning("No package types configured");
return allPackages;
return packages;
}
// Parse comma-separated names
foreach (var type in types)
{
var page = 1;
while (true)
{
var url = $"{baseUrl}/{type}/{name}?page={page}";
logger.LogInformation("Fetching packages from Gitea: {Url}", url);
var request = new HttpRequestMessage(HttpMethod.Get, url);
AddAuthorizationHeader(request);
var response = await httpClient.SendAsync(request, cancellationToken);
response.EnsureSuccessStatusCode();
var fetchedPackages =
await response.Content.ReadFromJsonAsync<List<GiteaPackage>>(cancellationToken: cancellationToken)
?? [];
if (fetchedPackages.Count == 0)
{
break;
}
packages.AddRange(fetchedPackages);
logger.LogInformation("Fetched {Count} packages from page {Page}", fetchedPackages.Count, page);
page++;
}
}
logger.LogInformation("Successfully fetched {Count} packages for name '{Name}'", packages.Count, name);
return packages;
}
catch (HttpRequestException ex)
{
logger.LogError(ex, "Error fetching packages from Gitea for name '{Name}'", name);
throw;
}
catch (Exception ex)
{
logger.LogError(ex, "Unexpected error fetching packages for name '{Name}'", name);
throw;
}
}
public async Task<IEnumerable<GiteaPackage>> GetPackagesByOwnerAsync(CancellationToken cancellationToken = default)
{
try
{
var allPackages = new List<GiteaPackage>();
var names = (configuration["NAMES"] ?? "")
.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
@@ -49,38 +100,10 @@ public class GiteaPackageService(
return allPackages;
}
foreach (var type in types)
foreach (var name in names)
{
foreach (var name in names)
{
var page = 1;
while (true)
{
var url = $"{baseUrl}/{type}/{name}?page={page}";
logger.LogInformation("Fetching packages from Gitea: {Url}", url);
var request = new HttpRequestMessage(HttpMethod.Get, url);
AddAuthorizationHeader(request);
var response = await httpClient.SendAsync(request, cancellationToken);
response.EnsureSuccessStatusCode();
var packages =
await response.Content.ReadFromJsonAsync<List<GiteaPackage>>(cancellationToken: cancellationToken)
?? [];
if (packages.Count == 0)
{
break;
}
allPackages.AddRange(packages);
logger.LogInformation("Fetched {Count} packages from page {Page}", packages.Count, page);
page++;
}
}
var packages = await GetPackagesByNameAsync(name, cancellationToken);
allPackages.AddRange(packages);
}
logger.LogInformation("Successfully fetched {Count} packages in total", allPackages.Count);