-
Notifications
You must be signed in to change notification settings - Fork 9
feat(GoFeatureFlag): unix client #66
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
Conversation
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Summary of ChangesHello @augustinasrce, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the GoFeatureFlag Ruby provider by adding support for Unix domain socket communication. This change involves a substantial refactoring of the client architecture, introducing a common base for API clients and specific implementations for HTTP and Unix sockets. The provider can now be configured to use either communication method, providing greater flexibility for deployment scenarios where Unix sockets might be preferred for performance or security reasons. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a Unix socket client for GoFeatureFlag, which is a great addition. The implementation involves refactoring the existing HTTP client into a common base class with two specific implementations for HTTP and Unix sockets. While the overall structure is good, I've found several critical issues that need to be addressed before merging. These include a NameError due to an undefined variable, another NameError from a missing method in the Unix socket communication logic, and an incorrect case statement that makes a code path unreachable. Additionally, I've pointed out some opportunities for improvement regarding code duplication and the use of internal debug methods. Addressing these points will significantly improve the robustness and maintainability of the new code.
...ders/openfeature-go-feature-flag-provider/lib/openfeature/go-feature-flag/client/unix_api.rb
Outdated
Show resolved
Hide resolved
...feature-go-feature-flag-provider/lib/openfeature/go-feature-flag/go_feature_flag_provider.rb
Outdated
Show resolved
Hide resolved
...s/openfeature-go-feature-flag-provider/lib/openfeature/go-feature-flag/internal/http_unix.rb
Outdated
Show resolved
Hide resolved
providers/openfeature-go-feature-flag-provider/lib/openfeature/go-feature-flag/options.rb
Outdated
Show resolved
Hide resolved
...ders/openfeature-go-feature-flag-provider/lib/openfeature/go-feature-flag/client/http_api.rb
Outdated
Show resolved
Hide resolved
...ders/openfeature-go-feature-flag-provider/lib/openfeature/go-feature-flag/client/unix_api.rb
Outdated
Show resolved
Hide resolved
...s/openfeature-go-feature-flag-provider/lib/openfeature/go-feature-flag/internal/http_unix.rb
Outdated
Show resolved
Hide resolved
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
Signed-off-by: Augustinas Sueris <augustinas.sueris@vinted.com>
thomaspoignant
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @augustinasrce thanks a lot for this pull request, this looks really great.
I have only one question around the instrumentation part and a nitpick change on the error message.
...feature-go-feature-flag-provider/lib/openfeature/go-feature-flag/go_feature_flag_provider.rb
Show resolved
Hide resolved
...feature-go-feature-flag-provider/lib/openfeature/go-feature-flag/go_feature_flag_provider.rb
Outdated
Show resolved
Hide resolved
…/go-feature-flag/go_feature_flag_provider.rb Co-authored-by: Thomas Poignant <thomas.poignant@gmail.com> Signed-off-by: Augustinas <augustinas.sueris@gmail.com>
Signed-off-by: wadii <wadii.zaim@flagsmith.com>
Signed-off-by: wadii <wadii.zaim@flagsmith.com>
Signed-off-by: wadii <wadii.zaim@flagsmith.com>
This PR
Adds unix socket client for GoFeatureFlag
Related Issues
For #4244
Notes
Follow-up Tasks
How to test