Add residential proxy data to Anonymizer#494
Conversation
|
Warning Review limit reached
Next review available in: 59 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughAdds residential proxy feed data to the Insights anonymizer model, including confidence, provider, and conditional last-seen date fields. Updates deserialization fixtures, assertions, and release notes. ChangesResidential anonymizer feed
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request adds a new Residential property of type AnonymizerFeed to the Anonymizer model, allowing the deserialization of GeoIP Residential Proxy database details (such as confidence, last seen date, and provider name) from the GeoIP Insights web service. It also includes corresponding unit tests and updates the release notes. The reviewer suggests adding an explicit null assertion for insights.Anonymizer.Residential in the unit tests before checking its properties to improve test failure diagnostics and avoid using null-conditional operators.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| Assert.Equal(82, insights.Anonymizer.Residential?.Confidence); | ||
| #if NET6_0_OR_GREATER | ||
| Assert.Equal(new DateOnly(2026, 5, 11), insights.Anonymizer.Residential?.NetworkLastSeen); | ||
| #endif | ||
| Assert.Equal("quickshift", insights.Anonymizer.Residential?.ProviderName); |
There was a problem hiding this comment.
It is better to explicitly assert that insights.Anonymizer.Residential is not null before asserting its properties. This provides a clearer failure message if the deserialization fails or returns null, and allows us to avoid using the null-conditional operator (?.) in the subsequent assertions.
Assert.NotNull(insights.Anonymizer.Residential);
Assert.Equal(82, insights.Anonymizer.Residential.Confidence);
#if NET6_0_OR_GREATER
Assert.Equal(new DateOnly(2026, 5, 11), insights.Anonymizer.Residential.NetworkLastSeen);
#endif
Assert.Equal("quickshift", insights.Anonymizer.Residential.ProviderName);There was a problem hiding this comment.
Claude, on behalf of Greg: Done in the current revision — the assertions now use Assert.NotNull(insights.Anonymizer.Residential) followed by direct property access, matching the convention used elsewhere in these tests.
f4d09e2 to
3692621
Compare
Surface residential proxy data on the anonymizer object as a Residential sub-object with Confidence, NetworkLastSeen, and ProviderName. The anonymizer object may now be present even when only residential proxy data is available for a network. A new MaxMind.GeoIP2.Model.AnonymizerFeed record has been added to represent this shape so it can be reused if the web service adds similar sub-objects for other types of anonymizer detection (e.g., VPN, mobile, datacenter) in the future. STF-997 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3692621 to
1691db3
Compare
Summary
The GeoIP Insights web service is adding a
residentialsub-object to theanonymizerobject. It contains residential proxy data for the network and may be populated even when no other anonymizer properties are set.confidence,network_last_seen,provider_name) namedAnonymizerFeed, so future anonymizer feeds can share itresidentialproperty on theAnonymizerrecordResidentialis non-nullable with an empty-object default, matching the library's existing sub-object pattern.Testing
dotnet build(all target frameworks) anddotnet testpass.🤖 Generated with Claude Code