Repository navigation
Publish documentation and rule status with DocFX on GitHub Pages - #4218
Merged
Merged
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adapt the status page and generator repair from commit 7787b2d27ca2cab119d103fe83792151a97776da on aarnott-status-page-repair for the combined documentation site. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Embed the status fragment in a full-width DocFX page with shared navigation, accessible status icons, and a redirect from the previous URL. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The DocFX tool manifest must be moved to .config/dotnet-tools.json so the documented and CI restore commands can discover it.
1 open finding
What changed in this PR
Builds and publishes unified DocFX documentation and rule-status pages, while redirecting analyzer help links to the deployed site.
Changes:
- Adds DocFX configuration, navigation, status rendering, and Pages deployment.
- Modernizes the status generator and adds failure handling and regression tests.
- Centralizes analyzer documentation URLs.
| File | Description |
|---|---|
toc.yml |
Adds top-level site navigation. |
docfx.json |
Configures the DocFX build. |
dotnet-tools.json |
Pins DocFX; currently placed where local-tool discovery cannot find it. |
.github/workflows/build.yml |
Builds and deploys the documentation site. |
.gitignore |
Ignores generated documentation and status output. |
CONTRIBUTING.md |
Documents site build and preview steps. |
README.md |
Points users to published documentation. |
build/status-page.test.cjs |
Adds status-page regression tests. |
docs/index.html |
Redirects the legacy status URL. |
docs/status.md |
Implements the embedded status page. |
documentation/index.md |
Adds the documentation landing page. |
documentation/RuleStatus.md |
Hosts the status fragment in DocFX. |
documentation/SA1500.md |
Corrects its local anchor link. |
documentation/SA1633.md |
Makes its configuration link local. |
documentation/SA1636.md |
Makes its configuration link local. |
documentation/SA1641.md |
Makes its configuration link local. |
StyleCop.Analyzers/StyleCop.Analyzers/HelpLinkHelper.cs |
Centralizes published help URLs. |
StyleCop.Analyzers/StyleCop.Analyzers/AnalyzerReleases.Unshipped.md |
Updates release-table documentation links. |
StyleCop.Analyzers/StyleCop.Analyzers.Test/Helpers/HelpLinkHelper.cs |
Adds independent expected-URL generation. |
StyleCop.Analyzers/StyleCop.Analyzers.Test/Helpers/ExclusionTestAnalyzer.cs |
Updates the test diagnostic URL. |
StyleCop.Analyzers/StyleCop.Analyzers.Test/AnalyzerExtensionsTests.cs |
Updates test analyzer help links. |
StyleCop.Analyzers/StyleCop.Analyzers.Test/AnalyzerConfigurationUnitTests.cs |
Verifies centralized help-link formatting. |
StyleCop.Analyzers/StyleCop.Analyzers.Status.Generator/StyleCop.Analyzers.Status.Generator.csproj |
Modernizes the generator runtime and dependencies. |
StyleCop.Analyzers/StyleCop.Analyzers.Status.Generator/SolutionReader.cs |
Honors the selected build configuration. |
StyleCop.Analyzers/StyleCop.Analyzers.Status.Generator/Program.cs |
Rejects empty reports. |
StyleCop.Analyzers/StyleCop.Analyzers.CodeFixes/Settings/SettingsFileCodeFixProvider.cs |
Updates configuration guidance URL. |
StyleCop.Analyzers/StyleCop.Analyzers.CodeFixes/PackageReadme.md |
Updates package documentation links. |
StyleCop.Analyzers/StyleCop.Analyzers/{SpecialRules,SpacingRules,ReadabilityRules,OrderingRules,NamingRules,MaintainabilityRules,LayoutRules,DocumentationRules}/*.cs |
Migrates analyzer descriptors and related XML references to the centralized published help URLs. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4218 +/- ##
========================================
Coverage 97.57% 97.57%
========================================
Files 1276 1278 +2
Lines 135692 135876 +184
Branches 4383 4383
========================================
+ Hits 132397 132583 +186
+ Misses 2135 2134 -1
+ Partials 1160 1159 -1 🚀 New features to boost your workflow:
|
This was referenced Nov 11, 2026
Bump StyleCop.Analyzers from 1.2.0-beta.556 to 1.3.180
microsoftgraph/aspnetcore-webhooks-sample#436
Open
This was referenced Nov 13, 2026
Open
Open
Merged
Open
Bump StyleCop.Analyzers from 1.2.0-beta.556 to 1.3.180
microsoftgraph/msgraph-sample-aspnet-core#256
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

The rule documentation currently lives in GitHub Markdown, and the existing Pages status page depends on a retired AppVeyor report endpoint. This brings both into a single DocFX site with consistent navigation and reliable build-generated status data.
Approach
[!INCLUDE]page using DocFX's full-width layout. Keep the shared header, footer, theme controls, accessible status icons, and links to local rule documentation. Redirect the previous/status/index.htmlURL to/RuleStatus.html.master, after the build, generated-file checks, status-page tests, and analyzer tests succeed.Migration notes
Repository Settings > Pages > Source must be changed from branch publishing to GitHub Actions, and the
github-pagesenvironment must allow deployment frommaster. The site root becomes the documentation overview rather than the old status page.The status repair adapts commit
7787b2d27ca2cab119d103fe83792151a97776dafromaarnott-status-page-repairfor this combined deployment. Local build and preview instructions are inCONTRIBUTING.md.Analyzer registrations and analysis callbacks are unchanged. Help-link strings are generated once during static initialization, not during analysis.
Validation
net472.Full CI validation is pending; this PR is a draft.