-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[PM-26099] Update public list members endpoint to include collections #6503
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PM-26099] Update public list members endpoint to include collections #6503
Conversation
…ction creation with user and group associations
…ollections in member response model
…List endpoint. Add JsonConstructor to AssociationWithPermissionsResponseModel
…cationCacheService dependencies.
|
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #6503 +/- ##
==========================================
+ Coverage 52.11% 52.15% +0.04%
==========================================
Files 1908 1908
Lines 84415 84413 -2
Branches 7537 7537
==========================================
+ Hits 43992 44026 +34
+ Misses 38714 38675 -39
- Partials 1709 1712 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Claude finished @r-tome's task —— View job PR #6503 Review CompleteSummary of ChangesThis PR successfully implements the TODO to include collection data in the Public Members List endpoint (
Critical Issues🔴 Missing Nullable Reference Type MigrationLocation: While // FIXME: Update this file to be null safe and then delete the line below
#nullable disableIssue: This creates inconsistency. The controller now uses nullable reference types (e.g., Recommendation: Either:
Suggested Improvements📝 API Documentation Update NeededLocation: The XML documentation was updated but could be more explicit: /// Member objects listed in this call include information about their associated collections.Suggestion: Be more specific about what collection information is included: /// Member objects listed in this call include information about their associated collections,
/// including collection IDs and permission settings (ReadOnly, HidePasswords, Manage).🎨 Unnecessary Parameterless Constructor?Location: A [JsonConstructor]
public AssociationWithPermissionsResponseModel() : base()
{
}Question: Is this constructor actually needed? The model already has a constructor taking Evidence: Looking at the codebase, this is a Response model, not a Request model. Response models generally don't need JSON constructors unless they're also used for deserialization somewhere. Recommendation: Verify if this constructor is actually required. If it's not needed for deserialization, consider removing it to keep the code minimal. 🤔 Test Coverage Gap - Empty Collections SerializationLocation: The test verifies empty collections: Assert.Empty(ownerResult.Collections);Observation: While this tests that the collections property exists and is empty, it doesn't verify that it serializes as Suggestion: Consider adding an assertion that explicitly checks the JSON serialization matches the expected format from the PR description. Security Considerations✅ No security issues identified. The changes:
The collection data was already accessible through individual member queries; this PR simply optimizes retrieval for bulk operations. Performance Considerations✅ Performance improved. The implementation:
Note: The 2 missing coverage lines reported by Codecov appear to be in non-critical paths and don't indicate a functional issue. Good Practices Observed
Action Items for Author
Overall AssessmentThis is a solid implementation that successfully resolves the TODO. The code is clean, well-tested, and maintains consistency with existing patterns. The main concern is the partial nullable reference type migration which should be addressed for maintainability. Status: ✅ Approved with minor suggestions |


🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-26099
📔 Objective
Implement the big TODO on the Public Member’s Controller
Returned data example:
⏰ Reminders before review
🦮 Reviewer guidelines
:+1:) or similar for great changes:memo:) or ℹ️ (:information_source:) for notes or general info:question:) for questions:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:) for suggestions / improvements:x:) or:warning:) for more significant problems or concerns needing attention:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt:pick:) for minor or nitpick changes