Gitea's repository configuration provider implementation to use with Microsoft.Extensions.Configuration.
$ dotnet add package Extensions.Configuration.GitRepository.GiteaProviderGit repository configuration provider is a library designed for managing and loading configuration files, specifically for C# developers. It allows developers to read configuration files directly from a Git repository, enabling centralized configuration management and version control in distributed systems or microservice architectures.
This project now supports fetching configuration files from the following platforms:
| Git repository | Git files | gist | version | downloads |
|---|---|---|---|---|
| Gitee | √ | √ | ||
| GitLab | √ | |||
| Gitea | √ | |||
| GitHub | √ | √ |
With this feature, you can directly retrieve configuration files from repositories hosted on these platforms, making it easier to manage and load configurations in multi-platform environments.
You can install this library via the NuGet package manager. Run the following command to install:
dotnet add package Extensions.Configuration.GitRepository
Here is a simple example demonstrating how to use this library to load configuration files from a Git repository:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddOpenApi();
builder.Configuration.AddUserSecrets("personal_access_tokens");
builder.Configuration.AddGitRepository(cfg => cfg.WithGitLab()
.WithHostUrl("https://git.uixe.net/")
.WithRepositoryPath("uixe/stdlanedevctlsvr")
.WithAuthenticationToken(builder.Configuration.GetValue<string>("personal_access_tokens"))
.WithFileName($"{Environment.GetEnvironmentVariable("UIXEID")}/appsettings.{builder.Environment.EnvironmentName}.json")
.WithCache($"{builder.Environment.ContentRootPath}{System.IO.Path.DirectorySeparatorChar}appsettings.{builder.Environment.EnvironmentName}.json")
);
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
}
Console.WriteLine($"abc={app.Configuration.GetValue<string>("abc")}");
app.UseAuthorization();
app.MapControllers();
app.Run();
}
We welcome community contributions. You can contribute in the following ways:
This project is licensed under the MIT License. For details, please refer to the LICENSE file.
Inspired by https://github.com/denis-ivanov/Extensions.Configuration.GitLab