Skip to content

Conversation

@luancazarine
Copy link
Collaborator

@luancazarine luancazarine commented Nov 6, 2025

Resolves #18937

Summary by CodeRabbit

  • New Features

    • Added "Insert Dimension" action to insert rows or columns at specified positions.
    • Added "Move Dimension" action to reposition rows or columns within a sheet.
  • Chores

    • Google Sheets component and many actions/sources had version bumps for maintenance (package version updated to 0.10.0).

- Added new actions: Insert Dimension and Move Dimension, allowing users to manipulate dimensions within spreadsheets.
- Updated the Google Sheets component to version 0.10.0 to reflect these additions.
- Refactored imports for better organization and clarity.
@vercel
Copy link

vercel bot commented Nov 6, 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 Nov 6, 2025 5:06pm
pipedream-docs-redirect-do-not-edit Ignored Ignored Nov 6, 2025 5:06pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 6, 2025

Walkthrough

Adds two new Google Sheets actions (Insert Dimension, Move Dimension), implements corresponding app methods, and updates many action/source version strings; package version bumped to 0.10.0.

Changes

Cohort / File(s) Summary
New Action Modules
components/google_sheets/actions/insert-dimension/insert-dimension.mjs, components/google_sheets/actions/move-dimension/move-dimension.mjs
New action definitions with metadata, props (app, watchedDrive, sheetId, dimension, index params, inheritFromBefore), and run methods that call app.insertDimension / app.moveDimension and return API responses.
App Module
components/google_sheets/google_sheets.app.mjs
Added public methods insertDimension(spreadsheetId, data = {}) and moveDimension(spreadsheetId, data = {}) which build and send spreadsheets.batchUpdate requests; imports expanded for lodash utilities.
Package Manifest
components/google_sheets/package.json
Version bumped from 0.9.3 to 0.10.0.
Action/Source Version Bumps
components/google_sheets/actions/* (many), components/google_sheets/sources/* (several)
Incremented version fields across multiple existing actions and sources (minor/patch bumps only); no logic changes. Examples: add-column, add-multiple-rows, add-single-row, clear-cell, clear-rows, copy-worksheet, create-spreadsheet, create-worksheet, delete-rows, delete-worksheet, find-row, get-cell, get-current-user, get-spreadsheet-by-id, get-values-in-range, insert-anchored-note, insert-comment, list-worksheets, update-cell, update-formatting, update-multiple-rows, update-row, upsert-row, sources/new-comment, sources/new-row-added*, sources/new-updates, sources/new-worksheet.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Action as Action Module
    participant App as Google Sheets App
    participant API as Google Sheets API

    User->>Action: Invoke action (sheetId, dimension, startIndex, endIndex, inheritFromBefore)
    Action->>App: insertDimension(sheetId, { range: { dimension, startIndex, endIndex }, inheritFromBefore })
    App->>API: POST spreadsheets.batchUpdate { requests: [ { insertDimension: { ... } } ] }
    API-->>App: Response
    App-->>Action: Response
    Action-->>User: Summary + response
Loading
sequenceDiagram
    participant User
    participant Action as Action Module
    participant App as Google Sheets App
    participant API as Google Sheets API

    User->>Action: Invoke action (sheetId, dimension, startIndex, endIndex, destinationIndex)
    Action->>App: moveDimension(sheetId, { source: { dimension, startIndex, endIndex }, destinationIndex })
    App->>API: POST spreadsheets.batchUpdate { requests: [ { moveDimension: { ... } } ] }
    API-->>App: Response
    App-->>Action: Response
    Action-->>User: Summary + response
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Review focus:
    • insertDimension / moveDimension request payload shapes in google_sheets.app.mjs
    • Prop resolvers for sheetId and watchedDrive in new actions
    • Correct handling and validation of index parameters and dimension enum
    • Ensure batchUpdate responses are used/returned consistently
    • Spot-check version bumps to confirm no accidental logic edits

Suggested labels

User submitted

Suggested reviewers

  • jcortes
  • michelle0927

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR implements generic 'insert-dimension' and 'move-dimension' actions, but the issue requires specific 'insert-row-at-position' and 'move-rows' actions with different prop structures and additional functionality. Align the implemented actions with issue requirements: rename to specific row actions, add values population support for insert action, and ensure all required props are present and named correctly.
Description check ❓ Inconclusive The description only contains 'Resolves #18937' but the repository template requires a 'WHY' section explaining the rationale for changes. Add a 'WHY' section to the description explaining the purpose and context of implementing these new dimension actions.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main changes: two new dimension actions (insert and move) for the Google Sheets component.
Out of Scope Changes check ✅ Passed All changes are directly related to implementing dimension/row positioning features for Google Sheets as specified in the linked issue.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 18937-action-google-sheets---insert-and-move-rows-at-specific-positions

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2976322 and 3cad6c7.

📒 Files selected for processing (29)
  • components/google_sheets/actions/add-column/add-column.mjs (1 hunks)
  • components/google_sheets/actions/add-multiple-rows/add-multiple-rows.mjs (1 hunks)
  • components/google_sheets/actions/add-single-row/add-single-row.mjs (1 hunks)
  • components/google_sheets/actions/clear-cell/clear-cell.mjs (1 hunks)
  • components/google_sheets/actions/clear-rows/clear-rows.mjs (1 hunks)
  • components/google_sheets/actions/copy-worksheet/copy-worksheet.mjs (1 hunks)
  • components/google_sheets/actions/create-spreadsheet/create-spreadsheet.mjs (1 hunks)
  • components/google_sheets/actions/create-worksheet/create-worksheet.mjs (1 hunks)
  • components/google_sheets/actions/delete-rows/delete-rows.mjs (1 hunks)
  • components/google_sheets/actions/delete-worksheet/delete-worksheet.mjs (1 hunks)
  • components/google_sheets/actions/find-row/find-row.mjs (1 hunks)
  • components/google_sheets/actions/get-cell/get-cell.mjs (1 hunks)
  • components/google_sheets/actions/get-current-user/get-current-user.mjs (1 hunks)
  • components/google_sheets/actions/get-spreadsheet-by-id/get-spreadsheet-by-id.mjs (1 hunks)
  • components/google_sheets/actions/get-values-in-range/get-values-in-range.mjs (1 hunks)
  • components/google_sheets/actions/insert-anchored-note/insert-anchored-note.mjs (1 hunks)
  • components/google_sheets/actions/insert-comment/insert-comment.mjs (1 hunks)
  • components/google_sheets/actions/list-worksheets/list-worksheets.mjs (1 hunks)
  • components/google_sheets/actions/move-dimension/move-dimension.mjs (1 hunks)
  • components/google_sheets/actions/update-cell/update-cell.mjs (1 hunks)
  • components/google_sheets/actions/update-formatting/update-formatting.mjs (1 hunks)
  • components/google_sheets/actions/update-multiple-rows/update-multiple-rows.mjs (1 hunks)
  • components/google_sheets/actions/update-row/update-row.mjs (1 hunks)
  • components/google_sheets/actions/upsert-row/upsert-row.mjs (1 hunks)
  • components/google_sheets/sources/new-comment/new-comment.mjs (1 hunks)
  • components/google_sheets/sources/new-row-added-polling/new-row-added-polling.mjs (1 hunks)
  • components/google_sheets/sources/new-row-added/new-row-added.mjs (1 hunks)
  • components/google_sheets/sources/new-updates/new-updates.mjs (1 hunks)
  • components/google_sheets/sources/new-worksheet/new-worksheet.mjs (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2024-10-30T15:24:39.294Z
Learnt from: jcortes
Repo: PipedreamHQ/pipedream PR: 14467
File: components/gainsight_px/actions/create-account/create-account.mjs:4-6
Timestamp: 2024-10-30T15:24:39.294Z
Learning: In `components/gainsight_px/actions/create-account/create-account.mjs`, the action name should be "Create Account" instead of "Create Memory".

Applied to files:

  • components/google_sheets/actions/move-dimension/move-dimension.mjs
📚 Learning: 2024-10-08T15:33:38.240Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-10-08T15:33:38.240Z
Learning: When exporting a summary message in the `run` method of an action, ensure the message is correctly formatted. For example, in the `hackerone-get-members` action, the correct format is `Successfully retrieved ${response.data.length} members`.

Applied to files:

  • components/google_sheets/actions/move-dimension/move-dimension.mjs
📚 Learning: 2025-01-23T03:55:15.166Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Applied to files:

  • components/google_sheets/sources/new-updates/new-updates.mjs
🧬 Code graph analysis (1)
components/google_sheets/actions/move-dimension/move-dimension.mjs (1)
components/google_sheets/actions/insert-dimension/insert-dimension.mjs (1)
  • response (66-73)
⏰ 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). (3)
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Lint Code Base
🔇 Additional comments (28)
components/google_sheets/actions/upsert-row/upsert-row.mjs (1)

27-27: LGTM: Routine version bump.

The version increment is appropriate for a package-wide release that includes new actions.

components/google_sheets/sources/new-updates/new-updates.mjs (1)

12-12: LGTM: Routine version bump.

components/google_sheets/actions/insert-anchored-note/insert-anchored-note.mjs (1)

8-8: LGTM: Routine version bump.

components/google_sheets/actions/update-multiple-rows/update-multiple-rows.mjs (1)

12-12: LGTM: Routine version bump.

components/google_sheets/sources/new-comment/new-comment.mjs (1)

9-9: LGTM: Routine version bump.

components/google_sheets/actions/clear-cell/clear-cell.mjs (1)

10-10: LGTM: Routine version bump.

components/google_sheets/actions/update-cell/update-cell.mjs (1)

10-10: LGTM: Routine version bump.

components/google_sheets/actions/add-single-row/add-single-row.mjs (1)

13-13: LGTM: Routine version bump.

components/google_sheets/actions/copy-worksheet/copy-worksheet.mjs (1)

7-7: LGTM: Version bump is appropriate.

The patch version increment aligns with the package's minor version release (0.9.3 → 0.10.0). No functional changes.

components/google_sheets/actions/get-spreadsheet-by-id/get-spreadsheet-by-id.mjs (1)

7-7: LGTM: Version bump is appropriate.

The patch version increment aligns with the package release cycle. No functional changes.

components/google_sheets/actions/update-row/update-row.mjs (1)

13-13: LGTM: Version bump is appropriate.

The patch version increment aligns with the package release cycle. No functional changes.

components/google_sheets/actions/create-worksheet/create-worksheet.mjs (1)

7-7: LGTM: Version bump is appropriate.

The patch version increment aligns with the package release cycle. No functional changes.

components/google_sheets/actions/add-column/add-column.mjs (1)

7-7: LGTM: Version bump is appropriate.

The patch version increment aligns with the package release cycle. No functional changes.

components/google_sheets/actions/get-values-in-range/get-values-in-range.mjs (1)

10-10: LGTM: Version bump is appropriate.

The patch version increment aligns with the package release cycle. No functional changes.

components/google_sheets/actions/update-formatting/update-formatting.mjs (1)

10-10: LGTM: Version bump is appropriate.

The patch version increment aligns with the package release cycle. No functional changes.

components/google_sheets/actions/get-cell/get-cell.mjs (1)

10-10: LGTM: Version bump is appropriate.

The patch version increment aligns with the package release cycle. No functional changes.

components/google_sheets/actions/find-row/find-row.mjs (1)

10-10: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release introducing the new dimension actions. No functional changes detected.

components/google_sheets/actions/insert-comment/insert-comment.mjs (1)

7-7: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release. No functional changes detected.

components/google_sheets/actions/create-spreadsheet/create-spreadsheet.mjs (1)

7-7: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release. No functional changes detected.

components/google_sheets/actions/delete-rows/delete-rows.mjs (1)

7-7: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release introducing the new dimension actions (insert and move). This action already uses deleteDimension, complementing the new capabilities.

components/google_sheets/actions/add-multiple-rows/add-multiple-rows.mjs (1)

14-14: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release. No functional changes detected.

components/google_sheets/sources/new-row-added/new-row-added.mjs (1)

11-11: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release. No functional changes detected.

components/google_sheets/sources/new-worksheet/new-worksheet.mjs (1)

12-12: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release. No functional changes detected.

components/google_sheets/sources/new-row-added-polling/new-row-added-polling.mjs (1)

11-11: LGTM – Coordinated version bump.

This patch version increment aligns with the package-wide release. No functional changes detected.

components/google_sheets/actions/delete-worksheet/delete-worksheet.mjs (1)

7-7: Version bump looks good.

Standard version increment aligned with the package release. No functional changes.

components/google_sheets/actions/list-worksheets/list-worksheets.mjs (1)

7-7: Version bump looks good.

Standard version increment consistent with the package release. No functional changes.

components/google_sheets/actions/clear-rows/clear-rows.mjs (1)

10-10: Version bump looks good.

Standard version increment for the package release. No functional changes.

components/google_sheets/actions/get-current-user/get-current-user.mjs (1)

9-9: Version bump looks good.

Standard version increment for the package release. No functional changes.


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

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: 7

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c076545 and 2976322.

📒 Files selected for processing (4)
  • components/google_sheets/actions/insert-dimension/insert-dimension.mjs (1 hunks)
  • components/google_sheets/actions/move-dimension/move-dimension.mjs (1 hunks)
  • components/google_sheets/google_sheets.app.mjs (2 hunks)
  • components/google_sheets/package.json (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-09-15T22:01:11.472Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 18362
File: components/leonardo_ai/actions/generate-image/generate-image.mjs:103-105
Timestamp: 2025-09-15T22:01:11.472Z
Learning: In Pipedream components, pipedream/platform's axios implementation automatically excludes undefined values from HTTP requests, so there's no need to manually check for truthiness before including properties in request payloads.

Applied to files:

  • components/google_sheets/google_sheets.app.mjs
🧬 Code graph analysis (2)
components/google_sheets/actions/insert-dimension/insert-dimension.mjs (1)
components/google_sheets/actions/move-dimension/move-dimension.mjs (1)
  • response (63-70)
components/google_sheets/actions/move-dimension/move-dimension.mjs (1)
components/google_sheets/actions/insert-dimension/insert-dimension.mjs (1)
  • response (66-73)
⏰ 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: pnpm publish
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Lint Code Base
🔇 Additional comments (4)
components/google_sheets/package.json (1)

3-3: LGTM! Appropriate version bump.

The minor version increment correctly reflects the addition of new features (insert-dimension and move-dimension actions).

components/google_sheets/google_sheets.app.mjs (1)

3-7: LGTM! Modular lodash imports.

Using modular lodash imports is a best practice that reduces bundle size.

components/google_sheets/actions/insert-dimension/insert-dimension.mjs (1)

8-12: Consider setting destructiveHint: true.

While inserting dimensions doesn't delete data, it does modify the spreadsheet structure by adding rows/columns, which could affect formulas, references, and layout. Consider whether destructiveHint: true would be more appropriate to warn users of structural changes.

components/google_sheets/actions/move-dimension/move-dimension.mjs (1)

8-12: Consider setting destructiveHint: true.

Moving dimensions changes the spreadsheet structure and can affect formulas, references, and layout. Consider whether destructiveHint: true would be more appropriate to warn users of these structural changes.

luancazarine and others added 2 commits November 6, 2025 14:03
- Bumped version numbers for various actions, including:
  - Add Column (0.1.13 to 0.1.14)
  - Add Multiple Rows (0.2.16 to 0.2.17)
  - Add Single Row (2.1.19 to 2.1.20)
  - Clear Cell (0.1.17 to 0.1.18)
  - Clear Rows (0.1.15 to 0.1.16)
  - Copy Worksheet (0.1.13 to 0.1.14)
  - Create Spreadsheet (0.1.15 to 0.1.16)
  - Create Worksheet (0.1.13 to 0.1.14)
  - Delete Rows (0.0.13 to 0.0.14)
  - Delete Worksheet (0.1.13 to 0.1.14)
  - Find Row (0.2.16 to 0.2.17)
  - Get Cell (0.1.15 to 0.1.16)
  - Get Current User (0.0.1 to 0.0.2)
  - Get Spreadsheet by ID (0.1.14 to 0.1.15)
  - Get Values in Range (0.1.15 to 0.1.16)
  - Insert Anchored Note (0.1.13 to 0.1.14)
  - Insert Comment (0.1.14 to 0.1.15)
  - List Worksheets (0.1.13 to 0.1.14)
  - Update Cell (0.1.15 to 0.1.16)
  - Update Formatting (0.0.1 to 0.0.2)
  - Update Multiple Rows (0.1.15 to 0.1.16)
  - Update Row (0.1.17 to 0.1.18)
  - Upsert Row (0.1.17 to 0.1.18)

- Updated version numbers for sources, including:
  - New Comment (0.1.2 to 0.1.3)
  - New Row Added (0.2.2 to 0.2.3)
  - New Row Added (Polling) (0.1.2 to 0.1.3)
  - New Updates (0.3.2 to 0.3.3)
  - New Worksheet (0.2.2 to 0.2.3)
….mjs

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

@jcortes jcortes left a comment

Choose a reason for hiding this comment

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

Hi @luancazarine lgtm! Ready for QA!

@vunguyenhung
Copy link
Collaborator

Hi everyone, all test cases are passed! Ready for release!

Test reports

@luancazarine luancazarine merged commit e775890 into master Nov 7, 2025
10 checks passed
@luancazarine luancazarine deleted the 18937-action-google-sheets---insert-and-move-rows-at-specific-positions branch November 7, 2025 12:35
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.

[ACTION] Google Sheets - Insert and Move Rows at Specific Positions

4 participants