Skip to content

deps: Bump Microsoft.Extensions.DependencyInjection from 8.0.1 to 10.0.1#15

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/nuget/src/PPDS.Dataverse/multi-20b3b2c9b4
Closed

deps: Bump Microsoft.Extensions.DependencyInjection from 8.0.1 to 10.0.1#15
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/nuget/src/PPDS.Dataverse/multi-20b3b2c9b4

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot bot commented on behalf of github Dec 22, 2025

Updated Microsoft.Extensions.DependencyInjection from 8.0.1 to 10.0.1.

Release notes

Sourced from Microsoft.Extensions.DependencyInjection's releases.

10.0.0-preview.6.25358.103

You can build .NET 10.0 Preview 6 from the repository by cloning the release tag v10.0.0-preview.6.25358.103 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

10.0.0-preview.5.25277.114

You can build .NET 10.0 Preview 5 from the repository by cloning the release tag v10.0.0-preview.5.25277.114 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

10.0.0-preview.4.25258.110

You can build .NET 10.0 Preview 4 from the repository by cloning the release tag v10.0.0-preview.4.25258.110 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

10.0.0-preview.3.25171.5

You can build .NET 10.0 Preview 3 from the repository by cloning the release tag v10.0.0-preview.3.25171.5 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

10.0.0-preview.2.25163.2

You can build .NET 10.0 Preview 2 from the repository by cloning the release tag v10.0.0-preview.2.25163.2 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

10.0.0-preview.1.25080.5

You can build .NET 10.0 Preview 1 from the repository by cloning the release tag v10.0.0-preview.1.25080.5 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.112

You can build .NET 9.0 from the repository by cloning the release tag v9.0.112 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.111

You can build .NET 9.0 from the repository by cloning the release tag v9.0.111 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.110

You can build .NET 9.0 from the repository by cloning the release tag v9.0.110 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.109

You can build .NET 9.0 from the repository by cloning the release tag v9.0.109 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.101

You can build .NET 9.0 from the repository by cloning the release tag v9.0.101 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.7

You can build .NET 9.0 from the repository by cloning the release tag v9.0.7 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.6

You can build .NET 9.0 from the repository by cloning the release tag v9.0.6 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.5

You can build .NET 9.0 from the repository by cloning the release tag v9.0.5 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.4

You can build .NET 9.0 from the repository by cloning the release tag v9.0.4 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.3

You can build .NET 9.0 from the repository by cloning the release tag v9.0.3 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.2

You can build .NET 9.0 from the repository by cloning the release tag v9.0.2 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.1

You can build .NET 9.0 from the repository by cloning the release tag v9.0.1 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0

You can build .NET 9.0 from the repository by cloning the release tag v9.0.0 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-rc.2.24473.5

You can build NET 9.0 RC2 from the repository by cloning the release tag v9.0.0-rc.2.24473.5 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-rc.1.24431.7

You can build .NET 9.0 RC1 from the repository by cloning the release tag v9.0.0-rc.1.24431.7 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-preview.7.24405.7

You can build .NET 9.0 Preview 7 from the repository by cloning the release tag v9.0.0-preview.7.24405.7 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-preview.6.24327.7

You can build .NET 9.0 Preview 6 from the repository by cloning the release tag v9.0.0-preview.6.24327.7 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-preview.5.24306.7

You can build .NET 9.0 Preview 5 from the repository by cloning the release tag v9.0.0-preview.5.24306.7 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-preview.4.24266.19

You can build .NET 9.0 Preview 4 from the repository by cloning the release tag v9.0.0-preview.4.24266.19 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-preview.3.24172.9

You can build .NET 9.0 Preview 3 from the repository by cloning the release tag v9.0.0-preview.3.24172.9 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-preview.2.24128.5

You can build .NET 9.0 Preview 2 from the repository by cloning the release tag v9.0.0-preview.2.24128.5 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

9.0.0-preview.1.24080.9

You can build .NET 9.0 Preview 1 from the repository by cloning the release tag v9.0.0-preview.1.24080.9 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.122

You can build .NET 8.0 from the repository by cloning the release tag v8.0.122 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.121

You can build .NET 8.0 from the repository by cloning the release tag v8.0.121 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.120

You can build .NET 8.0 from the repository by cloning the release tag v8.0.120 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.119

You can build .NET 8.0 from the repository by cloning the release tag v8.0.119 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.100-preview.1

8.0.18

You can build .NET 8.0 from the repository by cloning the release tag v8.0.18 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.17

You can build .NET 8.0 from the repository by cloning the release tag v8.0.17 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.16

You can build .NET 8.0 from the repository by cloning the release tag v8.0.16 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.15

You can build .NET 8.0 from the repository by cloning the release tag v8.0.15 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.14

You can build .NET 8.0 from the repository by cloning the release tag v8.0.14 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.13

You can build .NET 8.0 from the repository by cloning the release tag v8.0.13 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.12

You can build .NET 8.0 from the repository by cloning the release tag v8.0.12 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.11

You can build .NET 8.0 from the repository by cloning the release tag v8.0.11 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.10

You can build .NET 8.0 from the repository by cloning the release tag v8.0.10 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.8

You can build .NET 8.0 from the repository by cloning the release tag v8.0.8 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.7

You can build .NET 8.0 from the repository by cloning the release tag v8.0.7 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.6

You can build .NET 8.0 from the repository by cloning the release tag v8.0.6 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.5

You can build .NET 8 from the repository by cloning the release tag v8.0.5 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.4

You can build .NET 8.0 from the repository by cloning the release tag v8.0.4 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.3

You can build .NET 8.0 from the repository by cloning the release tag v8.0.3 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

8.0.2

You can build .NET 8.0 from the repository by cloning the release tag v8.0.2 and following the build instructions in the main README.md.

Alternatively, you can build from the sources attached to this release directly.
More information on this process can be found in the dotnet/dotnet repository.

Attached are PGP signatures for the GitHub generated tarball and zipball. You can find the public key at https://dot.net/release-key-2023

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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot bot commented on behalf of github Dec 22, 2025

Labels

The following labels could not be found: dependencies, nuget. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@joshsmithxrm
Copy link
Copy Markdown
Owner

Consolidated into feature/cli-implementation branch

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot bot commented on behalf of github Dec 23, 2025

OK, I won't notify you again about this release, but will get in touch when a new version is available. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot bot deleted the dependabot/nuget/src/PPDS.Dataverse/multi-20b3b2c9b4 branch December 23, 2025 18:06
joshsmithxrm added a commit that referenced this pull request Jan 2, 2026
Addresses issues #7, #9, #15, #27 from code review:

- #7: Add thread-safety remarks to ConsoleProgressReporter
- #9: Add documentation for role mapping limitation in TieredImporter
- #15: Replace Console.WriteLine with AuthenticationOutput in auth library
  - New AuthenticationOutput class allows consumers to redirect or suppress output
  - Set AuthenticationOutput.Writer = null to suppress, or provide custom Action<string>
- #27: Add validation in CredentialProviderFactory before null-forgiveness
  - ValidateRequiredFields checks GitHubFederated, AzureDevOpsFederated, UsernamePassword

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm added a commit that referenced this pull request Jan 2, 2026
* fix: add thread-safe async locking to ProfileConnectionSource

Add SemaphoreSlim for proper async synchronization in GetSeedClientAsync.
The previous implementation checked _seedClient outside any lock, allowing
concurrent calls to create duplicate providers and clients.

Changes:
- Add _asyncLock SemaphoreSlim for async method synchronization
- Implement double-check locking pattern in GetSeedClientAsync
- Dispose SemaphoreSlim in Dispose method

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: use ConcurrentBag for thread-safe provider tracking

Replace List<ICredentialProvider> with ConcurrentBag<ICredentialProvider>
to prevent collection corruption when CreateFromProfileAsync is called
concurrently from multiple threads.

Changes:
- Add System.Collections.Concurrent using
- Change _activeProviders to ConcurrentBag<ICredentialProvider>
- Update Dispose to use TryTake pattern instead of Clear()

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: properly unregister MSAL cache in InteractiveBrowserCredentialProvider

Unregister the MsalCacheHelper from the token cache during disposal to
release file locks on the token cache file.

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: properly unregister MSAL cache in GlobalDiscoveryService

Unregister the MsalCacheHelper from the token cache during disposal to
release file locks on the token cache file.

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: remove redundant CancellationTokenSource from Program.cs

System.CommandLine 2.x handles Ctrl+C automatically and passes the
cancellation token to command handlers via SetAction's cancellationToken
parameter. The manual CancelKeyPress handler was creating a CTS that was
never connected to the command invocation pipeline.

Removed the unused CTS and added a clarifying comment about how
cancellation is handled.

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: use ConcurrentDictionary for entity type code cache

Replace Dictionary<string, int> with ConcurrentDictionary<string, int>
for the _entityTypeCodeCache to ensure thread-safe access in case of
concurrent operations.

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: extract duplicate ParseBypassPlugins to DataCommandGroup

Move the ParseBypassPlugins method from ImportCommand and CopyCommand
to DataCommandGroup as a shared internal helper. Both commands now
reference the single implementation.

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: suppress NU1702 warning for cross-framework PPDS.Plugins reference

PPDS.Plugins must target net462 (Dataverse plugin sandbox requirement) but
is referenced by projects targeting net8.0+. Since the package contains only
attributes and enums with no framework-specific APIs, this cross-framework
reference is intentional and safe.

Added explanatory comments in each affected project file.

Fixes part of #71

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: remove NU1903 vulnerability warning suppression

The high-severity vulnerability in transitive dependencies has been fixed
upstream. Remove the suppression so future vulnerabilities are properly
reported.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: use X509CertificateLoader for .NET 9+ certificate loading

Replace deprecated X509Certificate2 constructor with X509CertificateLoader
on .NET 9+. Uses conditional compilation to maintain compatibility with
.NET 8.

Fixes SYSLIB0057 warnings on net9.0 and net10.0 targets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: suppress SYSLIB0014 warning for ServicePointManager

ServicePointManager is obsolete in .NET 6+, but these settings are required
for optimal Dataverse throughput. The Dataverse SDK uses HttpWebRequest
internally, so these settings still apply. No alternative exists until
Microsoft updates their SDK to use HttpClient.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: use async/await in thread safety tests (xUnit1031)

Convert blocking Task.WaitAll() to async Task.WhenAll() to resolve
xUnit1031 analyzer warnings about potential deadlocks in test methods.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address 11 code review findings from #80

Critical fixes:
- Fix copy-paste bug in CertificateStoreCredentialProvider (StoreName→StoreLocation)
- Fix memory leak in DeviceCodeCredentialProvider.Dispose() (unregister cache)
- Fix memory leak in UsernamePasswordCredentialProvider.Dispose() (unregister cache)
- Fix double-checked locking bug in ConnectionStringSource (add volatile)

High priority fixes:
- Add debug logging for expected role lookup failures in TieredImporter
- Remove duplicate endpoint lookup in GlobalDiscoveryService
- Remove dead code ExecuteBatchesParallelAsync (76 lines)

Medium priority fixes:
- Redact exception messages in TieredImporter using ConnectionStringRedactor
- Add validation for empty entity/field names in CmtSchemaReader
- Add validation for MaxParallelEntities >= 1 in ImportOptions
- Preserve FaultException error codes in BulkOperationExecutor

