Skip to content

Suppress APIScan documentationnotfound finding for Extensions.Abstractions - #4531

Closed
cheenamalhotra wants to merge 4 commits into
mainfrom
dev/cheena/jubilant-telegram
Closed

Suppress APIScan documentationnotfound finding for Extensions.Abstractions#4531
cheenamalhotra wants to merge 4 commits into
mainfrom
dev/cheena/jubilant-telegram

Conversation

@cheenamalhotra

@cheenamalhotra cheenamalhotra commented Aug 11, 2026

Copy link
Copy Markdown
Member

Summary

Resolves the APIScan documentationnotfound error reported against microsoft.data.sqlclient.extensions.abstractions.dll for Microsoft.Data.SqlClient.SqlAuthenticationProviderManager, along with the accompanying Guardian warning about a missing suppression file.

Suppression file expected at D:\a\_work\1\.gdn\.gdnsuppress but not found.
ApiScan Error documentationnotfound - File: release/netstandard2.0/microsoft.data.sqlclient.extensions.abstractions.dll.
Signature: ed88d73ca41890d1e3d1e94bb67a93b82ea582c60ac6f496223b89c2da201f62

Changes

.config/guardian/.gdnsuppress (new) — Guardian suppression file containing the single APIScan signature under the default suppression set, with a justification marking it as temporary. Lives alongside the existing baseline and other SDL tool configs (CredScan/PoliCheck/TSA).

sqlclient-official.yml / sqlclient-non-official.yml — wire globalSdl.suppression to that file. Guardian previously looked for a suppression file at its default agent location (<work>/.gdn/.gdnsuppress), which this repo never provided; that is the source of the "Suppression file expected at ... but not found" message.

Why the suppression file rather than the baseline

.gdnbaselines is documented in both pipelines as a snapshot of findings that pre-existed the breakOnSdlError rollout. Putting a new, post-baseline waiver there would make the snapshot drift and blur its meaning. Suppressions are the intended mechanism for consciously accepted new findings, so this finding is recorded only in .gdnsuppress — one place to remove when the underlying documentation issue is fixed. The baseline file is left byte-identical to its original snapshot.

Checklist

  • Tests added or updated (n/a — pipeline/SDL config only)
  • Public API changes documented (n/a)
  • Verified against customer repro (n/a)
  • Ensure no breaking changes introduced

…tions

Adds signature ed88d73ca41890d1e3d1e94bb67a93b82ea582c60ac6f496223b89c2da201f62
to the Guardian baseline consumed by globalSdl.baseline.baselineFile in both
OneBranch pipelines. This is a temporary suppression pending an upcoming design
change.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@cheenamalhotra
cheenamalhotra requested a review from a team as a code owner August 11, 2026 21:38
Copilot AI lite review requested due to automatic review settings August 11, 2026 21:38
@github-project-automation github-project-automation Bot moved this to To triage in SqlClient Board Aug 11, 2026

Copilot AI 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

This PR suppresses an APIScan documentationnotfound finding for microsoft.data.sqlclient.extensions.abstractions.dll by adding the reported signature to the repo’s Guardian baseline file, aligning with the existing SDL/Guardian baseline workflow used by the OneBranch pipelines.

Changes:

  • Added a new APIScan finding signature entry to .config/guardian/.gdnbaselines.
  • Included metadata for the new entry (memberOf/default + createdDate) and a justification note.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .config/guardian/.gdnbaselines Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 11, 2026 21:58
@cheenamalhotra cheenamalhotra moved this from To triage to In review in SqlClient Board Aug 11, 2026
@cheenamalhotra cheenamalhotra added this to the 7.1.0-preview3 milestone Aug 11, 2026

Copilot AI 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

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.82%. Comparing base (c642196) to head (4d01c9a).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4531      +/-   ##
==========================================
- Coverage   64.84%   62.82%   -2.02%     
==========================================
  Files         288      283       -5     
  Lines       44092    67410   +23318     
==========================================
+ Hits        28590    42349   +13759     
- Misses      15502    25061    +9559     
Flag Coverage Δ
CI-SqlClient ?
PR-SqlClient-Project 62.82% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

apoorvdeshmukh
apoorvdeshmukh previously approved these changes Aug 12, 2026
Guardian was looking for a suppression file at its default agent location
(<work>/.gdn/.gdnsuppress), which does not exist in this repo, producing:

  Suppression file expected at ...\.gdn\.gdnsuppress but not found.

Adds .config/guardian/.gdnsuppress (alongside the existing baseline and other
SDL tool configs) containing the APIScan documentationnotfound signature, and
points globalSdl.suppression at it in both the official and non-official
OneBranch pipelines.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot AI 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

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (3)

eng/pipelines/onebranch/sqlclient-official.yml:186

  • The PR description says adding the signature to .gdnbaselines is the supported suppression mechanism and that no .gdnsuppress file is required, but this change wires up an explicit suppressionFile and the PR also adds .config/guardian/.gdnsuppress. Please either (a) update the PR description to reflect the suppressionFile approach, or (b) remove the suppressionFile configuration (and the .gdnsuppress file) to keep the change strictly baseline-only.
      suppression:
        suppressionFile: $(Build.SourcesDirectory)/.config/guardian/.gdnsuppress
        suppressionSet: default

.config/guardian/.gdnbaselines:131

  • This new ApiScan signature is being added to the Guardian baseline, but the baseline is described in the pipelines as a snapshot of pre-existing findings. Since this PR also introduces a dedicated suppression file (.gdnsuppress) for post-baseline suppressions, keeping this entry in .gdnbaselines makes the baseline drift and creates redundant suppression paths. Prefer removing this entry from .gdnbaselines and relying on the suppression file instead.
    "ed88d73ca41890d1e3d1e94bb67a93b82ea582c60ac6f496223b89c2da201f62": {
      "signature": "ed88d73ca41890d1e3d1e94bb67a93b82ea582c60ac6f496223b89c2da201f62",
      "alternativeSignatures": [],
      "memberOf": [
        "default"

eng/pipelines/onebranch/sqlclient-non-official.yml:171

  • Same as sqlclient-official.yml: the PR description claims baseline-only suppression with no .gdnsuppress, but this pipeline now configures globalSdl.suppression to point at .config/guardian/.gdnsuppress. Align the PR description and suppression mechanism (baseline-only vs suppressionFile) to avoid confusion for future maintainers.
      suppression:
        suppressionFile: $(Build.SourcesDirectory)/.config/guardian/.gdnsuppress
        suppressionSet: default

Comment thread .config/guardian/.gdnbaselines Outdated
Addresses review feedback:
- Remove the duplicate signature entry from .config/guardian/.gdnbaselines so
  the baseline stays a pristine snapshot of pre-rollout findings and there is
  only one place to clean up when the waiver is lifted.
- Apply the tightened justification wording to the .gdnsuppress entry.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 13, 2026 17:09

Copilot AI 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

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@cheenamalhotra

cheenamalhotra commented Aug 13, 2026

Copy link
Copy Markdown
Member Author

Turns out this cannot be suppressed:

##[warning]Result with signature: ed88d73ca41890d1e3d1e94bb67a93b82ea582c60ac6f496223b89c2da201f62 was determined to be suppressed, but policy indicates that results matching rule id: documentationnotfound cannot be suppressed. Result will be considered breaking.

Closing PR and we should prioritize #4348

@github-project-automation github-project-automation Bot moved this from In review to Done in SqlClient Board Aug 13, 2026
@cheenamalhotra
cheenamalhotra deleted the dev/cheena/jubilant-telegram branch August 13, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants