-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Orchestration Banned APIs Roslyn analyzer #309
Orchestration Banned APIs Roslyn analyzer #309
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some other types to consider: IConfiguration
, IOptions
, IOptionsSnapshot
, IOptionsMonitor
I do have a general question: what is the plan for analyzers when we make a feature which invalidates an analyzer? Not saying we have anything planned, but what if we do something that supplies some special idempotent clients? Which are then safe to call from orchestrations? |
Regarding the invalidation of released analyzers, I think that depends whether the new feature is in a major or minor release.
I am not sure if that's the best process available @jviau, but could work 👍 For reference: SuppressionAnalysisContext .ReportSuppresion docs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some questions and comments, but overall looks good! Thanks!
src/Analyzers/Orchestration/EnvironmentOrchestrationAnalyzer.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: Varshitha Bachu <[email protected]>
…letask-dotnet into banned-apis-analyzers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
This PR adds 3 analyzers that verify whether orchestrations are using banned APIs through:
DURABLE0004
)DURABLE0005
)DURABLE0006
)The list of I/O types is by no means comprehensive or complete, but rather an initial set of well-known types used in Azure Functions - we should augment that list soon. I tried to have feature parity with the types covered by our previous analyzer.