Closes #80

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: add AuthenticationOutput for configurable auth messaging (#80)

Addresses issues #7, #9, #15, #27 from code review:

- #7: Add thread-safety remarks to ConsoleProgressReporter
- #9: Add documentation for role mapping limitation in TieredImporter
- #15: Replace Console.WriteLine with AuthenticationOutput in auth library
  - New AuthenticationOutput class allows consumers to redirect or suppress output
  - Set AuthenticationOutput.Writer = null to suppress, or provide custom Action<string>
- #27: Add validation in CredentialProviderFactory before null-forgiveness
  - ValidateRequiredFields checks GitHubFederated, AzureDevOpsFederated, UsernamePassword

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address remaining issue 71 code review findings (8, 12)

Issue 8: Wrap sync-over-async in Task.Run to avoid deadlock
- ProfileConnectionSource.GetSeedClient() now runs async code on
  threadpool to prevent deadlock in sync contexts (UI/ASP.NET)

Issue 12: Use Uri.TryCreate instead of try-catch for flow control
- AuthCommandGroup.ExtractEnvironmentName() refactored to avoid
  exception-based control flow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: extract phase processors from TieredImporter (#18)

Extract schema validation, deferred field processing, and relationship
processing into separate classes to improve testability and maintainability.

New components:
- ISchemaValidator/SchemaValidator: Load target metadata, detect mismatches
- DeferredFieldProcessor: Process self-referential lookup updates
- RelationshipProcessor: Process M2M associations with role mapping
- ImportContext: Shared context for all import phases
- FieldMetadataCollection: Type-safe wrapper for field validity data
- SchemaMismatchResult: Result type with detailed error message builder
- IImportPhaseProcessor/PhaseResult: Common interface for phase processors

TieredImporter reduced from 1,085 to 646 lines, now focused on orchestration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address PR review feedback (issues 1, 3, 4)

- Remove unused roleNameCache from RelationshipProcessor (#1)
  The cache was built with a network call but never used since
  LookupRoleByIdAsync queries by ID directly, not by name.

- Add volatile to AuthenticationOutput._writer (#3)
  Ensures thread-safe reads/writes of the static field.

- Unify ProfileConnectionSource locking (#4)
  Both sync and async paths now use the same SemaphoreSlim lock,
  preventing race conditions between GetSeedClient and GetSeedClientAsync.
  Also marked _seedClient as volatile for proper double-checked locking.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
joshsmithxrm added a commit that referenced this pull request Jan 3, 2026
- Refactor tests to use early-bound entity classes (PluginAssembly,
  SdkMessage) instead of late-bound Entity with magic strings
- Fix exception handling tests to use UpsertPluginTypeAsync (which
  actually calls GetComponentTypeAsync) instead of UpsertPackageAsync
  (which uses CreateWithSolutionHeaderAsync and doesn't call it)
- Add tests for FaultException, FaultException<OrganizationServiceFault>,
  and solution addition skip when componentType returns 0

Addresses bot review comments #8, #14, #15

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm added a commit that referenced this pull request Jan 3, 2026
* refactor: add logging to GetComponentTypeAsync catch block

- Add required ILogger<PluginRegistrationService> dependency
- Update all callers (ListCommand, CleanCommand, DiffCommand, DeployCommand)
  to get logger from service provider and pass to constructor
- Replace generic catch clause with specific FaultException handlers
- Log failures at Debug level for troubleshooting while maintaining
  graceful degradation behavior (returns 0 to skip solution addition)
- Add System.ServiceModel using for FaultException types
- Add unit tests for PluginRegistrationService

Fixes #61

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: add exception handling tests and use early-bound entities

- Refactor tests to use early-bound entity classes (PluginAssembly,
  SdkMessage) instead of late-bound Entity with magic strings
- Fix exception handling tests to use UpsertPluginTypeAsync (which
  actually calls GetComponentTypeAsync) instead of UpsertPackageAsync
  (which uses CreateWithSolutionHeaderAsync and doesn't call it)
- Add tests for FaultException, FaultException<OrganizationServiceFault>,
  and solution addition skip when componentType returns 0

Addresses bot review comments #8, #14, #15

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm pushed a commit that referenced this pull request Jan 8, 2026
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
joshsmithxrm added a commit that referenced this pull request Mar 15, 2026
Bug #11: Export now works with FetchXML queries. Added fetchXml parameter
to query/export RPC endpoint so FetchXML content is sent directly instead
of through the SQL parser (which crashes on XML).

Bug #15: Added expand chevron (›) indicator on solution component items
so users can discover they're clickable for detail cards.

Bug #18: Removed auto-collapse on component detail cards — multiple cards
can now be expanded simultaneously for comparison.

Bug #19: Solution list now shows uniqueName (friendlyName) format instead
of friendlyName only, matching developer workflow expectations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
joshsmithxrm added a commit that referenced this pull request Mar 16, 2026
Bug #11: Export now works with FetchXML queries. Added fetchXml parameter
to query/export RPC endpoint so FetchXML content is sent directly instead
of through the SQL parser (which crashes on XML).

Bug #15: Added expand chevron (›) indicator on solution component items
so users can discover they're clickable for detail cards.

Bug #18: Removed auto-collapse on component detail cards — multiple cards
can now be expanded simultaneously for comparison.

Bug #19: Solution list now shows uniqueName (friendlyName) format instead
of friendlyName only, matching developer workflow expectations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to 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.

1 participant