82 lines
2.2 KiB
C#
82 lines
2.2 KiB
C#
#!/usr/bin/env -S dotnet run
|
|
|
|
#:package Gitea.Net.API@25.3.*
|
|
// static class Program
|
|
// {
|
|
// static void Main(string[] args)
|
|
// {
|
|
// Run();
|
|
// }
|
|
|
|
// static void Run()
|
|
// {
|
|
// // Your code here
|
|
// Console.WriteLine("Running the program...");
|
|
// }
|
|
// }
|
|
using System.Text.Json;
|
|
using System.Text;
|
|
using Gitea.Net.Api;
|
|
using Gitea.Net.Client;
|
|
using Gitea.Net.Model;
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
Console.WriteLine("Hello, World!");
|
|
// Console.WriteLine("Environment Variables:");
|
|
// Console.WriteLine(JsonSerializer.Serialize(Environment.GetEnvironmentVariables()));
|
|
// Console.WriteLine("Arguments:");
|
|
// Console.WriteLine(JsonSerializer.Serialize(args));
|
|
|
|
|
|
string jsonInput = args.Length > 0 ? args[0] : "{}";
|
|
byte[] jsonBytes = Encoding.UTF8.GetBytes(jsonInput);
|
|
using MemoryStream memoryStream = new(jsonBytes);
|
|
|
|
IConfiguration configuration = new ConfigurationBuilder()
|
|
.AddJsonStream(memoryStream)
|
|
.AddEnvironmentVariables()
|
|
.Build();
|
|
|
|
PrintConfiguration(configuration);
|
|
|
|
Configuration giteaConfig = GetGiteaConfig(configuration);
|
|
RepositoryApi repoApi = new(giteaConfig);
|
|
|
|
|
|
string owner = configuration["GITHUB_REPOSITORY_OWNER"]!;
|
|
string repoName = configuration["GITHUB_REPOSITORY"]!;
|
|
repoName = Path.GetFileName(repoName);
|
|
Repository repo = await repoApi.RepoGetAsync(owner, repoName);
|
|
|
|
Console.WriteLine($"Repository:\n {JsonSerializer.Serialize(repo)}");
|
|
|
|
static void PrintConfiguration(IConfiguration configuration)
|
|
{
|
|
foreach (var kvp in configuration.AsEnumerable())
|
|
{
|
|
Console.WriteLine($"{kvp.Key}: {kvp.Value}");
|
|
}
|
|
}
|
|
|
|
static Configuration GetGiteaConfig(IConfiguration configuration)
|
|
{
|
|
string host = configuration["Host"]!;
|
|
string username = configuration["Username"]!;
|
|
string password = configuration["Password"]!;
|
|
string accessToken = configuration["Token"]!;
|
|
|
|
UriBuilder hostUriBuilder = new(host);
|
|
hostUriBuilder.Path = "/api/v1";
|
|
string hostUri = hostUriBuilder.ToString();
|
|
|
|
Configuration config = new()
|
|
{
|
|
BasePath = hostUri,
|
|
AccessToken = accessToken,
|
|
Username = username,
|
|
Password = password,
|
|
};
|
|
|
|
return config;
|
|
}
|