Skip to content

Commit 0513340

Browse files
committed
剥离GitLab 便于提供更多配置提供器
1 parent e2c01f5 commit 0513340

13 files changed

+121
-43
lines changed

Demo/Demo.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
</ItemGroup>
1616

1717
<ItemGroup>
18+
<ProjectReference Include="..\Extensions.Configuration.GitRepository.GitLabProvider\Extensions.Configuration.GitRepository.GitLabProvider.csproj" />
1819
<ProjectReference Include="..\Extensions.Configuration.GitRepository\Extensions.Configuration.GitRepository.csproj" />
1920
</ItemGroup>
2021

Demo/Program.cs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
var builder = WebApplication.CreateBuilder(args);
2-
3-
// Add services to the container.
4-
52
builder.Services.AddControllers();
6-
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
73
builder.Services.AddOpenApi();
8-
//builder.Configuration.AddGitRepository("https://gitlab.com/", "IoTSharp/gitlabcfg", "", "cfg.json");
9-
104
builder.Configuration.AddUserSecrets("personal_access_tokens");
11-
builder.Configuration.AddGitRepository(cfg =>
12-
cfg.WithHostUrl("https://git.uixe.net/")
13-
.WithRepositoryPath("uixe/stdlanedevctlsvr")
14-
.WithAuthenticationToken(builder.Configuration.GetValue<string>("personal_access_tokens"))
15-
.WithFileName($"{Environment.GetEnvironmentVariable("UIXEID")}/appsettings.{builder.Environment.EnvironmentName}.json")
16-
.WithCache($"{builder.Environment.ContentRootPath}{System.IO.Path.DirectorySeparatorChar}appsettings.{builder.Environment.EnvironmentName}.json")
17-
);
5+
builder.Configuration.AddGitRepository(cfg => cfg.WithGitLab()
6+
.WithHostUrl("https://git.uixe.net/")
7+
.WithRepositoryPath("uixe/stdlanedevctlsvr")
8+
.WithAuthenticationToken(builder.Configuration.GetValue<string>("personal_access_tokens"))
9+
.WithFileName($"{Environment.GetEnvironmentVariable("UIXEID")}/appsettings.{builder.Environment.EnvironmentName}.json")
10+
.WithCache($"{builder.Environment.ContentRootPath}{System.IO.Path.DirectorySeparatorChar}appsettings.{builder.Environment.EnvironmentName}.json")
11+
);
1812

1913
var app = builder.Build();
2014

DemoUseStartup/DemoUseStartup.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
</ItemGroup>
1313

1414
<ItemGroup>
15+
<ProjectReference Include="..\Extensions.Configuration.GitRepository.GitLabProvider\Extensions.Configuration.GitRepository.GitLabProvider.csproj" />
1516
<ProjectReference Include="..\Extensions.Configuration.GitRepository\Extensions.Configuration.GitRepository.csproj" />
1617
</ItemGroup>
1718

