// See https://aka.ms/new-console-template for more information using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using sh.actions.package_cleanup.Models; using sh.actions.package_cleanup.Service; Console.WriteLine("Hello, World!"); // // // Setup Dependency Injection // var services = new ServiceCollection(); // // // Add Logging // services.AddLogging(builder => // builder.AddConsole() // .SetMinimumLevel(LogLevel.Information) // ); // // // Load configuration from environment variables or appsettings // var giteaUrl = Environment.GetEnvironmentVariable("GITEA_URL") ?? "https://git.example.com"; // var apiToken = Environment.GetEnvironmentVariable("GITEA_API_TOKEN") ?? string.Empty; // var owner = Environment.GetEnvironmentVariable("GITEA_OWNER") ?? "sh-edraft"; // // var giteaConfig = new GiteaConfig // { // GiteaUrl = giteaUrl, // ApiToken = apiToken, // Owner = owner // }; // // services.AddSingleton(giteaConfig); // // // Add HttpClient // services.AddHttpClient(); // // // Build service provider // var serviceProvider = services.BuildServiceProvider(); // // try // { // // Get the service and execute // var packageService = serviceProvider.GetRequiredService(); // var logger = serviceProvider.GetRequiredService>(); // // logger.LogInformation("Starting package cleanup tool"); // logger.LogInformation("Gitea URL: {GiteaUrl}", giteaUrl); // logger.LogInformation("Owner: {Owner}", owner); // // using var cts = new CancellationTokenSource(); // var packages = await packageService.GetPackagesByOwnerAsync(cts.Token); // // logger.LogInformation("Retrieved {Count} packages", packages.Count()); // // foreach (var package in packages) // { // logger.LogInformation("Package: {Name} (Version: {Version})", package.Name, package.Version); // } // // logger.LogInformation("Package cleanup tool completed successfully"); // } // catch (Exception ex) // { // var logger = serviceProvider.GetRequiredService>(); // logger.LogError(ex, "Application error"); // Environment.Exit(1); // }