-
Notifications
You must be signed in to change notification settings - Fork 5.6k
[Components] d2l_brightspace - new components #19493
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?
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
WalkthroughThis pull request introduces a comprehensive D2L Brightspace API integration by adding five new action modules (create-enrollment, get-grade-values, get-user, list-dropbox-folders, list-enrollments, list-org-units), a constants module, and extending the app module with propDefinitions and HTTP utilities for API communication and pagination handling. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–30 minutes
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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. 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.
Actionable comments posted: 7
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (9)
components/d2l_brightspace/actions/create-enrollment/create-enrollment.mjs(1 hunks)components/d2l_brightspace/actions/get-grade-values/get-grade-values.mjs(1 hunks)components/d2l_brightspace/actions/get-user/get-user.mjs(1 hunks)components/d2l_brightspace/actions/list-dropbox-folders/list-dropbox-folders.mjs(1 hunks)components/d2l_brightspace/actions/list-enrollments/list-enrollments.mjs(1 hunks)components/d2l_brightspace/actions/list-org-units/list-org-units.mjs(1 hunks)components/d2l_brightspace/common/constants.mjs(1 hunks)components/d2l_brightspace/d2l_brightspace.app.mjs(1 hunks)components/d2l_brightspace/package.json(2 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2024-12-12T19:23:09.039Z
Learnt from: jcortes
Repo: PipedreamHQ/pipedream PR: 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.
Applied to files:
components/d2l_brightspace/package.json
📚 Learning: 2025-06-04T17:52:05.780Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 16954
File: components/salesloft/salesloft.app.mjs:14-23
Timestamp: 2025-06-04T17:52:05.780Z
Learning: In the Salesloft API integration (components/salesloft/salesloft.app.mjs), the _makeRequest method returns response.data which directly contains arrays for list endpoints like listPeople, listCadences, listUsers, and listAccounts. The propDefinitions correctly call .map() directly on these responses without needing to destructure a nested data property.
Applied to files:
components/d2l_brightspace/d2l_brightspace.app.mjs
📚 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/d2l_brightspace/d2l_brightspace.app.mjs
🧬 Code graph analysis (5)
components/d2l_brightspace/actions/get-grade-values/get-grade-values.mjs (4)
components/d2l_brightspace/actions/create-enrollment/create-enrollment.mjs (1)
response(37-44)components/d2l_brightspace/actions/get-user/get-user.mjs (1)
response(25-28)components/d2l_brightspace/actions/list-dropbox-folders/list-dropbox-folders.mjs (1)
response(25-28)components/d2l_brightspace/d2l_brightspace.app.mjs (5)
response(24-26)response(51-53)response(72-72)response(88-90)response(193-195)
components/d2l_brightspace/actions/create-enrollment/create-enrollment.mjs (4)
components/d2l_brightspace/actions/get-grade-values/get-grade-values.mjs (1)
response(40-45)components/d2l_brightspace/actions/get-user/get-user.mjs (1)
response(25-28)components/d2l_brightspace/actions/list-dropbox-folders/list-dropbox-folders.mjs (1)
response(25-28)components/d2l_brightspace/d2l_brightspace.app.mjs (5)
response(24-26)response(51-53)response(72-72)response(88-90)response(193-195)
components/d2l_brightspace/actions/get-user/get-user.mjs (4)
components/d2l_brightspace/actions/create-enrollment/create-enrollment.mjs (1)
response(37-44)components/d2l_brightspace/actions/get-grade-values/get-grade-values.mjs (1)
response(40-45)components/d2l_brightspace/actions/list-dropbox-folders/list-dropbox-folders.mjs (1)
response(25-28)components/d2l_brightspace/d2l_brightspace.app.mjs (5)
response(24-26)response(51-53)response(72-72)response(88-90)response(193-195)
components/d2l_brightspace/actions/list-org-units/list-org-units.mjs (3)
components/d2l_brightspace/d2l_brightspace.app.mjs (1)
orgUnits(27-27)components/d2l_brightspace/actions/list-enrollments/list-enrollments.mjs (1)
iterator(47-54)components/zep/actions/get-threads/get-threads.mjs (1)
max(39-39)
components/d2l_brightspace/d2l_brightspace.app.mjs (6)
components/d2l_brightspace/actions/list-enrollments/list-enrollments.mjs (1)
params(42-42)components/d2l_brightspace/actions/create-enrollment/create-enrollment.mjs (1)
response(37-44)components/d2l_brightspace/actions/get-grade-values/get-grade-values.mjs (1)
response(40-45)components/d2l_brightspace/actions/get-user/get-user.mjs (1)
response(25-28)components/d2l_brightspace/actions/list-dropbox-folders/list-dropbox-folders.mjs (1)
response(25-28)components/d2l_brightspace/actions/list-org-units/list-org-units.mjs (1)
orgUnits(51-51)
⏰ 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: Publish TypeScript components
- GitHub Check: pnpm publish
- GitHub Check: Verify TypeScript components
- GitHub Check: Lint Code Base
🔇 Additional comments (7)
components/d2l_brightspace/package.json (1)
3-16: LGTM!Version bump to 0.1.0 is appropriate for the new component additions, and the
@pipedream/platformdependency is correctly added to support the axios usage in the app module.components/d2l_brightspace/actions/get-grade-values/get-grade-values.mjs (1)
39-49: LGTM!The run method correctly calls the app's
getGradeValuewith the required parameters and follows the established pattern for summary export.components/d2l_brightspace/actions/list-org-units/list-org-units.mjs (1)
42-71: LGTM!The run method correctly implements pagination using the app's
paginategenerator, with proper result collection and summary pluralization handling.components/d2l_brightspace/d2l_brightspace.app.mjs (3)
7-98: LGTM!The propDefinitions are well-implemented with proper pagination support for
orgUnitIdanduserId, appropriate fallback handling for response formats (response.Items || response || []), and sensible dependency injection forgradeObjectIdbased onorgUnitId.
100-120: LGTM!The HTTP utility methods follow Pipedream conventions. The URL construction with domain placeholder replacement is clean, and
_makeRequestproperly integrates with the platform's axios wrapper.
121-185: LGTM!API methods are well-structured with consistent patterns. The separation between LP (user/enrollment management) and LE (course-specific resources) API contexts aligns with D2L Brightspace API organization.
components/d2l_brightspace/actions/get-user/get-user.mjs (1)
3-32: Get User action is clear and consistentProps wiring, annotations, and the
runimplementation (delegating tothis.app.getUserand exporting a concise summary) look correct and consistent with the other actions in this PR.
WHY
Resolves #12538
Summary by CodeRabbit
Release Notes
✏️ Tip: You can customize this high-level summary in your review settings.