From c0dda0b381840a447c7ad377dcd0b9bc30182ed8 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Fri, 12 Jul 2024 22:45:32 +0100
Subject: [PATCH 01/21] Update TUnit
---
test/Directory.Build.props | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index 6763d8b38a..400ea3992b 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -9,6 +9,6 @@
-
+
-
\ No newline at end of file
+
From 6d816f157de8df250901279101b0037f63a48468 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Fri, 12 Jul 2024 23:08:41 +0100
Subject: [PATCH 02/21] Fix
---
.../Attributes/EnumValueAttributeTests.cs | 3 +--
.../Attributes/LinuxOnlyTestAttribute.cs | 16 +++-------------
.../Attributes/WindowsOnlyTestAttribute.cs | 16 +++-------------
3 files changed, 7 insertions(+), 28 deletions(-)
diff --git a/test/ModularPipelines.UnitTests/Attributes/EnumValueAttributeTests.cs b/test/ModularPipelines.UnitTests/Attributes/EnumValueAttributeTests.cs
index feb4f9d393..7124188dd7 100644
--- a/test/ModularPipelines.UnitTests/Attributes/EnumValueAttributeTests.cs
+++ b/test/ModularPipelines.UnitTests/Attributes/EnumValueAttributeTests.cs
@@ -1,6 +1,5 @@
-using ModularPipelines.Attributes;
+using ModularPipelines.Attributes;
using ModularPipelines.Helpers;
-using TUnit.Assertions.Extensions;
namespace ModularPipelines.UnitTests.Attributes;
diff --git a/test/ModularPipelines.UnitTests/Attributes/LinuxOnlyTestAttribute.cs b/test/ModularPipelines.UnitTests/Attributes/LinuxOnlyTestAttribute.cs
index 7677706ab5..b66ae78393 100644
--- a/test/ModularPipelines.UnitTests/Attributes/LinuxOnlyTestAttribute.cs
+++ b/test/ModularPipelines.UnitTests/Attributes/LinuxOnlyTestAttribute.cs
@@ -1,19 +1,9 @@
-using TUnit.Core.Exceptions;
-using TUnit.Core.Interfaces;
-
namespace ModularPipelines.UnitTests.Attributes;
-[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
-public class LinuxOnlyTestAttribute : Attribute, IApplicableTestAttribute
+public class LinuxOnlyTestAttribute() : SkipAttribute("Linux only test")
{
- ///
- public Task Apply(TestContext testContext)
+ public override Task ShouldSkip(TestContext testContext)
{
- if (!OperatingSystem.IsLinux())
- {
- throw new SkipTestException("Linux only test");
- }
-
- return Task.CompletedTask;
+ return Task.FromResult(!OperatingSystem.IsLinux());
}
}
\ No newline at end of file
diff --git a/test/ModularPipelines.UnitTests/Attributes/WindowsOnlyTestAttribute.cs b/test/ModularPipelines.UnitTests/Attributes/WindowsOnlyTestAttribute.cs
index 2bdd825a43..a67fe9b112 100644
--- a/test/ModularPipelines.UnitTests/Attributes/WindowsOnlyTestAttribute.cs
+++ b/test/ModularPipelines.UnitTests/Attributes/WindowsOnlyTestAttribute.cs
@@ -1,19 +1,9 @@
-using TUnit.Core.Exceptions;
-using TUnit.Core.Interfaces;
-
namespace ModularPipelines.UnitTests.Attributes;
-[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
-public class WindowsOnlyTestAttribute : Attribute, IApplicableTestAttribute
+public class WindowsOnlyTestAttribute() : SkipAttribute("Windows only test")
{
- ///
- public Task Apply(TestContext testContext)
+ public override Task ShouldSkip(TestContext testContext)
{
- if (!OperatingSystem.IsWindows())
- {
- throw new SkipTestException("Windows only test");
- }
-
- return Task.CompletedTask;
+ return Task.FromResult(!OperatingSystem.IsWindows());
}
}
\ No newline at end of file
From 4965f76f8338dcd3a86f21551c883595032e195f Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Fri, 12 Jul 2024 23:09:01 +0100
Subject: [PATCH 03/21] ReleaseNotes.md
---
src/ModularPipelines.Build/ReleaseNotes.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/ModularPipelines.Build/ReleaseNotes.md b/src/ModularPipelines.Build/ReleaseNotes.md
index e69de29bb2..ec747fa47d 100644
--- a/src/ModularPipelines.Build/ReleaseNotes.md
+++ b/src/ModularPipelines.Build/ReleaseNotes.md
@@ -0,0 +1 @@
+null
\ No newline at end of file
From ab5901aaccb10cab997dd685031a6090a2442de6 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 12:07:17 +0100
Subject: [PATCH 04/21] Log Debug
---
src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs b/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
index 519183199a..cefd533091 100644
--- a/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
+++ b/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
@@ -2,6 +2,8 @@
using System.Text.RegularExpressions;
using Initialization.Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
using ModularPipelines.Enums;
using ModularPipelines.Git;
using ModularPipelines.Git.Options;
@@ -38,12 +40,17 @@ public async Task InitializeAsync()
await using var scope = _serviceProvider.CreateAsyncScope();
var git = scope.ServiceProvider.GetRequiredService();
-
+
var options = new GitRemoteOptions
{
Arguments = ["get-url", "origin"],
ThrowOnNonZeroExitCode = false,
- CommandLogging = CommandLogging.None,
+ CommandLogging = scope.ServiceProvider
+ .GetRequiredService>()
+ .Value
+ .MinLevel == LogLevel.Debug
+ ? CommandLogging.Default
+ : CommandLogging.None,
};
var remote = await git.Commands.Remote(options);
From 73eaa852025aeeec19a147003fdb310b6400bb18 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 12:09:43 +0100
Subject: [PATCH 05/21] Log error
---
src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs b/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
index cefd533091..b68d670b80 100644
--- a/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
+++ b/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
@@ -15,6 +15,7 @@ namespace ModularPipelines.GitHub;
internal record GitHubRepositoryInfo : IGitHubRepositoryInfo, IInitializer
{
private readonly IServiceProvider _serviceProvider;
+ private readonly ILogger _logger;
public bool IsInitialized { get; private set; }
@@ -26,9 +27,10 @@ internal record GitHubRepositoryInfo : IGitHubRepositoryInfo, IInitializer
public string? RepositoryName { get; private set; }
- public GitHubRepositoryInfo(IServiceProvider serviceProvider)
+ public GitHubRepositoryInfo(IServiceProvider serviceProvider, ILogger logger)
{
_serviceProvider = serviceProvider;
+ _logger = logger;
}
public async Task InitializeAsync()
@@ -58,6 +60,8 @@ public async Task InitializeAsync()
if (string.IsNullOrEmpty(remoteUrl))
{
+ _logger.LogWarning("Error when detecting GitHub git repository: {Error}", remote.StandardError);
+
// Will not initialize as git repo is not setup
return;
}
From 399adca94836e2853162abc9f83dfb8bd7fe7c0c Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 12:33:50 +0100
Subject: [PATCH 06/21] TestHostSettings
---
test/ModularPipelines.TestHelpers/TestBase.cs | 4 ++--
test/ModularPipelines.TestHelpers/TestHostSettings.cs | 8 ++++++++
.../TestPipelineHostBuilder.cs | 6 ++++--
.../Helpers/GitHubRepositoryInfoTests.cs | 6 +++++-
4 files changed, 19 insertions(+), 5 deletions(-)
create mode 100644 test/ModularPipelines.TestHelpers/TestHostSettings.cs
diff --git a/test/ModularPipelines.TestHelpers/TestBase.cs b/test/ModularPipelines.TestHelpers/TestBase.cs
index 591a81cd89..9876f133eb 100644
--- a/test/ModularPipelines.TestHelpers/TestBase.cs
+++ b/test/ModularPipelines.TestHelpers/TestBase.cs
@@ -24,10 +24,10 @@ private class DummyModule : Module
}
}
- public async Task RunModule()
+ public async Task RunModule(TestHostSettings? testHostSettings = null)
where T : ModuleBase
{
- var host = await TestPipelineHostBuilder.Create()
+ var host = await TestPipelineHostBuilder.Create(testHostSettings)
.AddModule()
.BuildHostAsync();
diff --git a/test/ModularPipelines.TestHelpers/TestHostSettings.cs b/test/ModularPipelines.TestHelpers/TestHostSettings.cs
new file mode 100644
index 0000000000..b914ff3c1e
--- /dev/null
+++ b/test/ModularPipelines.TestHelpers/TestHostSettings.cs
@@ -0,0 +1,8 @@
+using ModularPipelines.Enums;
+
+namespace ModularPipelines.TestHelpers;
+
+public record TestHostSettings
+{
+ public CommandLogging CommandLogging { get; init; } = CommandLogging.Input | CommandLogging.Error;
+}
\ No newline at end of file
diff --git a/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs b/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
index 17e386f48a..54cd830d93 100644
--- a/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
+++ b/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
@@ -10,8 +10,10 @@ namespace ModularPipelines.TestHelpers;
public static class TestPipelineHostBuilder
{
- public static PipelineHostBuilder Create()
+ public static PipelineHostBuilder Create(TestHostSettings? testHostSettings = null)
{
+ testHostSettings ??= new TestHostSettings();
+
return new PipelineHostBuilder()
.SetLogLevel(LogLevel.Warning)
.ConfigureServices((_, collection) =>
@@ -19,7 +21,7 @@ public static PipelineHostBuilder Create()
collection.AddSingleton(new ArmClient(new DefaultAzureCredential()));
collection.Configure(opt =>
{
- opt.DefaultCommandLogging = CommandLogging.Input | CommandLogging.Error;
+ opt.DefaultCommandLogging = testHostSettings.CommandLogging;
opt.ShowProgressInConsole = false;
opt.PrintResults = false;
});
diff --git a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
index c311696a62..e4f528538b 100644
--- a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
+++ b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
@@ -1,4 +1,5 @@
using ModularPipelines.Context;
+using ModularPipelines.Enums;
using ModularPipelines.GitHub;
using ModularPipelines.GitHub.Extensions;
using ModularPipelines.Modules;
@@ -21,7 +22,10 @@ public class GitRepoModule : Module
[Test]
public async Task GitHub_Repository_Information_Is_Populated()
{
- var gitRepoModule = await RunModule();
+ var gitRepoModule = await RunModule(new TestHostSettings
+ {
+ CommandLogging = CommandLogging.Default
+ });
var gitHubRepositoryInfo = gitRepoModule.Result.Value!;
From afe904b67313d778ccb72a52063bb957f135ae08 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 12:43:38 +0100
Subject: [PATCH 07/21] Fix
---
test/ModularPipelines.TestHelpers/TestBase.cs | 4 +++-
.../ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs | 6 +++---
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/test/ModularPipelines.TestHelpers/TestBase.cs b/test/ModularPipelines.TestHelpers/TestBase.cs
index 9876f133eb..bd47396f42 100644
--- a/test/ModularPipelines.TestHelpers/TestBase.cs
+++ b/test/ModularPipelines.TestHelpers/TestBase.cs
@@ -24,7 +24,9 @@ private class DummyModule : Module
}
}
- public async Task RunModule(TestHostSettings? testHostSettings = null)
+ public Task RunModule() where T : ModuleBase => RunModule(new TestHostSettings());
+
+ public async Task RunModule(TestHostSettings testHostSettings)
where T : ModuleBase
{
var host = await TestPipelineHostBuilder.Create(testHostSettings)
diff --git a/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs b/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
index 54cd830d93..fa87fff221 100644
--- a/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
+++ b/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
@@ -10,10 +10,10 @@ namespace ModularPipelines.TestHelpers;
public static class TestPipelineHostBuilder
{
- public static PipelineHostBuilder Create(TestHostSettings? testHostSettings = null)
+ public static PipelineHostBuilder Create() => Create(new TestHostSettings());
+
+ public static PipelineHostBuilder Create(TestHostSettings testHostSettings)
{
- testHostSettings ??= new TestHostSettings();
-
return new PipelineHostBuilder()
.SetLogLevel(LogLevel.Warning)
.ConfigureServices((_, collection) =>
From b164e4839130698985955159cb26149ec0e5e3f6 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 21:20:04 +0100
Subject: [PATCH 08/21] Write line
---
.../Helpers/GitHubRepositoryInfoTests.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
index e4f528538b..c64520ac8b 100644
--- a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
+++ b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
@@ -29,6 +29,8 @@ public async Task GitHub_Repository_Information_Is_Populated()
var gitHubRepositoryInfo = gitRepoModule.Result.Value!;
+ Console.WriteLine($"GitHub Repository Info is: {gitHubRepositoryInfo}");
+
await Assert.That(gitHubRepositoryInfo.IsGitHub).Is.True();
await Assert.That(gitHubRepositoryInfo.IsInitialized).Is.True();
await Assert.That(gitHubRepositoryInfo.RepositoryName).Is.Not.Null()
From ddd01a01809585890b369c3a75d2eab71035528e Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 21:35:58 +0100
Subject: [PATCH 09/21] Assert.Multiple()
---
.../Helpers/GitHubRepositoryInfoTests.cs | 26 +++++++++++--------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
index c64520ac8b..8dca5df0db 100644
--- a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
+++ b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
@@ -30,16 +30,20 @@ public async Task GitHub_Repository_Information_Is_Populated()
var gitHubRepositoryInfo = gitRepoModule.Result.Value!;
Console.WriteLine($"GitHub Repository Info is: {gitHubRepositoryInfo}");
-
- await Assert.That(gitHubRepositoryInfo.IsGitHub).Is.True();
- await Assert.That(gitHubRepositoryInfo.IsInitialized).Is.True();
- await Assert.That(gitHubRepositoryInfo.RepositoryName).Is.Not.Null()
- .And.Is.Not.Empty();
- await Assert.That(gitHubRepositoryInfo.Owner).Is.Not.Null()
- .And.Is.Not.Empty();
- await Assert.That(gitHubRepositoryInfo.Endpoint).Is.Not.Null()
- .And.Is.Not.Empty();
- await Assert.That(gitHubRepositoryInfo.Identifier).Is.Not.Null()
- .And.Is.Not.Empty();
+
+ await using (Assert.Multiple())
+ {
+ await Assert.That(gitHubRepositoryInfo).Is.Not.Null();
+ await Assert.That(gitHubRepositoryInfo.IsInitialized).Is.True();
+ await Assert.That(gitHubRepositoryInfo.IsGitHub).Is.True();
+ await Assert.That(gitHubRepositoryInfo.RepositoryName).Is.Not.Null()
+ .And.Is.Not.Empty();
+ await Assert.That(gitHubRepositoryInfo.Owner).Is.Not.Null()
+ .And.Is.Not.Empty();
+ await Assert.That(gitHubRepositoryInfo.Endpoint).Is.Not.Null()
+ .And.Is.Not.Empty();
+ await Assert.That(gitHubRepositoryInfo.Identifier).Is.Not.Null()
+ .And.Is.Not.Empty();
+ }
}
}
\ No newline at end of file
From 58e386fd264c205080df275c7f4fcc567370c634 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 21:47:46 +0100
Subject: [PATCH 10/21] Configure logging in tests
---
test/ModularPipelines.TestHelpers/TestHostSettings.cs | 5 ++++-
.../TestPipelineHostBuilder.cs | 8 ++++++--
.../Helpers/GitHubRepositoryInfoTests.cs | 7 +++++--
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/test/ModularPipelines.TestHelpers/TestHostSettings.cs b/test/ModularPipelines.TestHelpers/TestHostSettings.cs
index b914ff3c1e..2b33265f67 100644
--- a/test/ModularPipelines.TestHelpers/TestHostSettings.cs
+++ b/test/ModularPipelines.TestHelpers/TestHostSettings.cs
@@ -1,8 +1,11 @@
-using ModularPipelines.Enums;
+using Microsoft.Extensions.Logging;
+using ModularPipelines.Enums;
namespace ModularPipelines.TestHelpers;
public record TestHostSettings
{
public CommandLogging CommandLogging { get; init; } = CommandLogging.Input | CommandLogging.Error;
+ public LogLevel LogLevel { get; init; } = LogLevel.Warning;
+ public bool ClearLogProviders { get; init; } = true;
}
\ No newline at end of file
diff --git a/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs b/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
index fa87fff221..b38420e0ed 100644
--- a/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
+++ b/test/ModularPipelines.TestHelpers/TestPipelineHostBuilder.cs
@@ -15,7 +15,7 @@ public static class TestPipelineHostBuilder
public static PipelineHostBuilder Create(TestHostSettings testHostSettings)
{
return new PipelineHostBuilder()
- .SetLogLevel(LogLevel.Warning)
+ .SetLogLevel(testHostSettings.LogLevel)
.ConfigureServices((_, collection) =>
{
collection.AddSingleton(new ArmClient(new DefaultAzureCredential()));
@@ -25,7 +25,11 @@ public static PipelineHostBuilder Create(TestHostSettings testHostSettings)
opt.ShowProgressInConsole = false;
opt.PrintResults = false;
});
- collection.AddLogging(builder => builder.ClearProviders());
+
+ if(testHostSettings.ClearLogProviders)
+ {
+ collection.AddLogging(builder => builder.ClearProviders());
+ }
});
}
}
\ No newline at end of file
diff --git a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
index 8dca5df0db..13e714aefa 100644
--- a/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
+++ b/test/ModularPipelines.UnitTests/Helpers/GitHubRepositoryInfoTests.cs
@@ -1,4 +1,5 @@
-using ModularPipelines.Context;
+using Microsoft.Extensions.Logging;
+using ModularPipelines.Context;
using ModularPipelines.Enums;
using ModularPipelines.GitHub;
using ModularPipelines.GitHub.Extensions;
@@ -24,7 +25,9 @@ public async Task GitHub_Repository_Information_Is_Populated()
{
var gitRepoModule = await RunModule(new TestHostSettings
{
- CommandLogging = CommandLogging.Default
+ CommandLogging = CommandLogging.Default,
+ LogLevel = LogLevel.Debug,
+ ClearLogProviders = false
});
var gitHubRepositoryInfo = gitRepoModule.Result.Value!;
From 39a994052fd163ef70281ba2e48b5a9fd65634ec Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 22:54:07 +0100
Subject: [PATCH 11/21] TUnit
---
.../ModularPipelines.TestHelpers.csproj | 1 +
.../ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj | 1 +
2 files changed, 2 insertions(+)
diff --git a/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj b/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj
index 36c30c1803..3a00d74766 100644
--- a/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj
+++ b/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj
@@ -13,6 +13,7 @@
+
diff --git a/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj b/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj
index 02f0a54fc8..1594896066 100644
--- a/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj
+++ b/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj
@@ -14,6 +14,7 @@
+
From 7b245b50c3f34779f837890bc1c80a580fab0d88 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 23:21:57 +0100
Subject: [PATCH 12/21] Fix
---
test/Directory.Build.props | 2 +-
.../ModularPipelines.TestHelpers.csproj | 1 -
.../ModularPipelines.UnitTests.csproj | 1 -
3 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index 400ea3992b..e57658df60 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -9,6 +9,6 @@
-
+
diff --git a/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj b/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj
index 3a00d74766..36c30c1803 100644
--- a/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj
+++ b/test/ModularPipelines.TestHelpers/ModularPipelines.TestHelpers.csproj
@@ -13,7 +13,6 @@
-
diff --git a/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj b/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj
index 1594896066..02f0a54fc8 100644
--- a/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj
+++ b/test/ModularPipelines.UnitTests/ModularPipelines.UnitTests.csproj
@@ -14,7 +14,6 @@
-
From 5faccca0bcc98208e3d64c2f0ebf008c1d1e43de Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sat, 13 Jul 2024 23:47:58 +0100
Subject: [PATCH 13/21] Fix
---
test/Directory.Build.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index e57658df60..6c1081d690 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -9,6 +9,6 @@
-
+
From 4a8cdbfe36ccd669ee72255b43e743a9cc740ff7 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:03:56 +0100
Subject: [PATCH 14/21] Fix
---
test/Directory.Build.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index 6c1081d690..b60fb8f140 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -9,6 +9,6 @@
-
+
From ce3b86d1307ce72c69e00d6002aa8a286cc76955 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:17:20 +0100
Subject: [PATCH 15/21] Fix
---
test/Directory.Build.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index b60fb8f140..4d002ab1fd 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -9,6 +9,6 @@
-
+
From e2c0b9749dec2aec3df7bcc069f31affc8e7cb17 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:27:28 +0100
Subject: [PATCH 16/21] Tweak
---
src/ModularPipelines/Engine/DependencyPrinter.cs | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/ModularPipelines/Engine/DependencyPrinter.cs b/src/ModularPipelines/Engine/DependencyPrinter.cs
index 955840e6b7..46a0304adb 100644
--- a/src/ModularPipelines/Engine/DependencyPrinter.cs
+++ b/src/ModularPipelines/Engine/DependencyPrinter.cs
@@ -44,6 +44,11 @@ public void PrintDependencyChains()
private void Print(string value)
{
+ if (string.IsNullOrWhiteSpace(value))
+ {
+ return;
+ }
+
Console.WriteLine();
_collapsableLogging.StartConsoleLogGroupDirectToConsole("Dependency Chains");
_logger.LogInformation("The following dependency chains have been detected:\r\n{Chain}", value);
From db0a1f3d5fe5d90be00fef582ca52f24855216d2 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:33:40 +0100
Subject: [PATCH 17/21] Tweak to OptionsProvider to help with getting secret
values
---
src/ModularPipelines/Engine/OptionsProvider.cs | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/ModularPipelines/Engine/OptionsProvider.cs b/src/ModularPipelines/Engine/OptionsProvider.cs
index db1a0a8045..2d01a198d2 100644
--- a/src/ModularPipelines/Engine/OptionsProvider.cs
+++ b/src/ModularPipelines/Engine/OptionsProvider.cs
@@ -20,7 +20,18 @@ public OptionsProvider(IPipelineServiceContainerWrapper pipelineServiceContainer
var types = _pipelineServiceContainerWrapper.ServiceCollection
.Select(sd => sd.ServiceType)
.Where(t => t.IsGenericType)
- .Where(t => t.GetGenericTypeDefinition().IsAssignableTo(typeof(IConfigureOptions<>)) || t.GetGenericTypeDefinition().IsAssignableTo(typeof(IPostConfigureOptions<>)))
+ .Where(t =>
+ {
+ var genericTypeDefinition = t.GetGenericTypeDefinition();
+
+ return genericTypeDefinition.IsAssignableTo(typeof(IConfigureOptions<>))
+ || genericTypeDefinition.IsAssignableTo(typeof(IPostConfigureOptions<>))
+ || genericTypeDefinition.IsAssignableTo(typeof(IOptions<>))
+ || genericTypeDefinition.IsAssignableTo(typeof(IOptionsMonitor<>))
+ || genericTypeDefinition.IsAssignableTo(typeof(IOptionsSnapshot<>))
+ || genericTypeDefinition.IsAssignableTo(typeof(IValidateOptions<>))
+ || genericTypeDefinition.IsAssignableTo(typeof(IConfigureNamedOptions<>));
+ })
.Select(s => s.GetGenericArguments()[0])
.ToList();
From 6fa1436f08d260bcf818dc92ecf01bc690d1c0de Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:35:22 +0100
Subject: [PATCH 18/21] Fix array
---
src/ModularPipelines/Engine/OptionsProvider.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ModularPipelines/Engine/OptionsProvider.cs b/src/ModularPipelines/Engine/OptionsProvider.cs
index 2d01a198d2..87129ddb2f 100644
--- a/src/ModularPipelines/Engine/OptionsProvider.cs
+++ b/src/ModularPipelines/Engine/OptionsProvider.cs
@@ -35,7 +35,7 @@ public OptionsProvider(IPipelineServiceContainerWrapper pipelineServiceContainer
.Select(s => s.GetGenericArguments()[0])
.ToList();
- foreach (var option in types.Select(t => _serviceProvider.GetService(typeof(IOptions<>).MakeGenericType([t]))))
+ foreach (var option in types.Select(t => _serviceProvider.GetService(typeof(IOptions<>).MakeGenericType(t))).Distinct())
{
yield return option!.GetType().GetProperty("Value", BindingFlags.Public | BindingFlags.Instance)!.GetValue(option);
}
From e827dbbdb39da786fa47e498b4f1bb0cef4a8a6e Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:35:50 +0100
Subject: [PATCH 19/21] Move distinct
---
src/ModularPipelines/Engine/OptionsProvider.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ModularPipelines/Engine/OptionsProvider.cs b/src/ModularPipelines/Engine/OptionsProvider.cs
index 87129ddb2f..607268c1c8 100644
--- a/src/ModularPipelines/Engine/OptionsProvider.cs
+++ b/src/ModularPipelines/Engine/OptionsProvider.cs
@@ -35,7 +35,7 @@ public OptionsProvider(IPipelineServiceContainerWrapper pipelineServiceContainer
.Select(s => s.GetGenericArguments()[0])
.ToList();
- foreach (var option in types.Select(t => _serviceProvider.GetService(typeof(IOptions<>).MakeGenericType(t))).Distinct())
+ foreach (var option in types.Distinct().Select(t => _serviceProvider.GetService(typeof(IOptions<>).MakeGenericType(t))))
{
yield return option!.GetType().GetProperty("Value", BindingFlags.Public | BindingFlags.Instance)!.GetValue(option);
}
From b67aebe20ab53dbfc3d0b85b82b44396d16e37d5 Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:36:08 +0100
Subject: [PATCH 20/21] Move distinct
---
src/ModularPipelines/Engine/OptionsProvider.cs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/ModularPipelines/Engine/OptionsProvider.cs b/src/ModularPipelines/Engine/OptionsProvider.cs
index 607268c1c8..7fcde8869a 100644
--- a/src/ModularPipelines/Engine/OptionsProvider.cs
+++ b/src/ModularPipelines/Engine/OptionsProvider.cs
@@ -33,9 +33,10 @@ public OptionsProvider(IPipelineServiceContainerWrapper pipelineServiceContainer
|| genericTypeDefinition.IsAssignableTo(typeof(IConfigureNamedOptions<>));
})
.Select(s => s.GetGenericArguments()[0])
+ .Distinct()
.ToList();
- foreach (var option in types.Distinct().Select(t => _serviceProvider.GetService(typeof(IOptions<>).MakeGenericType(t))))
+ foreach (var option in types.Select(t => _serviceProvider.GetService(typeof(IOptions<>).MakeGenericType(t))))
{
yield return option!.GetType().GetProperty("Value", BindingFlags.Public | BindingFlags.Instance)!.GetValue(option);
}
From 79fdcc1c692883b4f11bf9133b3436903cb8484d Mon Sep 17 00:00:00 2001
From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:46:18 +0100
Subject: [PATCH 21/21] IsConstructedGenericType
---
src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs | 2 +-
src/ModularPipelines/Engine/OptionsProvider.cs | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs b/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
index b68d670b80..d024c6e9b8 100644
--- a/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
+++ b/src/ModularPipelines.GitHub/GitHubRepositoryInfo.cs
@@ -69,7 +69,7 @@ public async Task InitializeAsync()
// Parse owner and repository name from the remote URL
var endpoint = "github";
var sshPattern = $@"git@{endpoint}\.com:(?.+)/(?.+)\.git";
- var httpsPattern = $@"https://{endpoint}\.com/(?.+)/(?.+)(\.git)?";
+ var httpsPattern = $@"https://(.*@)?{endpoint}\.com/(?.+)/(?.+)(\.git)?";
var match = Regex.Match(remoteUrl, sshPattern);
if (!match.Success)
diff --git a/src/ModularPipelines/Engine/OptionsProvider.cs b/src/ModularPipelines/Engine/OptionsProvider.cs
index 7fcde8869a..46a9158fb3 100644
--- a/src/ModularPipelines/Engine/OptionsProvider.cs
+++ b/src/ModularPipelines/Engine/OptionsProvider.cs
@@ -20,6 +20,7 @@ public OptionsProvider(IPipelineServiceContainerWrapper pipelineServiceContainer
var types = _pipelineServiceContainerWrapper.ServiceCollection
.Select(sd => sd.ServiceType)
.Where(t => t.IsGenericType)
+ .Where(x => x.IsConstructedGenericType)
.Where(t =>
{
var genericTypeDefinition = t.GetGenericTypeDefinition();