Skip to content

Bump the nuget-minor-patch group with 2 updates - #113

Merged
bgard68 merged 1 commit into
mainfrom
dependabot/nuget/nuget-minor-patch-58044e1640
Aug 25, 2026
Merged

Bump the nuget-minor-patch group with 2 updates#113
bgard68 merged 1 commit into
mainfrom
dependabot/nuget/nuget-minor-patch-58044e1640

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 24, 2026

Copy link
Copy Markdown
Contributor

Updated Microsoft.OpenApi from 2.12.0 to 2.12.2.

Release notes

Sourced from Microsoft.OpenApi's releases.

2.12.2

2.12.2 (2026-08-20)

Bug Fixes

2.12.1

2.12.1 (2026-08-19)

Bug Fixes

Commits viewable in compare view.

Updated Scalar.AspNetCore from 2.16.20 to 2.17.1.

Release notes

Sourced from Scalar.AspNetCore's releases.

No release notes found for this version range.

Commits viewable in compare view.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps Microsoft.OpenApi from 2.12.0 to 2.12.2
Bumps Scalar.AspNetCore from 2.16.20 to 2.17.1

---
updated-dependencies:
- dependency-name: Microsoft.OpenApi
  dependency-version: 2.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-minor-patch
- dependency-name: Scalar.AspNetCore
  dependency-version: 2.17.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Aug 24, 2026
@bgard68
bgard68 merged commit 90b4bc1 into main Aug 25, 2026
7 checks passed
@bgard68
bgard68 deleted the dependabot/nuget/nuget-minor-patch-58044e1640 branch August 25, 2026 02:54
bgard68 pushed a commit that referenced this pull request Aug 25, 2026
#113 bumped Microsoft.OpenApi 2.12.0 -> 2.12.2 and regenerated the lock files
that existed at the time. Lottery.Api.Tests is new on this branch, so its lock
file still pinned 2.12.0 and locked-mode restore failed NU1004.

