Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

michelle0927
Copy link
Collaborator

@michelle0927 michelle0927 commented Sep 11, 2025

Resolves #18300
Resolves #18306

Summary by CodeRabbit

  • New Features

    • Create/Update Page and Create/Update Landing Page actions now accept optional widgetContainers and widgets for richer page composition.
  • Chores

    • Bumped action versions to reflect payload enhancements (including list pages).
    • HubSpot component package version bumped to 1.7.5.

Copy link

vercel bot commented Sep 11, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
pipedream-docs Ignored Ignored Sep 16, 2025 2:40pm
pipedream-docs-redirect-do-not-edit Ignored Ignored Sep 16, 2025 2:40pm

Copy link
Contributor

coderabbitai bot commented Sep 11, 2025

Walkthrough

Adds optional widgetContainers and widgets to the shared page-prop schema; includes those fields (parsed) in create/update payloads for pages and landing pages; bumps action and component versions; renames an internal accumulator from results to pages in list-pages without changing behavior.

Changes

Cohort / File(s) Summary of Changes
Schema augmentation
components/hubspot/actions/common/common-page-prop.mjs
Add optional object properties widgetContainers and widgets to the exported page-prop schema.
Create/Update payload extensions
components/hubspot/actions/create-page/create-page.mjs, components/hubspot/actions/update-page/update-page.mjs, components/hubspot/actions/create-landing-page/create-landing-page.mjs, components/hubspot/actions/update-landing-page/update-landing-page.mjs
Bump action versions. Include widgetContainers: parseObject(this.widgetContainers) and widgets: parseObject(this.widgets) in HubSpot create/update payloads.
List pages internal rename
components/hubspot/actions/list-pages/list-pages.mjs
Bump version. Rename internal accumulator from resultspages across initialization, pushes, summary, and return. No change to external behavior.
Package version bump
components/hubspot/package.json
Package version updated 1.7.41.7.5.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant Action as Create/Update Action
  participant Parser as parseObject
  participant HS as HubSpot CMS API

  User->>Action: invoke action (page inputs ...)
  rect rgba(200,230,255,0.25)
    note right of Action: New payload includes widgetContainers & widgets
    Action->>Parser: parseObject(this.widgetContainers)
    Parser-->>Action: widgetContainers (object)
    Action->>Parser: parseObject(this.widgets)
    Parser-->>Action: widgets (object)
  end
  Action->>HS: POST/PATCH payload { ..., widgetContainers, widgets, ... }
  HS-->>Action: response (created/updated resource)
  Action-->>User: return result (summary, data)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

