diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs index 39144fd8..2ae331e0 100644 --- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs +++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryTool.cs @@ -78,6 +78,11 @@ public int Enrich(TfsProcessor processor, WorkItemData sourceWorkItem, WorkItem { throw new ArgumentNullException(nameof(targetWorkItem)); } + if (!Options.Enabled) + { + Log.LogWarning("TfsGitRepositoryEnricher is not enabled! We will not fix any git commit links in Work items and they will be ignored."); + return 0; + } Log.LogInformation("GitRepositoryEnricher: Enriching {Id} To fix Git Repo Links", targetWorkItem.Id); var changeSetMappings = Services.GetService(); diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs index ca248b64..b41a87d5 100644 --- a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs +++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptions.cs @@ -1,5 +1,8 @@ using System; using System.Collections.Generic; +using DotNet.Globbing; +using Microsoft.Extensions.Options; +using System.Text.RegularExpressions; using Microsoft.TeamFoundation.Build.Client; using MigrationTools.Enrichers; using MigrationTools.Tools.Infrastructure; @@ -12,6 +15,7 @@ public class TfsGitRepositoryToolOptions : ToolOptions /// List of work item mappings. /// /// {} - public Dictionary Mappings { get; set; } + public Dictionary Mappings { get; set; } = new Dictionary(); } + } \ No newline at end of file diff --git a/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptionsValidator.cs b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptionsValidator.cs new file mode 100644 index 00000000..75155784 --- /dev/null +++ b/src/MigrationTools.Clients.TfsObjectModel/Tools/TfsGitRepositoryToolOptionsValidator.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Extensions.Options; + +namespace MigrationTools.Tools +{ + internal class TfsGitRepositoryToolOptionsValidator : IValidateOptions + { + public ValidateOptionsResult Validate(string name, TfsGitRepositoryToolOptions options) + { + if (options.Mappings == null) + { + return ValidateOptionsResult.Fail("Mappings must be set to at least an empty array"); + } + return ValidateOptionsResult.Success; + } + } +}