Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Add --report-azdo-groups/--report-azdo-annotations on|off toggles - #9542

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles
Jul 1, 2026
Merged

Add --report-azdo-groups/--report-azdo-annotations on|off toggles#9542
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/azdo-report-feature-toggles

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

The Microsoft.Testing.Extensions.AzureDevOpsReport extension's per-assembly log groups and failure annotations were unconditionally on once --report-azdo was set (on an Azure DevOps agent), with no way to disable them individually. This adds two additive on|off knobs (default on), mirroring the GitHubActionsReport per-feature toggle scheme, so each feature can be turned off without affecting the rest of the extension.

This is a non-breaking, additive change: the new options don't exist today, and every feature still defaults to on, so existing behavior is unchanged.

New options

OptionDescriptionDefault
--report-azdo-groups on|offPer-assembly Azure DevOps log groupson
--report-azdo-annotations on|offAzure DevOps failure annotations (##vso[task.logissue])on

Both require --report-azdo and only take effect on an Azure DevOps agent (TF_BUILD=true), consistent with the extension's existing activation model.

Changes

  • AzureDevOpsConstants.IsFeatureKnobEnabled — shared helper (mirrors GitHubActionsFeature.IsKnobEnabled): a knob is enabled unless explicitly set to off.
  • Gated AzureDevOpsLogGroupReporter.IsEnabledAsync on the groups knob and AzureDevOpsReporter.IsEnabledAsync on the annotations knob.
  • Registered the two options with on|off argument validation and requires---report-azdo checks, consistent with the existing sub-options.
  • Added .resx strings and regenerated the .xlf files for all locales via UpdateXlf.
  • Updated the --help/--info expectations in HelpInfoAllExtensionsTests.
  • Added unit tests for the option validation, the toggle helper, and log-group gating.

Context

This came out of a review of #9541 (the new GitHubActionsReport extension). GH ships uniform --report-gh-<feature> on|off knobs from day one; AzDO lacked any off switch for its always-on features. This closes that gap for the two boolean features while intentionally leaving the genuinely multi-valued options (--report-azdo-upload-artifacts mode, --report-azdo-summary path, publish flags) as-is.

Testing

  • Built the extension and unit-test projects (0 errors).
  • All AzureDevOps unit tests pass, including the new validation/gating/helper tests.
  • Note: HelpInfoAllExtensionsTests is an acceptance test that requires build.cmd -pack to run end-to-end; its expectations were updated to exactly match the resx text and arity and should be confirmed in CI.

The AzureDevOpsReport extension's per-assembly log groups and failure
annotations were always on once --report-azdo was set, with no way to
disable them individually. Add two additive on|off knobs (default on)
mirroring the GitHubActionsReport scheme so each feature can be turned
off without affecting the rest of the extension.
- Add IsFeatureKnobEnabled helper and gate the log-group and annotation
reporters on their knob.
- Register the options with on|off validation and requires-'--report-azdo'
checks, consistent with the existing sub-options.
- Add resources (regenerated xlf for all locales) and update the
help/info acceptance expectations.
- Add unit tests for validation, the toggle helper, and log-group gating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings July 1, 2026 11:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-feature on|off toggles to the Azure DevOps report extension so log groups and failure annotations can be disabled independently while keeping the overall --report-azdo behavior unchanged by default (both features default to on).

Changes:

  • Introduced --report-azdo-groups on|off and --report-azdo-annotations on|off with validation and “requires --report-azdo” enforcement.
  • Gated AzureDevOpsLogGroupReporter and AzureDevOpsReporter enablement on the corresponding feature knob.
  • Updated localized resources (.resx + regenerated .xlf files), help/info acceptance expectations, and added unit tests for validation + gating + knob helper semantics.
Show a summary per file
FileDescription
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLogGroupReporterTests.csAdds unit coverage for groups knob gating and updates helper to inject the new option.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsConstantsTests.csAdds unit coverage for the shared IsFeatureKnobEnabled helper behavior.
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsCommandLineProviderTests.csAdds unit coverage for requires---report-azdo validation and on/off argument validation.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.csUpdates --help/--info expectations to include the new CLI options and their descriptions/arity.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlfRegenerated localization entries for new option text and validation strings.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resxAdds new option description strings and an invalid on/off value validation string.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsReporter.csGates failure-annotation reporting on the annotations knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsLogGroupReporter.csGates per-assembly log grouping on the groups knob (in addition to existing activation checks).
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsConstants.csAdds IsFeatureKnobEnabled helper implementing “enabled unless explicitly off”.
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.csRegisters new options and validates `on
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineOptions.csAdds option-name constants and shared on/off literals.

Review details

  • Files reviewed: 23/23 changed files
  • Comments generated: 0
  • Review effort level: Low

@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) July 1, 2026 13:25
@Evangelink
Amaury Levé (Evangelink) merged commit 9f1ae77 into mainJul 1, 2026
33 of 35 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/azdo-report-feature-toggles branch July 1, 2026 13:30
github-actionsBot added a commit that referenced this pull request Jul 4, 2026
- Add --report-azdo-groups/--report-azdo-annotations toggles (#9542) to Platform changelog
- Add re-print errored assemblies in end-of-run recap (#9545) to Platform changelog
- Add server-initiated session cancellation (#9549) to Platform changelog
- Add fix for CloneWithUpdatedSource mutating this (#9581) to MSTest changelog
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink) added a commit that referenced this pull request Jul 5, 2026
…9613)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Evangelink@0101