Skip to content

Commit 29723dc

Browse files
Support name change adhocdatasource instead of gqidatasource
1 parent 4000e07 commit 29723dc

File tree

5 files changed

+64
-29
lines changed

5 files changed

+64
-29
lines changed

CICD.Tools.GitHubToCatalogYamlTests/CatalogManagerTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ public async Task CheckType_ShouldInferTypeFromMultipleTopicsCorrectly()
434434
await catalogManager.ProcessCatalogYamlAsync(repoName);
435435

436436
// Assert
437-
mockFileSystem.Verify(fs => fs.File.WriteAllText(catalogFilePath, It.Is<string>(s => s.Contains("type: gqidatasource"))), Times.Once);
437+
mockFileSystem.Verify(fs => fs.File.WriteAllText(catalogFilePath, It.Is<string>(s => s.Contains("type: adhocdatasource"))), Times.Once);
438438
}
439439

440440
[TestMethod]

CICD.Tools.GitHubToCatalogYamlTests/CleanTitleTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class CleanTitleTests
1313
[DataRow("SkylineCommunications/PCKTV-AS-RegressionTests", "RegressionTests", "automationscript")]
1414
[DataRow("SkylineCommunications/RBM-AS-Playout", "Playout", "automationscript")]
1515
[DataRow("SkylineCommunications/SLC-Doc-Vodafone-Deutschland-GmbH", "Vodafone-Deutschland-GmbH", "documentation")]
16-
[DataRow("SkylineCommunications/FOXA-GQIDS-GetAppearTVData", "GetAppearTVData", "gqidatasource")]
16+
[DataRow("SkylineCommunications/FOXA-GQIDS-GetAppearTVData", "GetAppearTVData", "adhocdatasource")]
1717
[DataRow("SkylineCommunications/YLE-C-Avid-iNewsOrder-Ingest", "Avid-iNewsOrder-Ingest", "connector")]
1818
[DataRow("SkylineCommunications/ngx-dwa-theme-creation-helper", "ngx-dwa-theme-creation-helper", null)]
1919
public void CleanTitleTestHappy(string input, string expectedTitle, string expectedType)

Skyline.DataMiner.CICD.Tools.GitHubToCatalogYaml/CatalogManager.cs