Regenerated with dotnet restore --force-evaluate; no other lock file changed.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AWkVh7cyAz1gWapBH1CY8n
bgard68 added a commit that referenced this pull request Aug 25, 2026
… feed bug that 500s /internal/refresh (#117)

* build(deps): move both codeql-action steps to 4.37.8 in one commit

Dependabot bumps init and analyze in separate PRs (#110, #114), but the two
steps must run the same codeql-action version - a mismatched pair ends the
Analyze job in a configuration error. Same consolidation #105 did for 4.37.7.
Supersedes #110 and #114.

* build: add coverlet.collector and Mvc.Testing, register Lottery.Api.Tests

Coverage was not measurable at all - no collector was referenced by any test
project. Adds coverlet.collector to all four, Microsoft.AspNetCore.Mvc.Testing
for the new API integration tests, and the new project to the solution.

* test(api): add the host factory and offline feed fakes

Boots the real API over a throwaway SQLite file so migrations, seeding,
routing and middleware are all exercised for real; only the live feeds and the
timer-driven refresh loop are replaced, which keeps a test run offline.

* test(api): endpoints, security headers, refresh gate, health check, refresh loop

66 tests over the four API source files that previously had none.

* test(api): security headers, refresh key gate, health check, refresh loop

* test(api): health check verdicts and the refresh loop on virtual time

* ci: scope cleanup-runs' actions:write to its job, document CodeQL's grant

GHA002 flagged both as excessive token permissions. cleanup-runs genuinely was
- actions:write applied workflow-wide, so any job added later would inherit the
ability to delete runs; it now sits on the one job that needs it.

CodeQL's security-events:write is the floor rather than a convenience: code
scanning has no read-only ingest path, so analyze cannot upload its SARIF
without it. It was already job-scoped with the workflow default left read-only;
the comment records why so the finding is not re-raised.

* build: sync Lottery.Application.Tests lock file for coverlet.collector

CI restores with --locked-mode, so the lock file has to carry the new
reference or the restore fails NU1004.

* build: sync test lock files for coverlet.collector

CI restores with --locked-mode, so the lock files have to carry the new
reference or the restore fails NU1004. Lottery.Api.Tests is a new project,
so this is its initial lock file.

* ci: close gate-integrity gaps and tighten workflow permissions

Three checks could report success while proving nothing: era-check's live-feed
validation exited 0 when the API was unreachable (no set -e, and [ "" -gt 0 ]
returns 2, making the if false); gate-probes' third probe did not guard its
setup or check that the failure was the planted one; and the Start API wait
loops exit 0 whether or not the API came up.

Also scopes deploy-api's id-token:write to its job, grants dependency-review
the pull-requests:write its comment-summary-in-pr silently needed, passes
API_BASE_URL through env instead of interpolating it into a run line, adds
concurrency groups to the PR-triggered workflows, and stops gitleaks
allowlisting package-lock.json wholesale (npm lock files can carry inline
registry credentials in resolved URLs; only integrity hashes are excluded now).

Adds coverlet.runsettings so coverage measures our code rather than the
thousands of generated OpenAPI lines nothing we write can cover.

* ci: close gate-integrity gaps and tighten workflow permissions

Three checks could report success while proving nothing: era-check's live-feed
validation exited 0 when the API was unreachable (no set -e, and [ "" -gt 0 ]
returns 2, making the if false); gate-probes' third probe did not guard its
setup or check that the failure was the planted one; and the Start API wait
loops exit 0 whether or not the API came up.

Also scopes deploy-api's id-token:write to its job, grants dependency-review
the pull-requests:write its comment-summary-in-pr silently needed, passes
API_BASE_URL through env instead of interpolating it into a run line, adds
concurrency groups to the PR-triggered workflows, and stops gitleaks
allowlisting package-lock.json wholesale (npm lock files can carry inline
registry credentials in resolved URLs; only integrity hashes are excluded now).

Adds coverlet.runsettings so coverage measures our code rather than the
thousands of generated OpenAPI lines nothing we write can cover.

* build(deps): stop Dependabot re-proposing three PRs that cannot merge

#116, #111 and #109 each bump a package that a peer or framework constraint
caps, so every one fails before its tests run and is re-proposed the next week:

* Microsoft.OpenApi 3.x - AspNetCore.OpenApi 10.0.x requires >= 2.7.5 && < 3.0.0,
  so the restore trips NU1608, which Directory.Build.props promotes to an error.
  This is the constraint #107 pinned 2.x for.
* typescript 7.x - @angular/build 22.x has peer typescript >= 6.0 < 6.1.
* jasmine-core 7.x - karma-jasmine-html-reporter 2.2 peers ^4 || ^5 || ^6.

Each ignore is scoped to semver-major and carries the condition for lifting it,
so minor and patch updates - security ones included - keep flowing.

Also adds the missing nuget entry for the frontend branch: that branch carries
src/Lottery.Api and its CI builds it, but the existing nuget entry has no
target-branch, so those packages were never bumped or scanned.

* docs(tests): document Lottery.Api.Tests and the coverage settings

The README still said "109 tests across three projects". Adds the API layer's
66 tests and a note on coverlet.runsettings, which excludes the OpenAPI
generator's output so the coverage figure measures our own code.

* test(domain): cover Draw, RuleEra bounds, PrizeTier and the unknown-Game guards

* test(application): cover the jackpot-refresh and result-mapping paths

* test(infrastructure): cover the feeds, the import ledger and the DI wiring

* test(infrastructure): cover the feeds, the import ledger and the DI wiring

* fix(feeds): stop parse failures 500ing /internal/refresh

MegaMillionsJackpotFeed's own summary promises "any shape change degrades to
null rather than throwing", and both sibling jackpot feeds guard
HttpRequestException and JsonException. This one guarded nothing:
XDocument.Parse throws XmlException on a non-XML body and Deserialize throws
JsonException on a truncated one.

Neither type is matched by RefreshGame's catch filter, and CompositeJackpotFeed
passes them straight through, so they escape RefreshGame.ExecuteAsync.
/internal/refresh - the endpoint the keep-alive workflow calls - has no
try/catch, so the request 500s and any game after the failing one is skipped.

The trigger is the one this repo has already been bitten by: a bot-challenge
HTML page served with a 200, which is what retired powerball.com's API.

SocrataWinningNumbersFeed had the same escape by a different route. It still
refuses the whole batch - a silently short batch would let gap-repair skip real
draws - but now as InvalidOperationException with the cause kept, which is the
type the caller already handles.

The ten tests that pinned the previous behaviour now assert the corrected
contract. 316 tests pass; coverage unchanged.

* fix(feeds): restore the real MmPayload/MmJackpot shape

The previous commit rewrote these DTOs while adding the exception guard. That
was not part of the fix and it was wrong: the JSON property is Winners, not
JackpotWinners, so deserialization would have silently produced a null winner
count and lost the rollover flag. Restores the file to the tested version -
the guard, and nothing else, changed.

* fix(feeds): report Socrata parse failures as a handled feed error

A malformed payload, or a row whose winning_numbers is short or non-numeric,
escaped as JsonException / FormatException / ArgumentOutOfRangeException. None
of those match RefreshGame's catch filter, so one bad row 500s
/internal/refresh instead of being reported.

The batch is still refused - delivering a silently short batch would let
gap-repair skip real draws - but as InvalidOperationException with the cause
kept, which is the type the caller already handles.

* test(feeds): assert the corrected degradation contract

These ten tests previously pinned the pre-fix behaviour, deliberately written
so a fix would fail them loudly rather than pass silently. MegaMillions now
degrades to null on a non-XML body, a truncated payload and a 5xx, matching its
class comment and both sibling feeds; Socrata still refuses a batch containing
a bad row but reports it as InvalidOperationException with the cause kept.

* build: sync Lottery.Api.Tests lock file for OpenApi 2.12.2

#113 bumped Microsoft.OpenApi 2.12.0 -> 2.12.2 and regenerated the lock files
that existed at the time. Lottery.Api.Tests is new on this branch, so its lock
file still pinned 2.12.0 and locked-mode restore failed NU1004.

Regenerated with dotnet restore --force-evaluate; no other lock file changed.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AWkVh7cyAz1gWapBH1CY8n

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant