You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/MigrationTools.Clients.TfsObjectModel/Tools/TfsNodeStructureToolOptions.cs
+39-39Lines changed: 39 additions & 39 deletions
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,9 @@
1
1
usingSystem;
2
2
usingSystem.Collections.Generic;
3
-
usingSystem.Text.Json.Serialization;
4
-
usingMicrosoft.Extensions.Options;
5
3
usingSystem.Text.RegularExpressions;
6
-
usingMicrosoft.TeamFoundation.Build.Client;
7
-
usingMigrationTools.Enrichers;
8
-
usingMigrationTools.Tools.Infrastructure;
9
-
usingNewtonsoft.Json.Schema;
10
4
usingDotNet.Globbing;
5
+
usingMicrosoft.Extensions.Options;
6
+
usingMigrationTools.Tools.Infrastructure;
11
7
usingSerilog;
12
8
13
9
namespaceMigrationTools.Tools
@@ -20,22 +16,14 @@ public sealed class TfsNodeStructureToolOptions : ToolOptions, ITfsNodeStructure
20
16
/// <summary>
21
17
/// Rules to apply to the Area Path. Is an object of NodeOptions e.g. { "Filters": ["*/**"], "Mappings": { "^oldProjectName([\\\\]?.*)$": "targetProjectA$1", } }
/// Rules to apply to the Area Path. Is an object of NodeOptions e.g. { "Filters": ["*/**"], "Mappings": { "^oldProjectName([\\\\]?.*)$": "targetProjectA$1", } }
/// When set to True the susyem will try to create any missing missing area or iteration paths from the revisions.
@@ -47,16 +35,29 @@ public sealed class TfsNodeStructureToolOptions : ToolOptions, ITfsNodeStructure
47
35
publicclassNodeOptions
48
36
{
49
37
/// <summary>
50
-
/// Using the Glob format you can specify a list of nodes that you want to match. This can be used to filter the main migration of current nodes. note: This does not negate the nees for all nodes in the history of a work item in scope for the migration MUST exist for the system to run, and this will be validated before the migration. e.g. add "migrationSource1\\Team 1,migrationSource1\\Team 1\\**" to match both the Team 1 node and all child nodes.
38
+
/// Using the Glob format you can specify a list of nodes that you want to match. This can be used to filter the main migration of current nodes. note: This does not negate the nees for all nodes in the history of a work item in scope for the migration MUST exist for the system to run, and this will be validated before the migration. e.g. add "migrationSource1\\Team 1,migrationSource1\\Team 1\\**" to match both the Team 1 node and all child nodes.
51
39
/// </summary>
52
-
/// <default>["/"]</default>
53
-
publicList<string>Filters{get;set;}
40
+
/// <default>[]</default>
41
+
publicList<string>Filters{get;set;}=[];
54
42
/// <summary>
55
43
/// Remapping rules for nodes, implemented with regular expressions. The rules apply with a higher priority than the `PrefixProjectToNodes`,
56
44
/// that is, if no rule matches the path and the `PrefixProjectToNodes` option is enabled, then the old `PrefixProjectToNodes` behavior is applied.
57
45
/// </summary>
58
-
/// <default>{}</default>
59
-
publicDictionary<string,string>Mappings{get;set;}
46
+
/// <default>[]</default>
47
+
publicList<NodeMapping>Mappings{get;set;}=[];
48
+
}
49
+
50
+
publicclassNodeMapping
51
+
{
52
+
/// <summary>
53
+
/// The regular expression to match the node path.
54
+
/// </summary>
55
+
publicstringMatch{get;set;}=string.Empty;
56
+
57
+
/// <summary>
58
+
/// The replacement format for the matched node path.
0 commit comments