-
-
Notifications
You must be signed in to change notification settings - Fork 329
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
✨ (config): add GitRepoMappingTool for repository mappings
♻️ (refactor): replace TfsGitRepoMappings with GitRepoMappingTool 📝 (docs): update documentation for GitRepoMappingTool 🔧 (config): remove deprecated GitRepoMapContainer Introduce a new configuration section `GitRepoMappingTool` to handle repository mappings, replacing the old `TfsGitRepoMappings`. This change centralizes repository mapping logic, making it more maintainable and easier to configure. Updated the documentation to reflect these changes and removed the deprecated `GitRepoMapContainer` to clean up the codebase. ✨ (GitRepoMappingTool): add GitRepoMappingTool and its options for work item processing Introduce a new `GitRepoMappingTool` class to process string fields of work items, allowing for data cleanup and regex replacements. This tool is configurable via `GitRepoMappingToolOptions`. ♻️ (ServiceCollectionExtensions): register GitRepoMappingTool in service collection Update `ServiceCollectionExtensions` to register the new `GitRepoMappingTool` and its options, ensuring it is available for dependency injection. 🔥 (EngineConfiguration, Containers): remove deprecated GitRepoMapContainer and UserMapContainer Remove the old `GitRepoMapContainer` and `UserMapContainer` classes, along with the `GitRepoMapping` property from `EngineConfiguration`. These are replaced by the new `GitRepoMappingTool`. The changes introduce a more flexible and maintainable way to handle Git repository mappings within the migration tools, replacing the older container-based approach with a more modern and configurable tool.
- Loading branch information
Showing
14 changed files
with
132 additions
and
95 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
src/MigrationTools/ProcessorEnrichers/WorkItemProcessorEnrichers/GitRepoMappingTool.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Collections.ObjectModel; | ||
using System.Text; | ||
using System.Text.RegularExpressions; | ||
using Microsoft.Extensions.Logging; | ||
using Microsoft.Extensions.Options; | ||
using MigrationTools.DataContracts; | ||
using MigrationTools.Enrichers; | ||
using MigrationTools.Processors; | ||
using static Microsoft.VisualStudio.Services.Graph.GraphResourceIds.Users; | ||
|
||
namespace MigrationTools.ProcessorEnrichers.WorkItemProcessorEnrichers | ||
{ | ||
/// <summary> | ||
/// Used to process the String fields of a work item. This is useful for cleaning up data. It will limit fields to a max length and apply regex replacements based on what is configured. Each regex replacement is applied in order and can be enabled or disabled. | ||
/// </summary> | ||
public class GitRepoMappingTool : WorkItemProcessorEnricher | ||
{ | ||
private Serilog.ILogger contextLog; | ||
private GitRepoMappingToolOptions _options; | ||
|
||
public ReadOnlyDictionary<string, string> Mappings { get; private set; } | ||
|
||
public GitRepoMappingTool(IOptions<GitRepoMappingToolOptions> options, IServiceProvider services, ILogger<StringManipulatorEnricher> logger, ITelemetryLogger telemetryLogger) | ||
: base(services, logger, telemetryLogger) | ||
{ | ||
if (options is null) | ||
{ | ||
throw new ArgumentNullException(nameof(options)); | ||
} | ||
_options = options.Value; | ||
Mappings = new ReadOnlyDictionary<string, string>( _options.Mappings); | ||
contextLog = Serilog.Log.ForContext<StringManipulatorEnricher>(); | ||
} | ||
|
||
[Obsolete] | ||
public override void Configure(IProcessorEnricherOptions options) | ||
Check warning on line 38 in src/MigrationTools/ProcessorEnrichers/WorkItemProcessorEnrichers/GitRepoMappingTool.cs GitHub Actions / Build, Test, Sonar Cloud Analysis, & Package
|
||
{ | ||
if (options is null) | ||
{ | ||
throw new ArgumentNullException(nameof(options)); | ||
} | ||
if (!(options is StringManipulatorEnricherOptions)) | ||
{ | ||
throw new InvalidCastException(nameof(options)); | ||
} | ||
_options = (GitRepoMappingToolOptions)options; | ||
} | ||
|
||
protected override void EntryForProcessorType(IProcessor processor) | ||
{ | ||
throw new NotImplementedException(); | ||
} | ||
|
||
protected override void RefreshForProcessorType(IProcessor processor) | ||
{ | ||
throw new NotImplementedException(); | ||
} | ||
public override void ProcessorExecutionWithFieldItem(IProcessor processor, FieldItem fieldItem) | ||
{ | ||
|
||
|
||
} | ||
|
||
|
||
} | ||
|
||
} | ||
|
28 changes: 28 additions & 0 deletions
28
...MigrationTools/ProcessorEnrichers/WorkItemProcessorEnrichers/GitRepoMappingToolOptions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using MigrationTools.Options; | ||
using MigrationTools.ProcessorEnrichers.WorkItemProcessorEnrichers; | ||
|
||
namespace MigrationTools.Enrichers | ||
{ | ||
public class GitRepoMappingToolOptions : ProcessorEnricherOptions | ||
{ | ||
public const string ConfigurationSectionName = "MigrationTools:CommonEnrichers:GitRepoMappingTool"; | ||
|
||
public override Type ToConfigure => typeof(GitRepoMappingTool); | ||
|
||
|
||
/// <summary> | ||
/// List of work item mappings. | ||
/// </summary> | ||
/// <default>{}</default> | ||
public Dictionary<string, string> Mappings { get; set; } | ||
|
||
public override void SetDefaults() | ||
{ | ||
Enabled = true; | ||
Mappings = new Dictionary<string, string> { { "Default", "Default2" } }; | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.