DemoUseStartup/Program.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ public static IHostBuilder CreateHostBuilder(string[] args)
1212
return Host.CreateDefaultBuilder(args)
1313
.ConfigureAppConfiguration((context, builder) =>
1414
{
15-
16-
var pat= builder.AddUserSecrets("personal_access_tokens").Build();
17-
15+
16+
var pat = builder.AddUserSecrets("personal_access_tokens").Build();
1817
builder.AddGitRepository(cfg =>
19-
cfg.WithHostUrl("https://gitlab.com/")
18+
cfg.WithGitLab()
19+
.WithHostUrl("https://gitlab.com/")
2020
.WithRepositoryPath("IoTSharp/gitlabcfg")
2121
.WithAuthenticationToken(pat.GetValue<string>("personal_access_tokens"))
2222
.WithFileName($"{Environment.GetEnvironmentVariable("UIXEID")}/cfg.json")
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFrameworks>net9.0;net8.0</TargetFrameworks>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<Nullable>enable</Nullable>
7+
<Authors>IoTSharp</Authors>
8+
<FileVersion>1.0.0</FileVersion>
9+
<AssemblyVersion>1.0.0</AssemblyVersion>
10+
<Description>Provides GitRepository's file configuration provider</Description>
11+
<PackageTags>GitRepository;configuration; ASP.NET Core</PackageTags>
12+
<RepositoryUrl>https://github.com/IoTSharp/Extensions.Configuration.GitRepository</RepositoryUrl>
13+
<RepositoryType>Git</RepositoryType>
14+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
15+
<PackageIcon>Icon.png</PackageIcon>
16+
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
17+
<PackageProjectUrl>https://github.com/IoTSharp/Extensions.Configuration.GitRepository</PackageProjectUrl>
18+
<PackageReadmeFile>README.md</PackageReadmeFile>
19+
</PropertyGroup>
20+
21+
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
22+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.*" />
23+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="9.0.*" />
24+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.*" />
25+
</ItemGroup>
26+
27+
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
28+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.*" />
29+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.*" />
30+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.*" />
31+
</ItemGroup>
32+
33+
<ItemGroup>
34+
<None Include="..\Icon.png" Link="Icon.png">
35+
<PackagePath></PackagePath>
36+
<Pack>true</Pack>
37+
</None>
38+
<None Include="..\README.md" Link="README.md">
39+
<PackagePath>\</PackagePath>
40+
<Pack>True</Pack>
41+
</None>
42+
</ItemGroup>
43+
44+
<ItemGroup>
45+
<PackageReference Include="NGitLab" Version="8.3.0" />
46+
</ItemGroup>
47+
48+
<ItemGroup>
49+
<ProjectReference Include="..\Extensions.Configuration.GitRepository\Extensions.Configuration.GitRepository.csproj" />
50+
</ItemGroup>
51+
</Project>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Extensions.Configuration.GitRepository;
2+
using Extensions.Configuration.GitRepository.GitLabProvider;
3+
using System;
4+
using System.Diagnostics.CodeAnalysis;
5+
using System.IO;
6+
using System.Text;
7+
using System.Text.Json;
8+
9+
namespace Microsoft.Extensions.Configuration
10+
{
11+
public static class GitLabProviderExtensions
12+
{
13+
public static GitRepositoryConfigurationOptions WithGitLab([NotNull] this GitRepositoryConfigurationOptions options)
14+
{
15+
if (options == null)
16+
{
17+
throw new ArgumentNullException(nameof(options));
18+
}
19+
var gitlabClient = new GitLabRepositoryClient(options.HostUrl, options.AuthenticationToken, options.RepositoryPath);
20+
options.GitRepositoryClient = gitlabClient;
21+
return options;
22+
}
23+
}
24+
}

Extensions.Configuration.GitRepository/GitLabRepositoryClient.cs renamed to Extensions.Configuration.GitRepository.GitLabProvider/GitLabRepositoryClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
using NGitLab.Models;
33
using System;
44

5-
namespace Extensions.Configuration.GitRepository
5+
namespace Extensions.Configuration.GitRepository.GitLabProvider
66
{
7-
public class GitLabRepositoryClient : IGitRepositoryClient
7+
internal class GitLabRepositoryClient : IGitRepositoryClient
88
{
99

1010
private readonly NGitLab.GitLabClient client;

Extensions.Configuration.GitRepository.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-co
1919
EndProject
2020
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoUseStartup", "DemoUseStartup\DemoUseStartup.csproj", "{4FA5BE90-5FF6-47F8-AC61-28F184C951F7}"
2121
EndProject
22+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Extensions.Configuration.GitRepository.GitLabProvider", "Extensions.Configuration.GitRepository.GitLabProvider\Extensions.Configuration.GitRepository.GitLabProvider.csproj", "{5E532959-FB2D-43B4-9004-61508E412FB3}"
23+
EndProject
2224
Global
2325
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2426
Debug|Any CPU = Debug|Any CPU
@@ -41,6 +43,10 @@ Global
4143
{4FA5BE90-5FF6-47F8-AC61-28F184C951F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
4244
{4FA5BE90-5FF6-47F8-AC61-28F184C951F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
4345
{4FA5BE90-5FF6-47F8-AC61-28F184C951F7}.Release|Any CPU.Build.0 = Release|Any CPU
46+
{5E532959-FB2D-43B4-9004-61508E412FB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47+
{5E532959-FB2D-43B4-9004-61508E412FB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
48+
{5E532959-FB2D-43B4-9004-61508E412FB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
49+
{5E532959-FB2D-43B4-9004-61508E412FB3}.Release|Any CPU.Build.0 = Release|Any CPU
4450
EndGlobalSection
4551
GlobalSection(SolutionProperties) = preSolution
4652
HideSolutionNode = FALSE

Extensions.Configuration.GitRepository/Extensions.Configuration.GitRepository.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
<ItemGroup>
3434

3535
<PackageReference Include="Hyperbee.Json" Version="3.0.2" />
36-
<PackageReference Include="NGitLab" Version="8.3.0" />
3736
</ItemGroup>
3837
<ItemGroup>
3938
<None Include="..\Icon.png" Pack="true" PackagePath="" />

Extensions.Configuration.GitRepository/GitRepositoryConfigurationExtensions.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ public static IConfigurationBuilder AddGitRepository(
7878
throw new ArgumentNullException(nameof(options));
7979
}
8080

81-
var gitlabClient = new GitLabRepositoryClient(options.HostUrl, options.AuthenticationToken, options.RepositoryPath);
82-
var source = new GitRepositoryConfigurationSource(gitlabClient, options);
81+
var source = new GitRepositoryConfigurationSource( options);
8382
return builder.Add(source);
8483
}
8584

0 commit comments

Comments
 (0)