-
Notifications
You must be signed in to change notification settings - Fork 5.6k
[ACTION] JIRA Search Issues #19576
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
[ACTION] JIRA Search Issues #19576
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
WalkthroughAdds four new Jira Cloud actions (search/count/match/issue-picker) and corresponding Jira app methods; additionally bumps versions across many existing Jira action and source modules and updates the Jira component package version. Changes
Sequence Diagram(s)sequenceDiagram
participant Action as Action Module
participant App as Jira App
participant API as Jira REST API
participant Export as Summary Export
Action->>App: invoke method(cloudId, data, $)
Note over Action,App: e.g. postSearchIssues / countIssuesUsingJQL / checkIssuesAgainstJQL / getIssuePickerSuggestions
App->>API: HTTP POST/GET to Jira endpoint
Note over App,API: /search/jql, /search/approximate-count, /jql/match, /issue/picker
API-->>App: response (issues / counts / matches / suggestions)
App-->>Action: return response
Action->>Export: $.export("$summary", summaryText)
Action-->>Action: return response payload
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (3 inconclusive)
✅ Passed checks (2 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 |
ed392f8 to
7318b63
Compare
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: 1
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (5)
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjscomponents/jira/actions/count-issues-using-jql/count-issues-using-jql.mjscomponents/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjscomponents/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjscomponents/jira/jira.app.mjs
🧰 Additional context used
🧬 Code graph analysis (3)
components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs (4)
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (1)
response(48-55)components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (1)
response(35-41)components/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjs (1)
response(76-87)components/jira/jira.app.mjs (1)
response(386-399)
components/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjs (4)
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (1)
response(48-55)components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (1)
response(35-41)components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs (1)
response(121-134)components/jira/jira.app.mjs (1)
response(386-399)
components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (4)
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (1)
response(48-55)components/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjs (1)
response(76-87)components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs (1)
response(121-134)components/jira/jira.app.mjs (1)
response(386-399)
⏰ 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 (9)
components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (2)
3-27: LGTM! Well-structured action metadata and props.The action metadata and prop definitions are clear and follow the established patterns in the codebase. The JQL description appropriately notes that the query must be bounded, which is an important constraint.
28-45: LGTM! Clean implementation with defensive coding.The run method correctly calls the app method with the appropriate parameters and provides a good user experience with the summary message. The
|| 0fallback is a nice defensive touch.components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs (2)
3-106: LGTM! Comprehensive and well-documented props.The action provides extensive configuration options for JQL searches with clear descriptions. The expand options with human-readable labels are particularly helpful for users.
136-140: The pagination logic is correct and matches Jira API v3 behavior.The Jira API v3 POST
/search/jqlendpoint always returnsisLastas a boolean—never undefined. The logicresponse.isLast !== falseproperly handles the documented behavior: whenisLastisfalse, more pages are available; whentrue, the current page is the last. The defensive treatment ofundefinedastrue(last page) is reasonable, though unnecessary based on the API spec, and does not introduce any bugs.components/jira/jira.app.mjs (1)
639-677: LGTM! New methods follow established patterns.The four new methods are well-structured and consistent with the existing codebase patterns. They properly:
- Accept
cloudIdand spread remaining arguments- Use the internal
_makeRequesthelper- Map to the correct Jira REST API v3 endpoints
The implementation aligns well with how the new action modules consume these methods.
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (2)
3-39: LGTM! Well-structured props with helpful examples.The action metadata and props are clear. Good reuse of the
issueIdOrKeypropDefinition with proper context passing.
57-66: LGTM! Excellent pluralization logic.The summary calculation uses proper optional chaining for defensive coding, and the pluralization handles both "query/queries" and "match/matches" correctly.
components/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjs (2)
3-63: LGTM! Well-designed optional parameters.The action provides a flexible interface with all search parameters being optional. The
currentProjectIdprop correctly usespropDefinitionwith context to pass thecloudIddependency.
64-92: LGTM! Clean implementation with good UX.The run method is straightforward and includes a nice touch with the
query || "all"fallback in the summary message for better user feedback.
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs
Show resolved
Hide resolved
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: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
components/jira/actions/create-version/create-version.mjs (1)
82-82: Typo in summary message."successfuly" should be "successfully".
🔎 Proposed fix
- $.export("$summary", `Version has been created successfuly. (ID:${response.id}, NAME:${response.name})`); + $.export("$summary", `Version has been created successfully. (ID:${response.id}, NAME:${response.name})`);components/jira/actions/add-attachment-to-issue/add-attachment-to-issue.mjs (1)
53-53: Extraneous whitespace in method call.There's an extra space between
dataand.append.🔎 Proposed fix
- data .append("file", stream, { + data.append("file", stream, {components/jira/actions/get-all-projects/get-all-projects.mjs (1)
54-57: Pre-existing issue:issueIdOrKeyis not a defined prop.Line 56 references
this.issueIdOrKey, but this property is not defined in the action's props. This appears to be dead code since the "Get All Projects" API doesn't useissueIdOrKey. Consider removing it in a follow-up.🔎 Suggested fix
resourceFnArgs: { $, - issueIdOrKey: this.issueIdOrKey, params: { recent: this.recent,
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (30)
components/jira/actions/add-attachment-to-issue/add-attachment-to-issue.mjscomponents/jira/actions/add-comment-to-issue/add-comment-to-issue.mjscomponents/jira/actions/add-multiple-attachments-to-issue/add-multiple-attachments-to-issue.mjscomponents/jira/actions/add-watcher-to-issue/add-watcher-to-issue.mjscomponents/jira/actions/assign-issue/assign-issue.mjscomponents/jira/actions/check-issues-against-jql/check-issues-against-jql.mjscomponents/jira/actions/count-issues-using-jql/count-issues-using-jql.mjscomponents/jira/actions/create-custom-field-options-context/create-custom-field-options-context.mjscomponents/jira/actions/create-issue/create-issue.mjscomponents/jira/actions/create-version/create-version.mjscomponents/jira/actions/delete-project/delete-project.mjscomponents/jira/actions/get-all-projects/get-all-projects.mjscomponents/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjscomponents/jira/actions/get-issue/get-issue.mjscomponents/jira/actions/get-task/get-task.mjscomponents/jira/actions/get-transitions/get-transitions.mjscomponents/jira/actions/get-user/get-user.mjscomponents/jira/actions/get-users/get-users.mjscomponents/jira/actions/list-issue-comments/list-issue-comments.mjscomponents/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjscomponents/jira/actions/search-issues-with-jql/search-issues-with-jql.mjscomponents/jira/actions/transition-issue/transition-issue.mjscomponents/jira/actions/update-comment/update-comment.mjscomponents/jira/actions/update-issue/update-issue.mjscomponents/jira/jira.app.mjscomponents/jira/package.jsoncomponents/jira/sources/events/events.mjscomponents/jira/sources/issue-created/issue-created.mjscomponents/jira/sources/issue-deleted/issue-deleted.mjscomponents/jira/sources/issue-updated/issue-updated.mjs
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-08-19T09:02:00.906Z
Learnt from: nurul3101
Repo: PipedreamHQ/pipedream PR: 18092
File: components/prisma_management_api/README.md:42-47
Timestamp: 2025-08-19T09:02:00.906Z
Learning: In Prisma Management API documentation, the "Delete Database" action intentionally uses this name even though it technically deletes an entire project (including all associated databases and resources) via projectId. This naming choice is deliberate and should not be flagged as inconsistent.
Applied to files:
components/jira/actions/delete-project/delete-project.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/jira/sources/issue-updated/issue-updated.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/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjs
🧬 Code graph analysis (4)
components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs (1)
components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (1)
response(35-41)
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (3)
components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (1)
response(35-41)components/jira/actions/get-issue/get-issue.mjs (1)
response(71-82)components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs (1)
response(121-134)
components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (4)
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (1)
response(48-55)components/jira/actions/get-issue/get-issue.mjs (1)
response(71-82)components/jira/actions/get-task/get-task.mjs (1)
response(36-40)components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs (1)
response(121-134)
components/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjs (9)
components/jira/actions/add-attachment-to-issue/add-attachment-to-issue.mjs (1)
response(63-69)components/jira/actions/add-comment-to-issue/add-comment-to-issue.mjs (1)
response(90-103)components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (1)
response(48-55)components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (1)
response(35-41)components/jira/actions/create-issue/create-issue.mjs (1)
response(133-146)components/jira/actions/get-issue/get-issue.mjs (1)
response(71-82)components/jira/actions/get-transitions/get-transitions.mjs (1)
response(70-81)components/jira/actions/get-user/get-user.mjs (1)
response(40-47)components/jira/actions/get-users/get-users.mjs (1)
response(30-36)
⏰ 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: Verify TypeScript components
- GitHub Check: Publish TypeScript components
- GitHub Check: Lint Code Base
🔇 Additional comments (28)
components/jira/actions/create-custom-field-options-context/create-custom-field-options-context.mjs (1)
8-8: Version bump approved.The version metadata has been incremented from 0.0.7 to 0.0.8 as part of the broader package versioning refresh. The action implementation remains unchanged and correct.
components/jira/actions/list-issue-comments/list-issue-comments.mjs (1)
7-7: LGTM!Version bump aligns with the broader PR changes adding new Jira search functionality.
components/jira/actions/search-issues-with-jql/search-issues-with-jql.mjs (1)
7-7: LGTM!Version bump aligns with the PR-wide versioning update. The pagination implementation correctly handles token-based pagination with proper bounds checking.
components/jira/sources/events/events.mjs (1)
8-8: LGTM!Version bump consistent with other source modules in this PR.
components/jira/sources/issue-created/issue-created.mjs (1)
7-7: LGTM!Version bump consistent with other source modules in this PR.
components/jira/actions/create-version/create-version.mjs (1)
7-7: LGTM!Version bump aligns with the PR-wide versioning update.
components/jira/actions/get-transitions/get-transitions.mjs (1)
7-7: LGTM!Version bump aligns with the PR-wide versioning update.
components/jira/actions/add-comment-to-issue/add-comment-to-issue.mjs (1)
10-10: LGTM!Version bump aligns with the PR-wide versioning update.
components/jira/actions/add-attachment-to-issue/add-attachment-to-issue.mjs (1)
9-9: LGTM!Version bump aligns with the PR-wide versioning update.
components/jira/actions/delete-project/delete-project.mjs (1)
7-7: LGTM: Routine version bump.The patch version increment aligns with the broader package release that adds new Jira search actions.
components/jira/sources/issue-deleted/issue-deleted.mjs (1)
7-7: LGTM: Version increment is appropriate.The version bump is consistent with the package-wide release cycle.
components/jira/actions/update-issue/update-issue.mjs (1)
11-11: LGTM: Version bump aligned with package release.The patch increment is appropriate for this coordinated release with no functional changes to this action.
components/jira/actions/add-watcher-to-issue/add-watcher-to-issue.mjs (1)
6-6: LGTM: Consistent version increment.The patch version bump is appropriate and aligns with the package release.
components/jira/actions/get-users/get-users.mjs (1)
7-7: LGTM: Appropriate version increment.The version bump is consistent with the coordinated package release.
components/jira/actions/get-task/get-task.mjs (1)
7-7: LGTM: Version bump is appropriate.The patch increment aligns with the broader Jira package release.
components/jira/actions/get-user/get-user.mjs (1)
7-7: LGTM: Consistent version increment.The patch version bump is appropriate for this coordinated release cycle.
components/jira/actions/update-comment/update-comment.mjs (1)
10-10: LGTM: Routine version increment.The patch version bump aligns with the package-wide release that introduces new Jira search actions.
components/jira/actions/add-multiple-attachments-to-issue/add-multiple-attachments-to-issue.mjs (1)
9-9: LGTM!Version bump is appropriate to accompany the new actions and package version update to 1.2.0.
components/jira/actions/create-issue/create-issue.mjs (1)
11-11: LGTM!Version bump aligns with the broader package version update.
components/jira/actions/assign-issue/assign-issue.mjs (1)
6-6: LGTM!Version bump is consistent with the package version update.
components/jira/sources/issue-updated/issue-updated.mjs (1)
7-7: LGTM!Version bump is appropriate for the package update.
components/jira/actions/get-issue/get-issue.mjs (1)
7-7: LGTM!Version bump aligns with the package version update.
components/jira/package.json (1)
3-3: LGTM!Minor version bump to 1.2.0 is semantically appropriate for adding new action modules (search issues, count issues, check issues against JQL, issue picker suggestions) without breaking changes.
components/jira/actions/transition-issue/transition-issue.mjs (1)
8-8: LGTM!Version bump is consistent with the package update.
components/jira/actions/get-all-projects/get-all-projects.mjs (1)
7-7: LGTM!Version bump aligns with the package version update.
components/jira/jira.app.mjs (1)
639-677: LGTM! Well-structured API methods.All four new methods follow the established pattern in this file, correctly forward arguments, and use appropriate HTTP methods and API paths for their respective operations.
components/jira/actions/count-issues-using-jql/count-issues-using-jql.mjs (1)
1-46: LGTM! Clean and correct implementation.The action correctly calls the API method, handles the response, and provides a clear summary message with proper fallback for missing count values.
components/jira/actions/check-issues-against-jql/check-issues-against-jql.mjs (1)
57-65: LGTM! Well-implemented summary logic.The totalMatches calculation uses proper optional chaining and the summary message includes correct pluralization for both "queries" and "matches."
components/jira/actions/get-issue-picker-suggestions/get-issue-picker-suggestions.mjs
Show resolved
Hide resolved
components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs
Show resolved
Hide resolved
components/jira/actions/search-issues-with-jql-post/search-issues-with-jql-post.mjs
Show resolved
Hide resolved
luancazarine
left a 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.
Hi @jcortes, LGTM! Ready for QA!
|
Hi everyone, all test cases are passed! Ready for release! Test reports
|
WHY
Resolves #14903
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.