+7-5
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,15 @@ public async Task ProcessCatalogYamlAsync(string repoName, string catalogIdentif
9292
private static string InferArtifactContentType(string keyword)
9393
{
9494
// Check if the keyword exists in the dictionary
95-
if (Constants.ArtifactTypeMap.TryGetValue(keyword.ToUpper(), out var contentType))
95+
var contentType = Constants.ArtifactTypeMap.FirstOrDefault(p => p.IsMatch(keyword));
96+
if (contentType != null)
9697
{
97-
return contentType;
98+
return contentType.CatalogName;
99+
}
100+
else
101+
{
102+
return String.Empty;
98103
}
99-
100-
return Constants.ArtifactTypeMap.FirstOrDefault(pair => pair.Value.Equals(keyword, StringComparison.OrdinalIgnoreCase)).Value ??
101-
String.Empty;
102104
}
103105

104106
/// <summary>

Skyline.DataMiner.CICD.Tools.GitHubToCatalogYaml/CleanTitle.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@ public CleanTitle(string githubRepoName)
3030
var splitDash = githubRepoName.Split('-');
3131
if (splitDash.Length > 2 && splitDash[0].Length < 10)
3232
{
33-
if (Constants.ArtifactTypeMap.TryGetValue(splitDash[1].ToUpper(), out string foundItemType))
33+
var foundItemType = Constants.ArtifactTypeMap.FirstOrDefault(p => p.IsMatch(splitDash[1]));
34+
35+
if (foundItemType != null)
3436
{
35-
FoundItemType = foundItemType;
37+
FoundItemType = foundItemType.CatalogName;
3638
hasGuideLineFormat = true;
3739
}
3840
else

Skyline.DataMiner.CICD.Tools.GitHubToCatalogYaml/Constants.cs

+51-20
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,61 @@
22
{
33
using System;
44
using System.Collections.Generic;
5+
using System.Linq;
56

67
internal static class Constants
78
{
8-
// Dictionary mapping keywords to ArtifactContentType
9-
public static readonly Dictionary<string, string> ArtifactTypeMap = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
9+
public static readonly List<ArtifactType> ArtifactTypeMap = new List<ArtifactType>()
1010
{
11-
{ "AS", "automationscript" },
12-
{ "C", "connector" },
13-
{ "CF", "companionfile" },
14-
{ "CHATOPS", "chatopsextension" },
15-
{ "D", "dashboard" },
16-
{ "DISMACRO", "dismacro" },
17-
{ "DOC", "documentation" },
18-
{ "F", "functiondefinition" },
19-
{ "GQIDS", "gqidatasource" },
20-
{ "GQIO", "gqioperator" },
21-
{ "LSO", "lifecycleserviceorchestration" },
22-
{ "PA", "processautomation" },
23-
{ "PLS", "profileloadscript" },
24-
{ "S", "solution" },
25-
{ "SC", "scriptedconnector" },
26-
{ "T", "testingsolution" },
27-
{ "UDAPI", "userdefinedapi" },
28-
{ "V", "visio" }
11+
{ new ArtifactType(new[]{"AS"},"automationscript","Automation Script") },
12+
{ new ArtifactType(new[] { "C" }, "connector", "Connector")},
13+
{ new ArtifactType(new[] { "CF" }, "companionfile", "Companion File")},
14+
{ new ArtifactType(new[] { "CHATOPS" }, "chatopsextension", "ChatOps Extension")},
15+
{ new ArtifactType(new[] { "D" }, "dashboard", "Dashboard")},
16+
{ new ArtifactType(new[] { "DISMACRO" }, "dismacro", "DIS Macro")},
17+
{ new ArtifactType(new[] { "DOC" }, "documentation", "Documentation")},
18+
{ new ArtifactType(new[] { "F" }, "functiondefinition", "Function Definition")},
19+
{ new ArtifactType(new[] { "GQIDS" }, "adhocdatasource", "gqidatasource", "Ad Hoc Data Source")},
20+
{ new ArtifactType(new[] { "GQIO" }, "gqioperator", "GQI Operator")},
21+
{ new ArtifactType(new[] { "LSO" }, "lifecycleserviceorchestration", "Live Cycle Service Orchestration")},
22+
{ new ArtifactType(new[] { "PA" }, "processautomation", "Process Automation") },
23+
{ new ArtifactType(new[] { "PLS" }, "profileloadscript", "Profile Load Script") },
24+
{ new ArtifactType(new[] { "S" }, "solution", "Solution") },
25+
{ new ArtifactType(new[] { "SC" }, "scriptedconnector", "Scriped Connector") },
26+
{ new ArtifactType(new[] { "T" }, "testingsolution", "Testing Solution") },
27+
{ new ArtifactType(new[] { "UDAPI" }, "userdefinedapi", "User Defined API") },
28+
{ new ArtifactType(new[] { "V" }, "visio", "Visio") }
2929
};
3030
}
31+
32+
internal class ArtifactType
33+
{
34+
public string[] GitHubNames { get; set; }
35+
36+
public string[] GitHubAbbreviations { get; set; }
37+
38+
public string CatalogName { get; set; }
39+
40+
public ArtifactType(string[] abbreviations, string catalogName, params string[] githubNames)
41+
{
42+
GitHubAbbreviations = abbreviations;
43+
44+
GitHubNames = githubNames;
45+
46+
CatalogName = catalogName;
47+
}
48+
49+
public bool IsMatch(string searchTerm)
50+
{
51+
if (searchTerm.Equals(CatalogName, StringComparison.OrdinalIgnoreCase) ||
52+
GitHubAbbreviations.Contains(searchTerm, StringComparer.InvariantCultureIgnoreCase) ||
53+
GitHubNames.Contains(searchTerm, StringComparer.InvariantCultureIgnoreCase))
54+
{
55+
return true;
56+
}
57+
58+
return false;
59+
}
60+
}
61+
3162
}

0 commit comments

Comments
 (0)