-
Notifications
You must be signed in to change notification settings - Fork 221
fix(v2/pubsub): support StringParam for topic in onMessagePublished #1804
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
base: master
Are you sure you want to change the base?
fix(v2/pubsub): support StringParam for topic in onMessagePublished #1804
Conversation
Summary of ChangesHello @HassanBahati, 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 introduces greater flexibility to the Pub/Sub Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. 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 updates onMessagePublished to support StringParam for the topic, making it consistent with other functions. The changes to the interface and function signature are correct, and a new test case validates the behavior for __endpoint. However, this change introduces a side effect where the legacy __trigger property will be generated with an invalid resource path when a parameterized topic is used. I've added a comment with details on this potential issue.
| handler: (event: CloudEvent<MessagePublishedData<T>>) => any | Promise<any> | ||
| ): CloudFunction<CloudEvent<MessagePublishedData<T>>> { | ||
| let topic: string; | ||
| let topic: string | Expression<string>; |
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.
While this change to allow Expression<string> for the topic is correct for the v2 endpoint (__endpoint), it causes an issue with the legacy trigger format (__trigger) generated later in this function on line 327. When topic is an Expression, the resource path for the trigger is constructed using string interpolation, which results in an invalid path like .../topics/params.YOUR_PARAM. This will likely cause deployment failures with tooling that relies on the __trigger property.
Given that this is a v2 function and __endpoint is correctly configured, this might not affect modern deployments. However, it presents a significant risk for compatibility with other toolchains. This should be addressed to ensure robust behavior. Since the problematic code is outside the current diff, a follow-up change may be required.
HassanBahati
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.
/gemini review
Description
Fixes #1791
Update PubSubOptions.topic to accept Expression in addition to string, allowing StringParam to be used for the topic value. This makes onMessagePublished consistent with other function types and options that already support Expression.
Manual Testing
Before


After