Upgrade RestSharp from 106.15.0 to 114.0.0#235
Merged
Conversation
san983
approved these changes
Apr 16, 2026
san983
left a comment
Member
There was a problem hiding this comment.
Looks good, tested locally and went thru all the diff.
Noticed 2 instances of this warning
'DomainsService.InitiatePush(long, string, string)' is obsolete: 'Use InitiatePushWithIdentifier instead'
But those can be fixed in a new PR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RestSharp 106.15.0 was released in 2021. We deferred the upgrade for so long that the dependency has since undergone a full architectural rewrite. 😓
For instance, v107 switched to
HttpClient, removed theIRestClient/IRestRequest/IRestResponseinterfaces, made client options immutable post-construction, renamed theMethodenum to PascalCase, removedJsonObject, etc.This PR performs that migration in one go, keeping the public DNSimple client surface unchanged:
RestClientWrapperto ownRestClientOptionsand lazily (re)build the underlyingRestClientwheneverBaseUrl,UserAgent, or the authenticator change — required because v114 makes those immutable after construction.IRestClient/IRestRequest/IRestResponsewith the concrete types throughoutHttpService,ServiceBase,RegistrarDelegation, and all mocks/tests.Response.Headersis nowIReadOnlyCollection<HeaderParameter>.Credentialsto the newIAuthenticatorcontract (and theEncoding-awareHttpBasicAuthenticatorconstructor).RequestBuilderfor the v114RestRequestconstructor, and switched serialized-JSON payloads toAddStringBody(..., DataFormat.Json)to avoid double-encoding under the newAddJsonBody(string)overload.JsonObject(removed in v107) inDomainsPusheswith a plainDictionary<string, object>.Methodenum casing (GET→Get, etc.) across all services and tests.HttpTest.InvalidRequestto exerciseHttpService.HandleExceptionsdirectly (exposed asinternalwithInternalsVisibleTo dnsimple-test), since the previous test mocked interfaces that no longer exist.Closes #223.
📋 Deployment Pre/Post tasks
N/A
DNSimpleNuGet package installs cleanly into a consumer project and authenticates against the sandbox with an OAuth2 token.