Skip to content

v0.4.0 - Google productivity suite

Choose a tag to compare

@github-actions github-actions released this 24 Apr 16:40
· 58 commits to main since this release

runline 0.4.0 — Google productivity suite

Seven new first-party plugins covering the Google user-facing APIs, all with per-plugin OAuth2 flows and full action parity with the underlying Google APIs. Verified end-to-end against real accounts.

New plugins

Plugin Actions Highlights
googleCalendar 11 calendar + event; freeBusy, listInstances, move, RRULE with local nextOccurrence resolution via rrule
googleDrive 20 file, folder, fileFolder, drive; multipart + resumable uploads, streamed downloads, shared-drive CRUD, permissions
googleSheets 13 spreadsheet + sheet; append / update / upsert by match column (or row_number), auto-column-add, keepFirstRow on clear, raw batchUpdate passthrough
googleDocs 21 create, get (simple text flatten), batchUpdate passthrough, first-class helpers for text / table / bullets / named ranges / headers / footers / positioned objects
googleSlides 7 presentation + page, replaceText, listSlides, thumbnail export, batchUpdate
googleContacts 10 contact CRUD + list (connections or searchContacts) + group CRUD; auto-etag on update
googleTasks 12 taskList + task CRUD, reorder / reparent via move, clear completed

Gmail

Existing gmail plugin kept intact; minor comment scrub.

Infrastructure

  • Every action now handles undefined input cleanly — input ?? {} guard added across all eight Google plugins.
  • rrule imported via default + destructuring to survive CJS interop under Node ESM.
  • README plugin table regenerated; filtered to required auth fields so internal cache fields don't leak into the docs.

Testing

All eight plugins verified end-to-end from a clean workspace: OAuth flow → authed connection → action call returning real data (profile, calendar list, drive search, spreadsheet / doc / slide creation, contact groups, task lists). Public-read sharing tested via googleDrive.file.share, permanent delete tested via file.delete.