General improvements: built-in defaults, config-file report options, doc restructuring#155
Conversation
When no .buildmark.yaml file is present, BuildMark now applies a default configuration with three report sections (Changes, Bugs Fixed, Dependency Updates) and six routing rules that classify items by label and work-item type. This ensures dependency-manager PRs from Renovate/Dependabot are automatically routed to the Dependency Updates section out of the box. Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Verify section titles, label match lists, work-item-type match lists, and the catch-all rule's null match for complete coverage of the built-in default configuration. Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Add ReportConfig record for report generation options (file, depth, include-known-issues) and integrate it into BuildMarkConfig. Parse the new 'report' section in BuildMarkConfigReader following the same pattern as the existing connector parser. Update Program.ProcessBuildNotes to resolve effective report options where CLI arguments override config file values. Add tests for valid report section parsing and invalid depth validation. Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
…RY-OF-OPERATIONS Items 3-7 from issue: - Item 3: Remove THEORY-OF-OPERATIONS.md, update README link to User Guide - Item 4: Trim README by replacing detailed Configuration File, Extended Item Controls, and Report Format sections with concise summaries pointing to the User Guide - Item 5: Split monolithic introduction.md into focused files: configuration.md, cli-reference.md, item-controls.md, advanced-topics.md; update definition.yaml - Item 6: Add quick reference summary table to cli-reference.md; add Report Options and Built-in Defaults sections to configuration.md - Item 7: Update feature bullets in README.md and introduction.md with routing, dependency tracking, and CI/CD platform specifics Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
…dd Dependency Updates section, path-based prefixes, Azure DevOps best practices Agent-Logs-Url: https://github.com/demaconsulting/BuildMark/sessions/fa308f77-3795-410e-b459-bd0cbd92652a Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Agent-Logs-Url: https://github.com/demaconsulting/BuildMark/sessions/a8b51ed6-4f83-4b82-b34d-5833aa17bd5f Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds built-in defaults and config-driven report options to reduce required CLI/config boilerplate, and restructures the documentation into a multi-file user guide.
Changes:
- Add
BuildMarkConfig.CreateDefault()and apply it automatically when no.buildmark.yamlexists. - Introduce a new top-level
report:config section (file/depth/include-known-issues) with CLI override behavior. - Restructure docs (remove THEORY-OF-OPERATIONS, trim README, split user guide into focused pages).
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| THEORY-OF-OPERATIONS.md | Removes redundant internal/how-it-works doc in favor of user guide structure. |
| test/DemaConsulting.BuildMark.Tests/Configuration/ConfigurationTests.cs | Adds unit tests for default config and parsing of the new report section. |
| src/DemaConsulting.BuildMark/Program.cs | Applies default config when missing and resolves effective report options from CLI + config. |
| src/DemaConsulting.BuildMark/Configuration/ReportConfig.cs | Introduces a model for report options in .buildmark.yaml. |
| src/DemaConsulting.BuildMark/Configuration/BuildMarkConfigReader.cs | Parses the new top-level report section. |
| src/DemaConsulting.BuildMark/Configuration/BuildMarkConfig.cs | Adds Report property and CreateDefault() built-in sections/rules. |
| README.md | Updates feature list and points readers to the new user guide docs. |
| docs/user_guide/introduction.md | Updates feature bullets and trims content moved into split guide pages. |
| docs/user_guide/configuration.md | New dedicated configuration reference (connector/sections/rules/report + defaults). |
| docs/user_guide/cli-reference.md | New dedicated CLI option reference page. |
| docs/user_guide/item-controls.md | New dedicated page for embedded buildmark item controls and ADO custom fields. |
| docs/user_guide/advanced-topics.md | New page for CI/CD examples, report format, version/tag rules, troubleshooting, best practices. |
| docs/user_guide/definition.yaml | Updates Pandoc input ordering to include the newly split guide files. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot apply changes based on the comments in this thread |
… fix Epic normalization Agent-Logs-Url: https://github.com/demaconsulting/BuildMark/sessions/c1c1b0a4-ca39-4843-bb10-9ce2d9d5f97e Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
All three items from that review thread addressed in f3ae1b0:
Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Pull Request
Description
BuildMark lacked sensible defaults when no
.buildmark.yamlwas present and required all report options via CLI. Documentation was spread across a redundantTHEORY-OF-OPERATIONS.md, an oversized README, and a monolithic 932-line user guide.Built-in default configuration
BuildMarkConfig.CreateDefault()provides three sections (Changes, Bugs Fixed, Dependency Updates) and six routing rules covering dependency-manager labels, bug labels/types, internal suppression, and a catch-all. Applied automatically when no config file exists.Config-file report options
New
reporttop-level section in.buildmark.yamlwith CLI override:ReportDepthis nullable (int?) in both the argument parser and context, so--report-depth 1on the CLI correctly overrides a config-file depth value. The default of 1 is applied only at resolution time. Empty or whitespacereport.filevalues produce a configuration error viaGetOptionalScalarValue.Connector type normalization
GitHub
LabelTypeMapnow includesdependencies/renovate/dependabot→"dependencies"andinternal/chore→"internal", so the default routing rules match items with those labels. Azure DevOpsWorkItemMapperno longer normalizesEpicto"feature"— it retains the raw type"Epic"so the default suppression ruleWorkItemType: ["Task", "Epic"]matches correctly.Documentation restructuring
THEORY-OF-OPERATIONS.mdintroduction.md,configuration.md,cli-reference.md,item-controls.md,advanced-topics.md$(GitVersion.SemVer)instead of$(Build.BuildNumber)which is not a valid semantic versionrelease/1.2.3,builds/release/1.2.3) to version tag format documentationType of Change
Related Issues
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
dotnet build --configuration Releasedotnet test --configuration Releasedotnet run --project src/DemaConsulting.BuildMark --configuration Release --framework net10.0--no-build -- --validateCode Quality
dotnet format --verify-no-changesQuality Checks
Please run the following checks before submitting:
./lint.sh(Unix/macOS) orcmd /c lint.bat/./lint.bat(Windows)Testing
Documentation
Additional Notes
467 tests pass (464 existing + 3 new) across .NET 8, 9, and 10. Markdownlint and cspell clean on all changed files. CodeQL security scan passes with no alerts. The
definition.yamlfor Pandoc-based user guide generation has been updated to include the new split files in reading order.