Should fix output problem
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user