Skip to content

Commit 73877a9

Browse files
authored
Add vulnerable option to telemetry (#50739)
1 parent 0f27f9b commit 73877a9

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

src/Cli/dotnet/Telemetry/TelemetryFilter.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public IEnumerable<ApplicationInsightsEntryFormat> Filter(object objectToFilter)
6262
));
6363

6464
LogVerbosityForAllTopLevelCommand(result, parseResult, topLevelCommandName, measurements);
65+
LogVulnerableOptionForPackageUpdateCommand(result, parseResult, topLevelCommandName, measurements);
6566

6667
foreach (IParseResultLogRule rule in ParseResultLogRules)
6768
{
@@ -138,6 +139,27 @@ TestCommandParser.ConfigurationOption ]
138139
new AllowListToSendVerbSecondVerbFirstArgument(["workload", "tool", "new"]),
139140
];
140141

142+
private static void LogVulnerableOptionForPackageUpdateCommand(
143+
ICollection<ApplicationInsightsEntryFormat> result,
144+
ParseResult parseResult,
145+
string topLevelCommandName,
146+
Dictionary<string, double> measurements = null)
147+
{
148+
if (topLevelCommandName == "package" && parseResult.CommandResult.Command != null && parseResult.CommandResult.Command.Name == "update")
149+
{
150+
var hasVulnerableOption = parseResult.HasOption("--vulnerable");
151+
152+
result.Add(new ApplicationInsightsEntryFormat(
153+
"sublevelparser/command",
154+
new Dictionary<string, string>()
155+
{
156+
{ "verb", "package update" },
157+
{ "vulnerable", hasVulnerableOption.ToString()}
158+
},
159+
measurements));
160+
}
161+
}
162+
141163
private static void LogVerbosityForAllTopLevelCommand(
142164
ICollection<ApplicationInsightsEntryFormat> result,
143165
ParseResult parseResult,

test/dotnet.Tests/TelemetryCommandTest.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,20 @@ public void DotnetRunCleanTestCommandOpinionsShouldBeSentToTelemetryWhenThereIsM
358358
e.Properties["verb"] == Sha256Hasher.Hash("CLEAN"));
359359
}
360360

361+
[Fact]
362+
public void DotnetUpdatePackageVulnerableOptionShouldBeSentToTelemetry()
363+
{
364+
const string optionKey = "vulnerable";
365+
string[] args = { "package", "update", "--vulnerable" };
366+
Cli.Program.ProcessArgs(args);
367+
_fakeTelemetry
368+
.LogEntries.Should()
369+
.Contain(e => e.EventName == "sublevelparser/command" &&
370+
e.Properties.ContainsKey(optionKey) &&
371+
e.Properties.ContainsKey("verb") &&
372+
e.Properties["verb"] == Sha256Hasher.Hash("PACKAGE UPDATE"));
373+
}
374+
361375
[WindowsOnlyFact]
362376
public void InternalreportinstallsuccessCommandCollectExeNameWithEventname()
363377
{

0 commit comments

Comments
 (0)