I twitched my nose at page-time tricks,
Widgets and containers found their nicks.
Parsers hummed, versions hopped above,
Pages lined up with modular love.
A rabbit cheers — code snug as a glove. 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The PR description only lists "Resolves #18300" and "Resolves #18306" and does not fill the repository's required "## WHY" template or provide a high-level summary, rationale, impact, or testing notes; this lacks the expected contextual information. Because the template's required WHY section is empty, reviewers lack needed explanation of why the change was made and how it was validated. Please complete the repository PR template by adding a "## WHY" section that explains the problem being solved, a concise summary of the changes, any breaking/migration impacts, and brief testing or verification steps (and keep the "Resolves" lines).
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The PR title "Hubspot - add widget props" accurately and concisely summarizes the primary change in this changeset—adding widget-related properties to the HubSpot page schema and actions—and is clear for teammates scanning history. It is focused, specific, and directly related to the main code changes.
Linked Issues Check ✅ Passed The changes directly address the two linked issues: widget support [#18300] is implemented by adding optional "widgetContainers" and "widgets" to the common page prop and passing parseObject(this.widgetContainers) and parseObject(this.widgets) into the create/update (and landing-page) actions' payloads, enabling callers to supply widget definitions; the list-pages bug [#18306] is fixed by renaming the accumulator from "results" to "pages" and updating all usages so the action returns collected pages. These code changes map to the coding objectives in the linked issues and focus on API payload shape and correct result accumulation.
Out of Scope Changes Check ✅ Passed All modified files are related to adding widget properties or fixing the list-pages accumulator and include expected version bumps; the changes to create-page and create-landing-page extend widget support beyond the explicitly-mentioned update action but are logically related and not unrelated churn. No unrelated or surprising files appear to be modified in the provided summary.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-18300

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8e6cff1 and 0f9bbcf.

📒 Files selected for processing (1)
  • components/hubspot/package.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • components/hubspot/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Lint Code Base
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Publish TypeScript components
  • GitHub Check: pnpm publish

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@michelle0927 michelle0927 marked this pull request as ready for review September 11, 2025 19:46
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (6)
components/hubspot/actions/list-pages/list-pages.mjs (1)

108-113: Avoid a no-op extra loop iteration at maxResults.

Set hasMore = false before breaking the inner loop.

Apply this diff:

         count++;
         if (count >= this.maxResults) {
-          break;
+          hasMore = false;
+          break;
         }
components/hubspot/actions/common/common-page-prop.mjs (1)

79-90: Add explicit guidance that HubSpot requires full widget definitions.

Tighten descriptions so users know partial updates aren’t supported.

Apply this diff:

   widgetContainers: {
     type: "object",
     label: "Widget Containers",
-    description: "A data structure containing the data for all the modules inside the containers for this page",
+    description: "JSON for all modules inside containers on this page. Provide full definitions; HubSpot does not support partial widget updates.",
     optional: true,
   },
   widgets: {
     type: "object",
     label: "Widgets",
-    description: "A data structure containing the data for all the modules for this page",
+    description: "JSON for all modules on this page (outside containers). Provide full definitions; HubSpot does not support partial widget updates.",
     optional: true,
   },
components/hubspot/actions/update-landing-page/update-landing-page.mjs (1)

56-58: Only include widget fields when provided to avoid undefined keys.

Prevents sending undefined and keeps payload minimal.

Apply this diff:

         templatePath: this.templatePath,
-        widgetContainers: parseObject(this.widgetContainers),
-        widgets: parseObject(this.widgets),
+        ...(this.widgetContainers !== undefined
+          ? { widgetContainers: parseObject(this.widgetContainers) }
+          : {}),
+        ...(this.widgets !== undefined
+          ? { widgets: parseObject(this.widgets) }
+          : {}),
components/hubspot/actions/create-page/create-page.mjs (1)

39-41: Only include widget fields when provided to avoid undefined keys.

Apply this diff:

         templatePath: this.templatePath,
-        widgetContainers: parseObject(this.widgetContainers),
-        widgets: parseObject(this.widgets),
+        ...(this.widgetContainers !== undefined
+          ? { widgetContainers: parseObject(this.widgetContainers) }
+          : {}),
+        ...(this.widgets !== undefined
+          ? { widgets: parseObject(this.widgets) }
+          : {}),
components/hubspot/actions/create-landing-page/create-landing-page.mjs (1)

47-49: Only include widget fields when provided to avoid undefined keys.

Apply this diff:

         templatePath: this.templatePath,
-        widgetContainers: parseObject(this.widgetContainers),
-        widgets: parseObject(this.widgets),
+        ...(this.widgetContainers !== undefined
+          ? { widgetContainers: parseObject(this.widgetContainers) }
+          : {}),
+        ...(this.widgets !== undefined
+          ? { widgets: parseObject(this.widgets) }
+          : {}),
components/hubspot/actions/update-page/update-page.mjs (1)

48-50: Only include widget fields when provided to avoid undefined keys.

Apply this diff:

         templatePath: this.templatePath,
-        widgetContainers: parseObject(this.widgetContainers),
-        widgets: parseObject(this.widgets),
+        ...(this.widgetContainers !== undefined
+          ? { widgetContainers: parseObject(this.widgetContainers) }
+          : {}),
+        ...(this.widgets !== undefined
+          ? { widgets: parseObject(this.widgets) }
+          : {}),
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 944bcf0 and ce5171a.

📒 Files selected for processing (7)
  • components/hubspot/actions/common/common-page-prop.mjs (1 hunks)
  • components/hubspot/actions/create-landing-page/create-landing-page.mjs (2 hunks)
  • components/hubspot/actions/create-page/create-page.mjs (2 hunks)
  • components/hubspot/actions/list-pages/list-pages.mjs (4 hunks)
  • components/hubspot/actions/update-landing-page/update-landing-page.mjs (2 hunks)
  • components/hubspot/actions/update-page/update-page.mjs (2 hunks)
  • components/hubspot/package.json (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (4)
components/hubspot/actions/create-page/create-page.mjs (1)
components/hubspot/common/utils.mjs (2)
  • parseObject (1-25)
  • parseObject (1-25)
components/hubspot/actions/create-landing-page/create-landing-page.mjs (1)
components/hubspot/common/utils.mjs (2)
  • parseObject (1-25)
  • parseObject (1-25)
components/hubspot/actions/update-landing-page/update-landing-page.mjs (1)
components/hubspot/common/utils.mjs (2)
  • parseObject (1-25)
  • parseObject (1-25)
components/hubspot/actions/update-page/update-page.mjs (1)
components/hubspot/common/utils.mjs (2)
  • parseObject (1-25)
  • parseObject (1-25)
🔇 Additional comments (7)
components/hubspot/package.json (1)

3-3: Patch bump looks right.

Aligns with action version bumps in this PR.

components/hubspot/actions/list-pages/list-pages.mjs (1)

8-8: Rename to pages + version bump — LGTM.

Naming is clearer and summary matches the return value.

Also applies to: 82-82, 108-108, 120-124, 124-124

components/hubspot/actions/common/common-page-prop.mjs (1)

79-90: Confirmed — CMS Pages v3 expects camelCase widgets and widgetContainers; include the full object when updating modules.

Neither field is universally required; include the full widgets object for top-level template modules or the full widgetContainers object for modules inside containers. Partial merges aren't supported — omitting the full object will overwrite/clear draft data.

File: components/hubspot/actions/common/common-page-prop.mjs (lines 79–90): property names are correct.

components/hubspot/actions/update-landing-page/update-landing-page.mjs (1)

10-10: Version bump — LGTM.

components/hubspot/actions/create-page/create-page.mjs (1)

10-10: Version bump — LGTM.

components/hubspot/actions/create-landing-page/create-landing-page.mjs (1)

10-10: Version bump — LGTM.

components/hubspot/actions/update-page/update-page.mjs (1)

10-10: Version bump — LGTM.

Copy link
Collaborator

@luancazarine luancazarine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @michelle0927. I just added a minor suggestion.

Copy link
Collaborator

@luancazarine luancazarine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@vunguyenhung vunguyenhung merged commit 4aedc4d into master Sep 17, 2025
10 checks passed
@vunguyenhung vunguyenhung deleted the issue-18300 branch September 17, 2025 01:35
sergio-eliot-rodriguez pushed a commit to sergio-eliot-rodriguez/sergio_wong_does_pipedream that referenced this pull request Sep 21, 2025
* widget props

* fix version
vunguyenhung added a commit that referenced this pull request Sep 24, 2025
* Leonardo AI components

* added unzoom image action

* fixing link errors

* more lint fixes

* Merging pull request #18359

* fix: pagination prop and params struct

* fix: no need for paginate here

* chore: update version

* chore: cleanup

* chore: update package

* feat: allow raw response

* chore: bump package

* fix: buffer response instead

* Update components/google_drive/actions/download-file/download-file.mjs

Co-authored-by: Jorge Cortes <[email protected]>

* versions

* pnpm-lock.yaml

* pnpm-lock.yaml

* pnpm-lock.yaml

* feat: add content selector

* chore: bump package

* fix: comments

* chore: bump versions

* chore: fix versions

* fixes: QA fixes

* feat: add cursor to req

* package.json

---------

Co-authored-by: joao <[email protected]>
Co-authored-by: joaocoform <[email protected]>
Co-authored-by: Jorge Cortes <[email protected]>
Co-authored-by: Michelle Bergeron <[email protected]>
Co-authored-by: Luan Cazarine <[email protected]>

* Merging pull request #18361

* update siteId prop

* pnpm-lock.yaml

* package.json version

* Google Sheets - update row refresh fields  (#18369)

* change prop order and refresh fields

* bump package.json

* Pipedrive - fix app name (#18370)

* use pipedriveApp instead of app

* bump package.json

* Pipedrive - pipelineId integer (#18372)

* pipelineId - integer

* bump versions

* Adding app scaffolding for lightspeed_ecom_c_series

* Adding app scaffolding for financial_data

* Adding app scaffolding for microsoft_authenticator

* Merging pull request #18345

* updates

* versions

* versions

* Merging pull request #18368

* updates

* remove console.log

* versions

* Coinbase Developer Platform - New Wallet Event (#18342)

* new component

* pnpm-lock.yaml

* updates

* updates

* Hubspot - update search-crm (#18360)

* update search-crm

* limit results to one page

* update version

* package.json version

* Merging pull request #18347

* widget props

* fix version

* Adding app scaffolding for rundeck

* Merging pull request #18378

* Update Taiga component with new actions and sources

- Bump version to 0.1.0 in package.json and add dependency on @pipedream/platform.
- Introduce new actions for creating, updating, and deleting issues, tasks, and user stories.
- Add sources for tracking changes and deletions of issues and tasks.
- Implement utility functions for parsing and cleaning objects in common/utils.mjs.
- Enhance prop definitions for better integration with Taiga API.

* pnpm update

* Refactor Taiga actions to utilize parseObject utility

- Added parseObject utility for tags, watchers, and points in update-issue, update-task, and update-userstory actions.
- Removed the update-project action as it is no longer needed.
- Enhanced base source to include secret key validation for webhook security.

* Merging pull request #18382

* add testSources prop

* pnpm-lock.yaml

* fix

* Merging pull request #18323

* Added actions

* Added actions

* Added actions

* Merging pull request #18377

* Added actions

* Update components/weaviate/actions/create-class/create-class.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Luan Cazarine <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Merging pull request #18376

* Adding app scaffolding for etrusted

* Adding app scaffolding for intelliflo_office

* Adding app scaffolding for thoughtspot

* Adding app scaffolding for kordiam

* Adding app scaffolding for ticketsauce

* trustpilot fixes (#18152)

* trustpilot fixes

* more fixes

* update versions

* more version updates

* fixes

* Bump all Trustpilot actions to version 0.1.0

Major improvements and API updates across all actions:
- Enhanced private API support with proper authentication
- Improved parameter handling and validation
- Better error handling and response structures
- Added new conversation flow for product reviews
- Fixed endpoint URLs to match latest API documentation
- Streamlined request/response processing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

* up version and clean up sources

* merge

* fix business ID

* delete temp action

* Update components/trustpilot/sources/new-product-reviews/new-product-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update components/trustpilot/sources/new-product-reviews/new-product-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update components/trustpilot/sources/new-product-reviews/new-product-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update components/trustpilot/sources/new-service-reviews/new-service-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* comments

* Pagination

* fixes

* comments

* missed some `$`'s

* unduplicated

* more fixes

* final comments

* more comments

* .

---------

Co-authored-by: Claude <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Adding app scaffolding for peekalink

* 18314 twilio (#18350)

* Update Twilio component versions and dependencies

- Update Twilio Send Message action adding detailed description for 'from' prop and refactoring phone number validation logic.
- Incremented action versions for several Twilio actions.

* pnpm update

* Updating LinkedIn API version (#18399)

* Merging pull request #18394

* Databricks API - Jobs action components (#18371)

* Notion property building improvements (#18381)

* validate property types

* versions

* Google Business - add debug log (#18407)

* add debug log

* bump versions

* Notion API Key - update @pipedream/notion version (#18409)

* update @pipedream/notion dependency version

* pnpm-lock.yaml

* Adding app scaffolding for reduct_video

* Adding app scaffolding for shopware

* Adding app scaffolding for instamojo

* Hubspot - bug fix to sources w/ property changes (#18379)

* updates

* versions

* Google sheets type fix (#18411)

* Fixing worksheetId prop type from string to integer

* Version bumps

---------

Co-authored-by: Leo Vu <[email protected]>

* Merging pull request #18393

* new components

* remove console.log

* versions

* update

* Merging pull request #18408

* 403 error message

* versions

* update

* Merging pull request #18419

* Changes per PR Review

* Removes leonardo_ai_actions.mdc not indented for merging

* synced lockfile after install

* fully lock form-data for leonardo_ai

* conflict solving

* lint fixes

* Chipped down Readme, implemented async options in gen motion

---------

Co-authored-by: jocarino <[email protected]>
Co-authored-by: joao <[email protected]>
Co-authored-by: joaocoform <[email protected]>
Co-authored-by: Jorge Cortes <[email protected]>
Co-authored-by: Michelle Bergeron <[email protected]>
Co-authored-by: Luan Cazarine <[email protected]>
Co-authored-by: michelle0927 <[email protected]>
Co-authored-by: Andrew Chuang <[email protected]>
Co-authored-by: danhsiung <[email protected]>
Co-authored-by: Lucas Caresia <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Job <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Guilherme Falcão <[email protected]>
Co-authored-by: Leo Vu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] "list pages" in Hubspot always returns empty list [ACTION] Hubspot Page - Widgets missing from the update page action
3 participants