Skip to content

Commit 489fcb2

Browse files
Adds text and markdown reporter for the MinimalCsomPermissionsPlugin. Closes #1082 (#1086)
1 parent d76b880 commit 489fcb2

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

dev-proxy-plugins/Reporters/MarkdownReporter.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class MarkdownReporter(IPluginEvents pluginEvents, IProxyContext context,
2525
{ typeof(HttpFileGeneratorPlugin), TransformHttpFileGeneratorReport },
2626
{ typeof(GraphMinimalPermissionsGuidancePluginReport), TransformGraphMinimalPermissionsGuidanceReport },
2727
{ typeof(GraphMinimalPermissionsPluginReport), TransformGraphMinimalPermissionsReport },
28+
{ typeof(MinimalCsomPermissionsPluginReport), TransformMinimalCsomPermissionsReport },
2829
{ typeof(MinimalPermissionsPluginReport), TransformMinimalPermissionsReport },
2930
{ typeof(OpenApiSpecGeneratorPluginReport), TransformOpenApiSpecGeneratorReport },
3031
{ typeof(UrlDiscoveryPluginReport), TransformUrlDiscoveryReport }
@@ -577,4 +578,39 @@ void transformPermissionsInfo(GraphMinimalPermissionsInfo permissionsInfo, strin
577578

578579
return sb.ToString();
579580
}
581+
582+
private static string? TransformMinimalCsomPermissionsReport(object report)
583+
{
584+
var minimalPermissionsReport = (MinimalCsomPermissionsPluginReport)report;
585+
586+
var sb = new StringBuilder();
587+
sb.AppendLine($"# Minimal CSOM permissions report");
588+
sb.AppendLine();
589+
590+
sb.AppendLine("## Actions");
591+
sb.AppendLine();
592+
sb.AppendJoin(Environment.NewLine, minimalPermissionsReport.Actions.Select(a => $"- {a}"));
593+
sb.AppendLine();
594+
595+
sb.AppendLine();
596+
sb.AppendLine("## Minimal permissions");
597+
sb.AppendLine();
598+
sb.AppendJoin(Environment.NewLine, minimalPermissionsReport.MinimalPermissions.Select(p => $"- {p}"));
599+
sb.AppendLine();
600+
601+
if (minimalPermissionsReport.Errors.Length != 0)
602+
{
603+
sb.AppendLine();
604+
sb.AppendLine("## 🛑 Errors");
605+
sb.AppendLine();
606+
sb.AppendLine("Couldn't determine minimal permissions for the following actions:");
607+
sb.AppendLine();
608+
sb.AppendJoin(Environment.NewLine, minimalPermissionsReport.Errors.Select(e => $"- {e}"));
609+
sb.AppendLine();
610+
}
611+
612+
sb.AppendLine();
613+
614+
return sb.ToString();
615+
}
580616
}

dev-proxy-plugins/Reporters/PlainTextReporter.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class PlainTextReporter(IPluginEvents pluginEvents, IProxyContext context
2525
{ typeof(HttpFileGeneratorPluginReport), TransformHttpFileGeneratorReport },
2626
{ typeof(GraphMinimalPermissionsGuidancePluginReport), TransformGraphMinimalPermissionsGuidanceReport },
2727
{ typeof(GraphMinimalPermissionsPluginReport), TransformGraphMinimalPermissionsReport },
28+
{ typeof(MinimalCsomPermissionsPluginReport), TransformMinimalCsomPermissionsReport },
2829
{ typeof(MinimalPermissionsPluginReport), TransformMinimalPermissionsReport },
2930
{ typeof(OpenApiSpecGeneratorPluginReport), TransformOpenApiSpecGeneratorReport },
3031
{ typeof(UrlDiscoveryPluginReport), TransformUrlDiscoveryReport }
@@ -510,4 +511,33 @@ void transformPermissionsInfo(GraphMinimalPermissionsInfo permissionsInfo, strin
510511

511512
return sb.ToString();
512513
}
514+
515+
private static string? TransformMinimalCsomPermissionsReport(object report)
516+
{
517+
var minimalPermissionsReport = (MinimalCsomPermissionsPluginReport)report;
518+
519+
var sb = new StringBuilder();
520+
521+
sb.AppendLine($"Minimal CSOM permissions report");
522+
sb.AppendLine();
523+
sb.AppendLine("Actions:");
524+
sb.AppendLine();
525+
sb.AppendJoin(Environment.NewLine, minimalPermissionsReport.Actions.Select(a => $"- {a}"));
526+
sb.AppendLine();
527+
sb.AppendLine();
528+
sb.AppendLine("Minimal permissions:");
529+
sb.AppendLine();
530+
sb.AppendJoin(Environment.NewLine, minimalPermissionsReport.MinimalPermissions.Select(p => $"- {p}"));
531+
532+
if (minimalPermissionsReport.Errors.Length != 0)
533+
{
534+
sb.AppendLine();
535+
sb.AppendLine();
536+
sb.AppendLine("Couldn't determine minimal permissions for the following actions:");
537+
sb.AppendLine();
538+
sb.AppendJoin(Environment.NewLine, minimalPermissionsReport.Errors.Select(e => $"- {e}"));
539+
}
540+
541+
return sb.ToString();
542+
}
513543
}

0 commit comments

Comments
 (0)