-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Update Reddit component to version 1.2.0, add new private message sou… #17347
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
Update Reddit component to version 1.2.0, add new private message sou… #17347
Conversation
…rce, and increment action versions to 0.1.2 and 0.1.3 for various actions. Refactor imports for consistency.
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 3 Skipped Deployments
|
WalkthroughA new source for detecting new Reddit private messages was added, along with a supporting method in the Reddit app module. Several components and sources had their version numbers incremented, and some import statements were reordered. No other functional or logic changes were introduced outside the new private message detection feature. Changes
Sequence Diagram(s)sequenceDiagram
participant RedditSource as New Private Message Source
participant RedditApp as Reddit App
participant RedditAPI as Reddit API
RedditSource->>RedditApp: getPrivateMessages({ before, limit })
RedditApp->>RedditAPI: GET /message/inbox with params
RedditAPI-->>RedditApp: List of private messages
RedditApp-->>RedditSource: Private messages data
loop For each new message
RedditSource->>RedditSource: Emit event with message metadata
end
Assessment against linked issues
Assessment against linked issues: Out-of-scope changes
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
components/reddit/reddit.app.mjsOops! Something went wrong! :( ESLint: 8.57.1 Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs components/reddit/sources/new-private-message/new-private-message.mjsOops! Something went wrong! :( ESLint: 8.57.1 Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs 📜 Recent review detailsConfiguration used: CodeRabbit UI ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
⏰ Context from checks skipped due to timeout of 90000ms (4)
✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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.
Actionable comments posted: 2
🧹 Nitpick comments (2)
components/reddit/actions/submit-a-post/submit-a-post.mjs (1)
8-8: Reminder on semantic versionAction moves from
0.1.1→0.1.2. Since behaviour is unchanged, patch bump is correct. Make sure any downstream workflows pinning exact versions are updated.components/reddit/sources/new-links-on-a-subreddit/new-links-on-a-subreddit.mjs (1)
11-11: Patch version bump checkConfirm changelog & package registry carry
0.1.2.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
components/reddit/actions/list-comments-in-a-post/list-comments-in-a-post.mjs(1 hunks)components/reddit/actions/list-subreddits-by-query/list-subreddits-by-query.mjs(1 hunks)components/reddit/actions/search-post/search-post.mjs(1 hunks)components/reddit/actions/submit-a-comment/submit-a-comment.mjs(1 hunks)components/reddit/actions/submit-a-post/submit-a-post.mjs(1 hunks)components/reddit/package.json(2 hunks)components/reddit/reddit.app.mjs(2 hunks)components/reddit/sources/new-comments-by-user/new-comments-by-user.mjs(1 hunks)components/reddit/sources/new-comments-on-a-post/new-comments-on-a-post.mjs(2 hunks)components/reddit/sources/new-hot-posts-on-a-subreddit/new-hot-posts-on-a-subreddit.mjs(2 hunks)components/reddit/sources/new-links-by-user/new-links-by-user.mjs(1 hunks)components/reddit/sources/new-links-on-a-subreddit/new-links-on-a-subreddit.mjs(2 hunks)components/reddit/sources/new-private-message/new-private-message.mjs(1 hunks)components/reddit/sources/new-saved-post-by-user/new-saved-post-by-user.mjs(1 hunks)
🧰 Additional context used
🧠 Learnings (6)
components/reddit/package.json (1)
Learnt from: jcortes
PR: PipedreamHQ/pipedream#14935
File: components/sailpoint/package.json:15-18
Timestamp: 2024-12-12T19:23:09.039Z
Learning: When developing Pipedream components, do not add built-in Node.js modules like `fs` to `package.json` dependencies, as they are native modules provided by the Node.js runtime.
components/reddit/sources/new-saved-post-by-user/new-saved-post-by-user.mjs (1)
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In `components/the_magic_drip/sources/common.mjs`, when processing items in `getAndProcessData`, `savedIds` is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.
components/reddit/sources/new-comments-on-a-post/new-comments-on-a-post.mjs (1)
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#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.
components/reddit/reddit.app.mjs (1)
Learnt from: jcortes
PR: PipedreamHQ/pipedream#14935
File: components/sailpoint/package.json:15-18
Timestamp: 2024-12-12T19:23:09.039Z
Learning: When developing Pipedream components, do not add built-in Node.js modules like `fs` to `package.json` dependencies, as they are native modules provided by the Node.js runtime.
components/reddit/sources/new-private-message/new-private-message.mjs (4)
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In `components/the_magic_drip/sources/common.mjs`, when processing items in `getAndProcessData`, `savedIds` is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The `common-webhook-methods.mjs` object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like `generateWebhookMeta` and `getEventType` to enforce implementation in subclasses.
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The `common-webhook-methods.mjs` object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like `generateWebhookMeta` and `getEventType` to enforce implementation in subclasses.
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#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.
components/reddit/sources/new-hot-posts-on-a-subreddit/new-hot-posts-on-a-subreddit.mjs (1)
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In `components/the_magic_drip/sources/common.mjs`, when processing items in `getAndProcessData`, `savedIds` is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.
🪛 GitHub Actions: Components Checks
components/reddit/package.json
[error] 1-1: pnpm install failed due to outdated lockfile. The pnpm-lock.yaml is not up to date with package.json dependencies. Specifiers in lockfile do not match package.json (e.g., '@pipedream/platform' version mismatch). Use 'pnpm install --no-frozen-lockfile' to bypass.
🪛 GitHub Actions: Pull Request Checks
components/reddit/package.json
[error] 1-1: pnpm install failed due to outdated lockfile. The pnpm-lock.yaml is not up to date with package.json dependencies. Specifically, '@pipedream/platform' version mismatch (^1.4.0 in lockfile vs ^3.1.0 in package.json). Use 'pnpm install --no-frozen-lockfile' to bypass.
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: pnpm publish
🔇 Additional comments (21)
components/reddit/sources/new-comments-by-user/new-comments-by-user.mjs (1)
10-10: Version bump is fineNo logic changed here; the minor patch bump is appropriate and keeps parity with sibling sources.
components/reddit/sources/new-saved-post-by-user/new-saved-post-by-user.mjs (1)
10-10: Patch bump acknowledgedThe
0.1.3increment is consistent with the coordinated component release. Nothing else to flag.components/reddit/actions/search-post/search-post.mjs (1)
6-6: Minor version tick LGTMNo functional code touched; the bump keeps action versions in sync.
components/reddit/actions/submit-a-comment/submit-a-comment.mjs (1)
7-7: Version alignment acknowledgedPatch bump only; implementation unchanged.
components/reddit/sources/new-comments-on-a-post/new-comments-on-a-post.mjs (2)
2-2: Import order looks good
lodash/get.js(external) now precedes the localcommon.mjs, matching the usual “external-before-internal” convention.
No action needed.
12-12: Ensure version bump is reflected everywhereBumped to
0.1.2. Double-check that:
components/reddit/package.jsonlists"version": "1.2.0"(already in diff) and- any documentation / CHANGELOG has the same number.
Prevents mismatched releases.
components/reddit/sources/new-links-by-user/new-links-by-user.mjs (2)
10-10: Version bump only – looks fineNothing else changed; ✅
10-10: Cross-file consistencyPlease confirm every consumer (e.g. Marketplace metadata) now references
0.1.2; otherwise older cache may still surface0.1.1.components/reddit/actions/submit-a-post/submit-a-post.mjs (1)
3-3: Import grouping
tzs(internal util) is now abovecomponents/reddit/actions/list-subreddits-by-query/list-subreddits-by-query.mjs (2)
2-2: Import location change acknowledgedNo functional impact; ok to merge.
7-7: Propagate version bumpSame note as other files—sync docs/examples to
0.1.2.components/reddit/sources/new-links-on-a-subreddit/new-links-on-a-subreddit.mjs (1)
2-2: Import order compliantExternal first, then local – accepted.
components/reddit/sources/new-hot-posts-on-a-subreddit/new-hot-posts-on-a-subreddit.mjs (2)
1-1: LGTM: Import reordering for consistency.The import statements have been reordered to improve consistency across the codebase, with no functional impact.
Also applies to: 4-4
14-14: LGTM: Version bump aligns with package update.The version increment is consistent with the broader Reddit component update mentioned in the PR.
components/reddit/actions/list-comments-in-a-post/list-comments-in-a-post.mjs (2)
2-2: LGTM: Import reordering for consistency.The reddit app import has been moved below the axios import, improving consistency without functional impact.
7-7: LGTM: Version bump aligns with package update.The version increment is consistent with the coordinated Reddit component update.
components/reddit/reddit.app.mjs (2)
4-5: LGTM: Import reordering for consistency.The import order swap between
isNilandqsimproves consistency without affecting functionality.
493-499: LGTM: Well-implemented API method following established patterns.The new
getPrivateMessagesmethod correctly:
- Uses the
_withRetrieswrapper for error handling- Targets the appropriate Reddit API endpoint (
/message/inbox)- Accepts optional parameters through the
optsparameter- Follows the same pattern as other methods in this module
components/reddit/sources/new-private-message/new-private-message.mjs (3)
1-11: LGTM: Well-structured source component setup.The component properly extends the common base, defines appropriate metadata, and uses unique deduplication strategy for private messages.
12-30: LGTM: Proper initialization in deploy hook.The deploy hook correctly:
- Fetches initial sample messages with appropriate limit
- Handles empty response gracefully
- Sets up cursor tracking using the newest message ID
- Emits events in chronological order (reversed)
32-40: LGTM: Appropriate event metadata generation.The
generateEventMetadatamethod correctly extracts the message ID, body as summary, and creation timestamp for event tracking.
Resolves #17253
Summary by CodeRabbit
New Features
New Methods
Chores