@commandable/integration-data 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/credentials-index.d.ts.map +1 -1
- package/dist/credentials-index.js +183 -0
- package/dist/credentials-index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +33 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +36 -4
- package/dist/loader.js.map +1 -1
- package/integrations/__tests__/liveHarness.ts +16 -3
- package/integrations/airtable/.env.test +9 -0
- package/integrations/airtable/.env.test.example +11 -0
- package/integrations/airtable/README.md +27 -0
- package/integrations/airtable/__tests__/get_handlers.test.ts +43 -5
- package/integrations/confluence/.env.test +25 -0
- package/integrations/confluence/.env.test.example +36 -0
- package/integrations/confluence/README.md +28 -0
- package/integrations/confluence/__tests__/get_handlers.test.ts +121 -0
- package/integrations/confluence/__tests__/usage_parity.test.ts +14 -0
- package/integrations/confluence/__tests__/write_handlers.test.ts +131 -0
- package/integrations/confluence/credentials.json +39 -0
- package/integrations/confluence/credentials_hint.md +4 -0
- package/integrations/confluence/credentials_hint_api_token.md +9 -0
- package/integrations/confluence/credentials_hint_oauth_token.md +8 -0
- package/integrations/confluence/handlers/add_comment.js +19 -0
- package/integrations/confluence/handlers/add_label.js +16 -0
- package/integrations/confluence/handlers/create_page.js +22 -0
- package/integrations/confluence/handlers/delete_page.js +17 -0
- package/integrations/confluence/handlers/get_comments.js +33 -0
- package/integrations/confluence/handlers/get_page_children.js +30 -0
- package/integrations/confluence/handlers/get_space.js +22 -0
- package/integrations/confluence/handlers/list_spaces.js +39 -0
- package/integrations/confluence/handlers/read_page.js +49 -0
- package/integrations/confluence/handlers/search_pages.js +42 -0
- package/integrations/confluence/handlers/update_page.js +42 -0
- package/integrations/confluence/manifest.json +85 -0
- package/integrations/confluence/prompt.md +55 -0
- package/integrations/confluence/schemas/add_comment.json +22 -0
- package/integrations/confluence/schemas/add_label.json +19 -0
- package/integrations/confluence/schemas/create_page.json +33 -0
- package/integrations/confluence/schemas/delete_page.json +23 -0
- package/integrations/confluence/schemas/empty.json +6 -0
- package/integrations/confluence/schemas/get_comments.json +24 -0
- package/integrations/confluence/schemas/get_page_children.json +28 -0
- package/integrations/confluence/schemas/get_space.json +18 -0
- package/integrations/confluence/schemas/list_spaces.json +36 -0
- package/integrations/confluence/schemas/read_page.json +28 -0
- package/integrations/confluence/schemas/search_pages.json +26 -0
- package/integrations/confluence/schemas/update_page.json +31 -0
- package/integrations/github/.env.test +16 -0
- package/integrations/github/.env.test.example +17 -0
- package/integrations/github/README.md +75 -0
- package/integrations/github/__tests__/get_handlers.test.ts +207 -12
- package/integrations/github/__tests__/write_handlers.test.ts +323 -55
- package/integrations/github/handlers/create_commit.js +10 -2
- package/integrations/github/handlers/create_file.js +46 -0
- package/integrations/github/handlers/create_pull_request_review.js +10 -0
- package/integrations/github/handlers/create_release.js +14 -0
- package/integrations/github/handlers/delete_branch.js +8 -0
- package/integrations/github/handlers/delete_file.js +22 -0
- package/integrations/github/handlers/edit_file.js +52 -0
- package/integrations/github/handlers/edit_files.js +107 -0
- package/integrations/github/handlers/fork_repo.js +10 -0
- package/integrations/github/handlers/get_commit.js +8 -0
- package/integrations/github/handlers/get_file_contents.js +21 -0
- package/integrations/github/handlers/get_job_logs.js +6 -0
- package/integrations/github/handlers/get_latest_release.js +4 -0
- package/integrations/github/handlers/get_me.js +4 -0
- package/integrations/github/handlers/get_pull_request.js +4 -0
- package/integrations/github/handlers/get_pull_request_diff.js +8 -0
- package/integrations/github/handlers/get_repo_tree.js +12 -0
- package/integrations/github/handlers/get_workflow_run.js +4 -0
- package/integrations/github/handlers/list_branches.js +6 -1
- package/integrations/github/handlers/list_commits.js +5 -6
- package/integrations/github/handlers/list_issue_comments.js +8 -0
- package/integrations/github/handlers/list_issues.js +5 -6
- package/integrations/github/handlers/list_labels.js +8 -0
- package/integrations/github/handlers/list_pull_request_comments.js +8 -0
- package/integrations/github/handlers/list_pull_request_files.js +8 -0
- package/integrations/github/handlers/list_pull_requests.js +7 -2
- package/integrations/github/handlers/list_releases.js +8 -0
- package/integrations/github/handlers/list_tags.js +8 -0
- package/integrations/github/handlers/list_workflow_runs.js +11 -0
- package/integrations/github/handlers/request_pull_request_reviewers.js +10 -0
- package/integrations/github/handlers/search_code.js +8 -0
- package/integrations/github/handlers/search_issues.js +8 -0
- package/integrations/github/handlers/search_pull_requests.js +8 -0
- package/integrations/github/handlers/search_repos.js +10 -0
- package/integrations/github/handlers/update_pull_request.js +13 -0
- package/integrations/github/manifest.json +86 -21
- package/integrations/github/prompt.md +36 -0
- package/integrations/github/schemas/create_file.json +13 -0
- package/integrations/github/schemas/create_pull_request_review.json +17 -0
- package/integrations/github/schemas/create_release.json +16 -0
- package/integrations/github/schemas/delete_branch.json +10 -0
- package/integrations/github/schemas/delete_file.json +13 -0
- package/integrations/github/schemas/edit_file.json +26 -0
- package/integrations/github/schemas/edit_files.json +39 -0
- package/integrations/github/schemas/fork_repo.json +11 -0
- package/integrations/github/schemas/get_commit.json +12 -0
- package/integrations/github/schemas/get_file_contents.json +11 -0
- package/integrations/github/schemas/get_job_logs.json +10 -0
- package/integrations/github/schemas/get_pull_request.json +10 -0
- package/integrations/github/schemas/get_pull_request_diff.json +10 -0
- package/integrations/github/schemas/get_repo_tree.json +12 -0
- package/integrations/github/schemas/get_workflow_run.json +10 -0
- package/integrations/github/schemas/list_branches.json +12 -0
- package/integrations/github/schemas/list_commits.json +5 -3
- package/integrations/github/schemas/list_issue_comments.json +12 -0
- package/integrations/github/schemas/list_issues.json +4 -2
- package/integrations/github/schemas/list_labels.json +11 -0
- package/integrations/github/schemas/list_pull_request_comments.json +12 -0
- package/integrations/github/schemas/list_pull_request_files.json +12 -0
- package/integrations/github/schemas/list_pull_requests.json +7 -1
- package/integrations/github/schemas/list_releases.json +11 -0
- package/integrations/github/schemas/list_tags.json +11 -0
- package/integrations/github/schemas/list_workflow_runs.json +18 -0
- package/integrations/github/schemas/request_pull_request_reviewers.json +20 -0
- package/integrations/github/schemas/search_code.json +10 -0
- package/integrations/github/schemas/search_issues.json +10 -0
- package/integrations/github/schemas/search_pull_requests.json +10 -0
- package/integrations/github/schemas/search_repos.json +12 -0
- package/integrations/github/schemas/update_pull_request.json +15 -0
- package/integrations/google-calendar/.env.test.example +11 -0
- package/integrations/google-calendar/README.md +41 -0
- package/integrations/google-calendar/__tests__/write_and_admin_handlers.test.ts +7 -20
- package/integrations/google-calendar/handlers/get_event.js +5 -1
- package/integrations/google-calendar/handlers/list_events.js +2 -0
- package/integrations/google-calendar/manifest.json +27 -18
- package/integrations/google-calendar/prompt.md +68 -0
- package/integrations/google-calendar/schemas/id_calendar_event.json +4 -2
- package/integrations/google-calendar/schemas/list_events.json +10 -8
- package/integrations/google-docs/README.md +30 -0
- package/integrations/google-docs/__tests__/get_handlers.test.ts +4 -19
- package/integrations/google-docs/__tests__/write_handlers.test.ts +31 -48
- package/integrations/google-docs/handlers/read_document.js +189 -0
- package/integrations/google-docs/manifest.json +16 -31
- package/integrations/google-docs/prompt.md +49 -0
- package/integrations/google-docs/schemas/{get_document_text.json → read_document.json} +5 -2
- package/integrations/google-docs/todo.md +18 -0
- package/integrations/google-drive/README.md +26 -0
- package/integrations/google-drive/__tests__/handlers.test.ts +43 -0
- package/integrations/google-drive/__tests__/usage_parity.test.ts +9 -0
- package/integrations/google-drive/handlers/get_file.js +2 -4
- package/integrations/google-drive/handlers/get_file_content.js +41 -0
- package/integrations/google-drive/handlers/list_files.js +15 -0
- package/integrations/google-drive/handlers/search_files.js +20 -0
- package/integrations/google-drive/handlers/share_file.js +20 -0
- package/integrations/google-drive/manifest.json +37 -10
- package/integrations/google-drive/prompt.md +59 -0
- package/integrations/google-drive/schemas/get_file.json +2 -2
- package/integrations/google-drive/schemas/get_file_content.json +11 -0
- package/integrations/google-drive/schemas/list_files.json +12 -0
- package/integrations/google-drive/schemas/search_files.json +14 -0
- package/integrations/google-drive/schemas/share_file.json +23 -0
- package/integrations/google-gmail/.env.test.example +11 -0
- package/integrations/google-gmail/README.md +49 -0
- package/integrations/google-gmail/__tests__/get_handlers.test.ts +134 -0
- package/integrations/google-gmail/__tests__/usage_parity.test.ts +9 -0
- package/integrations/google-gmail/__tests__/write_and_admin_handlers.test.ts +211 -0
- package/integrations/google-gmail/credentials.json +57 -0
- package/integrations/google-gmail/credentials_hint_oauth_token.md +8 -0
- package/integrations/google-gmail/credentials_hint_service_account.md +10 -0
- package/integrations/google-gmail/handlers/create_draft_email.js +27 -0
- package/integrations/google-gmail/handlers/create_label.js +12 -0
- package/integrations/google-gmail/handlers/delete_draft.js +13 -0
- package/integrations/google-gmail/handlers/delete_label.js +13 -0
- package/integrations/google-gmail/handlers/delete_message.js +13 -0
- package/integrations/google-gmail/handlers/delete_thread.js +13 -0
- package/integrations/google-gmail/handlers/get_draft.js +6 -0
- package/integrations/google-gmail/handlers/get_label.js +6 -0
- package/integrations/google-gmail/handlers/get_message.js +14 -0
- package/integrations/google-gmail/handlers/get_profile.js +5 -0
- package/integrations/google-gmail/handlers/get_thread.js +14 -0
- package/integrations/google-gmail/handlers/list_drafts.js +15 -0
- package/integrations/google-gmail/handlers/list_labels.js +5 -0
- package/integrations/google-gmail/handlers/list_messages.js +19 -0
- package/integrations/google-gmail/handlers/list_threads.js +19 -0
- package/integrations/google-gmail/handlers/modify_message.js +11 -0
- package/integrations/google-gmail/handlers/modify_thread.js +11 -0
- package/integrations/google-gmail/handlers/read_email.js +56 -0
- package/integrations/google-gmail/handlers/send_draft.js +15 -0
- package/integrations/google-gmail/handlers/send_email.js +22 -0
- package/integrations/google-gmail/handlers/trash_message.js +6 -0
- package/integrations/google-gmail/handlers/trash_thread.js +6 -0
- package/integrations/google-gmail/handlers/untrash_message.js +6 -0
- package/integrations/google-gmail/handlers/untrash_thread.js +6 -0
- package/integrations/google-gmail/handlers/update_label.js +15 -0
- package/integrations/google-gmail/manifest.json +44 -0
- package/integrations/google-gmail/prompt.md +52 -0
- package/integrations/google-gmail/schemas/create_draft_email.json +16 -0
- package/integrations/google-gmail/schemas/create_label.json +26 -0
- package/integrations/google-gmail/schemas/get_message.json +20 -0
- package/integrations/{google-docs/schemas/get_document_structured.json → google-gmail/schemas/get_profile.json} +4 -2
- package/integrations/google-gmail/schemas/get_thread.json +20 -0
- package/integrations/google-gmail/schemas/id_draft.json +16 -0
- package/integrations/google-gmail/schemas/id_label.json +16 -0
- package/integrations/google-gmail/schemas/id_message.json +16 -0
- package/integrations/google-gmail/schemas/id_thread.json +16 -0
- package/integrations/google-gmail/schemas/list_drafts.json +30 -0
- package/integrations/{google-sheet/schemas/get_developer_metadata.json → google-gmail/schemas/list_labels.json} +4 -3
- package/integrations/google-gmail/schemas/list_messages.json +35 -0
- package/integrations/google-gmail/schemas/list_threads.json +35 -0
- package/integrations/google-gmail/schemas/modify_message.json +24 -0
- package/integrations/google-gmail/schemas/modify_thread.json +24 -0
- package/integrations/google-gmail/schemas/read_email.json +10 -0
- package/integrations/google-gmail/schemas/send_draft.json +29 -0
- package/integrations/google-gmail/schemas/send_email.json +17 -0
- package/integrations/google-gmail/schemas/update_label.json +33 -0
- package/integrations/google-sheet/README.md +27 -0
- package/integrations/google-sheet/__tests__/get_handlers.test.ts +6 -52
- package/integrations/google-sheet/__tests__/write_handlers.test.ts +0 -20
- package/integrations/google-sheet/handlers/get_spreadsheet.js +2 -0
- package/integrations/google-sheet/handlers/read_sheet.js +75 -0
- package/integrations/google-sheet/manifest.json +13 -62
- package/integrations/google-sheet/prompt.md +49 -0
- package/integrations/google-sheet/schemas/get_spreadsheet.json +5 -4
- package/integrations/google-sheet/schemas/read_sheet.json +21 -0
- package/integrations/google-slides/README.md +28 -0
- package/integrations/google-slides/__tests__/get_handlers.test.ts +12 -9
- package/integrations/google-slides/handlers/read_presentation.js +51 -0
- package/integrations/google-slides/manifest.json +13 -13
- package/integrations/google-slides/prompt.md +56 -0
- package/integrations/hubspot/.env.test.example +20 -0
- package/integrations/hubspot/README.md +48 -0
- package/integrations/hubspot/__tests__/get_handlers.test.ts +151 -0
- package/integrations/hubspot/__tests__/usage_parity.test.ts +10 -0
- package/integrations/hubspot/__tests__/write_handlers.test.ts +244 -0
- package/integrations/hubspot/credentials.json +48 -0
- package/integrations/hubspot/credentials_hint.md +20 -0
- package/integrations/hubspot/credentials_hint_oauth_token.md +16 -0
- package/integrations/hubspot/handlers/archive_company.js +13 -0
- package/integrations/hubspot/handlers/archive_contact.js +13 -0
- package/integrations/hubspot/handlers/archive_deal.js +13 -0
- package/integrations/hubspot/handlers/archive_ticket.js +13 -0
- package/integrations/hubspot/handlers/create_association.js +18 -0
- package/integrations/hubspot/handlers/create_company.js +13 -0
- package/integrations/hubspot/handlers/create_contact.js +14 -0
- package/integrations/hubspot/handlers/create_deal.js +16 -0
- package/integrations/hubspot/handlers/create_note.js +44 -0
- package/integrations/hubspot/handlers/create_task.js +48 -0
- package/integrations/hubspot/handlers/create_ticket.js +15 -0
- package/integrations/hubspot/handlers/get_associations.js +14 -0
- package/integrations/hubspot/handlers/get_company.js +18 -0
- package/integrations/hubspot/handlers/get_contact.js +18 -0
- package/integrations/hubspot/handlers/get_deal.js +18 -0
- package/integrations/hubspot/handlers/get_ticket.js +20 -0
- package/integrations/hubspot/handlers/list_owners.js +12 -0
- package/integrations/hubspot/handlers/list_pipelines.js +5 -0
- package/integrations/hubspot/handlers/list_properties.js +11 -0
- package/integrations/hubspot/handlers/remove_association.js +22 -0
- package/integrations/hubspot/handlers/search_companies.js +43 -0
- package/integrations/hubspot/handlers/search_contacts.js +43 -0
- package/integrations/hubspot/handlers/search_deals.js +43 -0
- package/integrations/hubspot/handlers/search_notes.js +43 -0
- package/integrations/hubspot/handlers/search_tasks.js +43 -0
- package/integrations/hubspot/handlers/search_tickets.js +43 -0
- package/integrations/hubspot/handlers/update_company.js +13 -0
- package/integrations/hubspot/handlers/update_contact.js +14 -0
- package/integrations/hubspot/handlers/update_deal.js +16 -0
- package/integrations/hubspot/handlers/update_task.js +17 -0
- package/integrations/hubspot/handlers/update_ticket.js +15 -0
- package/integrations/hubspot/manifest.json +230 -0
- package/integrations/hubspot/prompt.md +69 -0
- package/integrations/hubspot/schemas/archive_company.json +13 -0
- package/integrations/hubspot/schemas/archive_contact.json +13 -0
- package/integrations/hubspot/schemas/archive_deal.json +9 -0
- package/integrations/hubspot/schemas/archive_ticket.json +9 -0
- package/integrations/hubspot/schemas/create_association.json +24 -0
- package/integrations/hubspot/schemas/create_company.json +14 -0
- package/integrations/hubspot/schemas/create_contact.json +15 -0
- package/integrations/hubspot/schemas/create_deal.json +20 -0
- package/integrations/hubspot/schemas/create_note.json +37 -0
- package/integrations/hubspot/schemas/create_task.json +51 -0
- package/integrations/hubspot/schemas/create_ticket.json +16 -0
- package/integrations/hubspot/schemas/empty.json +6 -0
- package/integrations/hubspot/schemas/get_associations.json +30 -0
- package/integrations/hubspot/schemas/get_company.json +27 -0
- package/integrations/hubspot/schemas/get_contact.json +27 -0
- package/integrations/hubspot/schemas/get_deal.json +20 -0
- package/integrations/hubspot/schemas/get_ticket.json +20 -0
- package/integrations/hubspot/schemas/list_owners.json +25 -0
- package/integrations/hubspot/schemas/list_pipelines.json +13 -0
- package/integrations/hubspot/schemas/list_properties.json +17 -0
- package/integrations/hubspot/schemas/remove_association.json +24 -0
- package/integrations/hubspot/schemas/search_companies.json +56 -0
- package/integrations/hubspot/schemas/search_contacts.json +56 -0
- package/integrations/hubspot/schemas/search_deals.json +43 -0
- package/integrations/hubspot/schemas/search_notes.json +43 -0
- package/integrations/hubspot/schemas/search_tasks.json +43 -0
- package/integrations/hubspot/schemas/search_tickets.json +43 -0
- package/integrations/hubspot/schemas/update_company.json +20 -0
- package/integrations/hubspot/schemas/update_contact.json +21 -0
- package/integrations/hubspot/schemas/update_deal.json +19 -0
- package/integrations/hubspot/schemas/update_task.json +31 -0
- package/integrations/hubspot/schemas/update_ticket.json +18 -0
- package/integrations/jira/.env.test +46 -0
- package/integrations/jira/.env.test.example +41 -0
- package/integrations/jira/README.md +46 -0
- package/integrations/jira/__tests__/get_handlers.test.ts +193 -0
- package/integrations/jira/__tests__/usage_parity.test.ts +14 -0
- package/integrations/jira/__tests__/write_handlers.test.ts +157 -0
- package/integrations/jira/credentials.json +39 -0
- package/integrations/jira/credentials_hint.md +4 -0
- package/integrations/jira/credentials_hint_api_token.md +6 -0
- package/integrations/jira/credentials_hint_oauth_token.md +6 -0
- package/integrations/jira/handlers/add_comment.js +9 -0
- package/integrations/jira/handlers/assign_issue.js +11 -0
- package/integrations/jira/handlers/create_issue.js +37 -0
- package/integrations/jira/handlers/create_sprint.js +19 -0
- package/integrations/jira/handlers/delete_issue.js +10 -0
- package/integrations/jira/handlers/get_backlog_issues.js +13 -0
- package/integrations/jira/handlers/get_board.js +6 -0
- package/integrations/jira/handlers/get_issue.js +63 -0
- package/integrations/jira/handlers/get_issue_comments.js +31 -0
- package/integrations/jira/handlers/get_myself.js +14 -0
- package/integrations/jira/handlers/get_project.js +28 -0
- package/integrations/jira/handlers/get_sprint.js +5 -0
- package/integrations/jira/handlers/get_sprint_issues.js +13 -0
- package/integrations/jira/handlers/get_transitions.js +23 -0
- package/integrations/jira/handlers/list_boards.js +34 -0
- package/integrations/jira/handlers/list_projects.js +29 -0
- package/integrations/jira/handlers/list_sprints.js +29 -0
- package/integrations/jira/handlers/move_issues_to_sprint.js +11 -0
- package/integrations/jira/handlers/search_issues.js +43 -0
- package/integrations/jira/handlers/search_users.js +21 -0
- package/integrations/jira/handlers/transition_issue.js +44 -0
- package/integrations/jira/handlers/update_issue.js +40 -0
- package/integrations/jira/handlers/update_sprint.js +20 -0
- package/integrations/jira/manifest.json +204 -0
- package/integrations/jira/prompt.md +80 -0
- package/integrations/jira/schemas/add_comment.json +16 -0
- package/integrations/jira/schemas/assign_issue.json +16 -0
- package/integrations/jira/schemas/create_issue.json +49 -0
- package/integrations/jira/schemas/create_sprint.json +29 -0
- package/integrations/jira/schemas/delete_issue.json +12 -0
- package/integrations/jira/schemas/empty.json +6 -0
- package/integrations/jira/schemas/get_backlog_issues.json +33 -0
- package/integrations/jira/schemas/get_board.json +13 -0
- package/integrations/jira/schemas/get_issue.json +23 -0
- package/integrations/jira/schemas/get_issue_comments.json +23 -0
- package/integrations/jira/schemas/get_project.json +17 -0
- package/integrations/jira/schemas/get_sprint.json +13 -0
- package/integrations/jira/schemas/get_sprint_issues.json +33 -0
- package/integrations/jira/schemas/get_transitions.json +12 -0
- package/integrations/jira/schemas/list_boards.json +27 -0
- package/integrations/jira/schemas/list_projects.json +22 -0
- package/integrations/jira/schemas/list_sprints.json +29 -0
- package/integrations/jira/schemas/move_issues_to_sprint.json +19 -0
- package/integrations/jira/schemas/search_issues.json +28 -0
- package/integrations/jira/schemas/search_users.json +18 -0
- package/integrations/jira/schemas/transition_issue.json +38 -0
- package/integrations/jira/schemas/update_issue.json +47 -0
- package/integrations/jira/schemas/update_sprint.json +33 -0
- package/integrations/new_integration_prompt.md +177 -2
- package/integrations/notion/.env.test +10 -0
- package/integrations/notion/.env.test.example +13 -0
- package/integrations/notion/README.md +42 -0
- package/integrations/notion/manifest.json +64 -35
- package/integrations/trello/.env.test +6 -0
- package/integrations/trello/.env.test.example +9 -0
- package/integrations/trello/README.md +50 -0
- package/package.json +7 -3
- package/integrations/google-calendar/handlers/update_event.js +0 -5
- package/integrations/google-calendar/schemas/update_event.json +0 -10
- package/integrations/google-docs/handlers/get_document.js +0 -12
- package/integrations/google-docs/handlers/get_document_structured.js +0 -6
- package/integrations/google-docs/handlers/get_document_text.js +0 -17
- package/integrations/google-docs/schemas/get_document.json +0 -11
- package/integrations/google-sheet/handlers/batch_clear_values_by_data_filter.js +0 -6
- package/integrations/google-sheet/handlers/batch_get_values.js +0 -16
- package/integrations/google-sheet/handlers/batch_update_values_by_data_filter.js +0 -16
- package/integrations/google-sheet/handlers/get_developer_metadata.js +0 -6
- package/integrations/google-sheet/handlers/get_spreadsheet_by_data_filter.js +0 -10
- package/integrations/google-sheet/handlers/get_values.js +0 -14
- package/integrations/google-sheet/handlers/get_values_by_data_filter.js +0 -14
- package/integrations/google-sheet/handlers/search_developer_metadata.js +0 -7
- package/integrations/google-sheet/schemas/batch_clear_values_by_data_filter.json +0 -10
- package/integrations/google-sheet/schemas/batch_get_values.json +0 -13
- package/integrations/google-sheet/schemas/batch_update_values_by_data_filter.json +0 -25
- package/integrations/google-sheet/schemas/get_spreadsheet_by_data_filter.json +0 -11
- package/integrations/google-sheet/schemas/get_values.json +0 -13
- package/integrations/google-sheet/schemas/get_values_by_data_filter.json +0 -17
- package/integrations/google-sheet/schemas/search_developer_metadata.json +0 -14
- package/integrations/google-slides/handlers/get_presentation.js +0 -6
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.expandIssueTypes !== false)
|
|
4
|
+
params.set('expand', 'issueTypes')
|
|
5
|
+
|
|
6
|
+
const path = `/rest/api/3/project/${encodeURIComponent(input.projectIdOrKey)}${params.toString() ? `?${params.toString()}` : ''}`
|
|
7
|
+
const res = await integration.fetch(path)
|
|
8
|
+
const data = await res.json()
|
|
9
|
+
|
|
10
|
+
const issueTypes = Array.isArray(data.issueTypes) ? data.issueTypes : []
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
id: data.id ?? null,
|
|
14
|
+
key: data.key ?? null,
|
|
15
|
+
name: data.name ?? null,
|
|
16
|
+
projectTypeKey: data.projectTypeKey ?? null,
|
|
17
|
+
simplified: data.simplified ?? null,
|
|
18
|
+
style: data.style ?? null,
|
|
19
|
+
isPrivate: data.isPrivate ?? null,
|
|
20
|
+
issueTypes: issueTypes.map(t => ({
|
|
21
|
+
id: t.id ?? null,
|
|
22
|
+
name: t.name ?? null,
|
|
23
|
+
description: t.description ?? null,
|
|
24
|
+
subtask: t.subtask ?? null,
|
|
25
|
+
})),
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.jql)
|
|
4
|
+
params.set('jql', input.jql)
|
|
5
|
+
if (Array.isArray(input.fields) && input.fields.length)
|
|
6
|
+
params.set('fields', input.fields.join(','))
|
|
7
|
+
params.set('startAt', String(input.startAt ?? 0))
|
|
8
|
+
params.set('maxResults', String(input.maxResults ?? 50))
|
|
9
|
+
|
|
10
|
+
const res = await integration.fetch(`/rest/agile/1.0/sprint/${encodeURIComponent(String(input.sprintId))}/issue?${params.toString()}`)
|
|
11
|
+
return await res.json()
|
|
12
|
+
}
|
|
13
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const path = `/rest/api/3/issue/${encodeURIComponent(input.issueIdOrKey)}/transitions`
|
|
3
|
+
const res = await integration.fetch(path)
|
|
4
|
+
const data = await res.json()
|
|
5
|
+
const transitions = Array.isArray(data.transitions) ? data.transitions : []
|
|
6
|
+
|
|
7
|
+
return {
|
|
8
|
+
transitions: transitions.map(t => ({
|
|
9
|
+
id: t.id ?? null,
|
|
10
|
+
name: t.name ?? null,
|
|
11
|
+
to: t.to
|
|
12
|
+
? {
|
|
13
|
+
id: t.to.id ?? null,
|
|
14
|
+
name: t.to.name ?? null,
|
|
15
|
+
statusCategory: t.to.statusCategory
|
|
16
|
+
? { key: t.to.statusCategory.key ?? null, name: t.to.statusCategory.name ?? null }
|
|
17
|
+
: null,
|
|
18
|
+
}
|
|
19
|
+
: null,
|
|
20
|
+
})),
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input?.projectKeyOrId)
|
|
4
|
+
params.set('projectKeyOrId', input.projectKeyOrId)
|
|
5
|
+
if (input?.type)
|
|
6
|
+
params.set('type', input.type)
|
|
7
|
+
params.set('startAt', String(input?.startAt ?? 0))
|
|
8
|
+
params.set('maxResults', String(input?.maxResults ?? 50))
|
|
9
|
+
|
|
10
|
+
const res = await integration.fetch(`/rest/agile/1.0/board?${params.toString()}`)
|
|
11
|
+
const data = await res.json()
|
|
12
|
+
const values = Array.isArray(data.values) ? data.values : []
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
startAt: data.startAt ?? (input?.startAt ?? 0),
|
|
16
|
+
maxResults: data.maxResults ?? (input?.maxResults ?? 50),
|
|
17
|
+
total: data.total ?? values.length,
|
|
18
|
+
isLast: Boolean(data.isLast),
|
|
19
|
+
boards: values.map(b => ({
|
|
20
|
+
id: b.id ?? null,
|
|
21
|
+
name: b.name ?? null,
|
|
22
|
+
type: b.type ?? null,
|
|
23
|
+
location: b.location
|
|
24
|
+
? {
|
|
25
|
+
projectId: b.location.projectId ?? null,
|
|
26
|
+
projectKey: b.location.projectKey ?? null,
|
|
27
|
+
projectName: b.location.projectName ?? null,
|
|
28
|
+
}
|
|
29
|
+
: null,
|
|
30
|
+
self: b.self ?? null,
|
|
31
|
+
})),
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input?.query)
|
|
4
|
+
params.set('query', input.query)
|
|
5
|
+
params.set('startAt', String(input?.startAt ?? 0))
|
|
6
|
+
params.set('maxResults', String(input?.maxResults ?? 50))
|
|
7
|
+
|
|
8
|
+
const path = `/rest/api/3/project/search?${params.toString()}`
|
|
9
|
+
const res = await integration.fetch(path)
|
|
10
|
+
const data = await res.json()
|
|
11
|
+
const values = Array.isArray(data.values) ? data.values : []
|
|
12
|
+
|
|
13
|
+
return {
|
|
14
|
+
startAt: data.startAt ?? (input?.startAt ?? 0),
|
|
15
|
+
maxResults: data.maxResults ?? (input?.maxResults ?? 50),
|
|
16
|
+
total: data.total ?? values.length,
|
|
17
|
+
isLast: Boolean(data.isLast),
|
|
18
|
+
projects: values.map(p => ({
|
|
19
|
+
id: p.id ?? null,
|
|
20
|
+
key: p.key ?? null,
|
|
21
|
+
name: p.name ?? null,
|
|
22
|
+
projectTypeKey: p.projectTypeKey ?? null,
|
|
23
|
+
simplified: p.simplified ?? null,
|
|
24
|
+
style: p.style ?? null,
|
|
25
|
+
isPrivate: p.isPrivate ?? null,
|
|
26
|
+
})),
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (Array.isArray(input.state) && input.state.length)
|
|
4
|
+
params.set('state', input.state.join(','))
|
|
5
|
+
params.set('startAt', String(input.startAt ?? 0))
|
|
6
|
+
params.set('maxResults', String(input.maxResults ?? 50))
|
|
7
|
+
|
|
8
|
+
const res = await integration.fetch(`/rest/agile/1.0/board/${encodeURIComponent(String(input.boardId))}/sprint?${params.toString()}`)
|
|
9
|
+
const data = await res.json()
|
|
10
|
+
const values = Array.isArray(data.values) ? data.values : []
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
startAt: data.startAt ?? (input.startAt ?? 0),
|
|
14
|
+
maxResults: data.maxResults ?? (input.maxResults ?? 50),
|
|
15
|
+
total: data.total ?? values.length,
|
|
16
|
+
isLast: Boolean(data.isLast),
|
|
17
|
+
sprints: values.map(s => ({
|
|
18
|
+
id: s.id ?? null,
|
|
19
|
+
name: s.name ?? null,
|
|
20
|
+
state: s.state ?? null,
|
|
21
|
+
goal: s.goal ?? null,
|
|
22
|
+
startDate: s.startDate ?? null,
|
|
23
|
+
endDate: s.endDate ?? null,
|
|
24
|
+
completeDate: s.completeDate ?? null,
|
|
25
|
+
self: s.self ?? null,
|
|
26
|
+
})),
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const res = await integration.fetch(`/rest/agile/1.0/sprint/${encodeURIComponent(String(input.sprintId))}/issue`, {
|
|
3
|
+
method: 'POST',
|
|
4
|
+
body: { issues: input.issueKeys },
|
|
5
|
+
})
|
|
6
|
+
|
|
7
|
+
if (res.status === 204)
|
|
8
|
+
return { success: true }
|
|
9
|
+
return await res.json()
|
|
10
|
+
}
|
|
11
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const body = {
|
|
3
|
+
jql: input.jql,
|
|
4
|
+
maxResults: input.maxResults ?? 50,
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
if (Array.isArray(input.fields) && input.fields.length)
|
|
8
|
+
body.fields = input.fields
|
|
9
|
+
if (input.nextPageToken)
|
|
10
|
+
body.nextPageToken = input.nextPageToken
|
|
11
|
+
|
|
12
|
+
const res = await integration.fetch('/rest/api/3/search/jql', {
|
|
13
|
+
method: 'POST',
|
|
14
|
+
body,
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
const data = await res.json()
|
|
18
|
+
const issues = Array.isArray(data.issues) ? data.issues : []
|
|
19
|
+
|
|
20
|
+
return {
|
|
21
|
+
isLast: Boolean(data.isLast),
|
|
22
|
+
nextPageToken: data.nextPageToken ?? null,
|
|
23
|
+
issues: issues.map((i) => ({
|
|
24
|
+
id: i.id,
|
|
25
|
+
key: i.key,
|
|
26
|
+
summary: i.fields?.summary ?? null,
|
|
27
|
+
status: i.fields?.status?.name ?? null,
|
|
28
|
+
assignee: i.fields?.assignee
|
|
29
|
+
? {
|
|
30
|
+
accountId: i.fields.assignee.accountId ?? null,
|
|
31
|
+
displayName: i.fields.assignee.displayName ?? null,
|
|
32
|
+
}
|
|
33
|
+
: null,
|
|
34
|
+
priority: i.fields?.priority?.name ?? null,
|
|
35
|
+
issueType: i.fields?.issuetype?.name ?? null,
|
|
36
|
+
project: i.fields?.project
|
|
37
|
+
? { key: i.fields.project.key ?? null, name: i.fields.project.name ?? null }
|
|
38
|
+
: null,
|
|
39
|
+
updated: i.fields?.updated ?? null,
|
|
40
|
+
})),
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
params.set('query', input.query)
|
|
4
|
+
params.set('maxResults', String(input.maxResults ?? 50))
|
|
5
|
+
|
|
6
|
+
const res = await integration.fetch(`/rest/api/3/user/search?${params.toString()}`)
|
|
7
|
+
const data = await res.json()
|
|
8
|
+
const users = Array.isArray(data) ? data : []
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
users: users.map(u => ({
|
|
12
|
+
accountId: u.accountId ?? null,
|
|
13
|
+
displayName: u.displayName ?? null,
|
|
14
|
+
active: u.active ?? null,
|
|
15
|
+
accountType: u.accountType ?? null,
|
|
16
|
+
emailAddress: u.emailAddress ?? null,
|
|
17
|
+
timeZone: u.timeZone ?? null,
|
|
18
|
+
})),
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const resolveTransitionId = async (issueIdOrKey, transitionId, transitionName) => {
|
|
3
|
+
if (transitionId)
|
|
4
|
+
return String(transitionId)
|
|
5
|
+
const name = String(transitionName || '').trim().toLowerCase()
|
|
6
|
+
if (!name)
|
|
7
|
+
return null
|
|
8
|
+
|
|
9
|
+
const res = await integration.fetch(`/rest/api/3/issue/${encodeURIComponent(issueIdOrKey)}/transitions`)
|
|
10
|
+
const data = await res.json()
|
|
11
|
+
const transitions = Array.isArray(data.transitions) ? data.transitions : []
|
|
12
|
+
const match = transitions.find(t => String(t?.name || '').trim().toLowerCase() === name)
|
|
13
|
+
return match?.id ? String(match.id) : null
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const id = await resolveTransitionId(input.issueIdOrKey, input.transitionId, input.transitionName)
|
|
17
|
+
if (!id)
|
|
18
|
+
throw new Error(`Could not resolve transition. Provide a valid transitionId or transitionName (call get_transitions to see available transitions).`)
|
|
19
|
+
|
|
20
|
+
const body = {
|
|
21
|
+
transition: { id },
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (input.fields && typeof input.fields === 'object')
|
|
25
|
+
body.fields = input.fields
|
|
26
|
+
if (input.update && typeof input.update === 'object')
|
|
27
|
+
body.update = input.update
|
|
28
|
+
|
|
29
|
+
if (input.commentText) {
|
|
30
|
+
body.update = body.update || {}
|
|
31
|
+
body.update.comment = body.update.comment || []
|
|
32
|
+
body.update.comment.push({ add: { body: utils.adf?.fromMarkdown(input.commentText) } })
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const res = await integration.fetch(`/rest/api/3/issue/${encodeURIComponent(input.issueIdOrKey)}/transitions`, {
|
|
36
|
+
method: 'POST',
|
|
37
|
+
body,
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
if (res.status === 204)
|
|
41
|
+
return { success: true }
|
|
42
|
+
return await res.json()
|
|
43
|
+
}
|
|
44
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const fields = { ...(input.fields || {}) }
|
|
3
|
+
const update = input.update ? { ...(input.update || {}) } : undefined
|
|
4
|
+
|
|
5
|
+
if (typeof input.summary === 'string')
|
|
6
|
+
fields.summary = input.summary
|
|
7
|
+
|
|
8
|
+
if (typeof input.descriptionText === 'string')
|
|
9
|
+
fields.description = utils.adf?.fromMarkdown(input.descriptionText)
|
|
10
|
+
|
|
11
|
+
if (Array.isArray(input.labels))
|
|
12
|
+
fields.labels = input.labels
|
|
13
|
+
|
|
14
|
+
if (input.priorityId)
|
|
15
|
+
fields.priority = { id: input.priorityId }
|
|
16
|
+
else if (input.priorityName)
|
|
17
|
+
fields.priority = { name: input.priorityName }
|
|
18
|
+
|
|
19
|
+
if (input.assigneeAccountId !== undefined) {
|
|
20
|
+
fields.assignee = input.assigneeAccountId === null
|
|
21
|
+
? null
|
|
22
|
+
: { accountId: input.assigneeAccountId }
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const body = {}
|
|
26
|
+
if (Object.keys(fields).length)
|
|
27
|
+
body.fields = fields
|
|
28
|
+
if (update && Object.keys(update).length)
|
|
29
|
+
body.update = update
|
|
30
|
+
|
|
31
|
+
const res = await integration.fetch(`/rest/api/3/issue/${encodeURIComponent(input.issueIdOrKey)}`, {
|
|
32
|
+
method: 'PUT',
|
|
33
|
+
body,
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
if (res.status === 204)
|
|
37
|
+
return { success: true }
|
|
38
|
+
return await res.json()
|
|
39
|
+
}
|
|
40
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const body = {}
|
|
3
|
+
if (input.name !== undefined)
|
|
4
|
+
body.name = input.name
|
|
5
|
+
if (input.goal !== undefined)
|
|
6
|
+
body.goal = input.goal
|
|
7
|
+
if (input.state !== undefined)
|
|
8
|
+
body.state = input.state
|
|
9
|
+
if (input.startDate !== undefined)
|
|
10
|
+
body.startDate = input.startDate
|
|
11
|
+
if (input.endDate !== undefined)
|
|
12
|
+
body.endDate = input.endDate
|
|
13
|
+
|
|
14
|
+
const res = await integration.fetch(`/rest/agile/1.0/sprint/${encodeURIComponent(String(input.sprintId))}`, {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
body,
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
return await res.json()
|
|
20
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "jira",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"utils": ["adf"],
|
|
5
|
+
"toolsets": {
|
|
6
|
+
"issues": {
|
|
7
|
+
"label": "Issues",
|
|
8
|
+
"description": "Search, read, create, and manage Jira issues"
|
|
9
|
+
},
|
|
10
|
+
"boards": {
|
|
11
|
+
"label": "Boards & Sprints",
|
|
12
|
+
"description": "Work with Jira Software boards, sprints, and backlogs"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"tools": [
|
|
16
|
+
{
|
|
17
|
+
"name": "search_issues",
|
|
18
|
+
"description": "Search for issues using JQL. Returns a compact list of issues with key fields. Uses the modern /search/jql endpoint with nextPageToken pagination.",
|
|
19
|
+
"inputSchema": "schemas/search_issues.json",
|
|
20
|
+
"handler": "handlers/search_issues.js",
|
|
21
|
+
"scope": "read",
|
|
22
|
+
"toolset": "issues"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "get_issue",
|
|
26
|
+
"description": "Get details for a Jira issue by key (e.g. PROJ-123). Converts the issue description from Jira ADF into Markdown for easier reading.",
|
|
27
|
+
"inputSchema": "schemas/get_issue.json",
|
|
28
|
+
"handler": "handlers/get_issue.js",
|
|
29
|
+
"scope": "read",
|
|
30
|
+
"toolset": "issues"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "get_issue_comments",
|
|
34
|
+
"description": "List comments on an issue. Converts each comment body from Jira ADF into Markdown.",
|
|
35
|
+
"inputSchema": "schemas/get_issue_comments.json",
|
|
36
|
+
"handler": "handlers/get_issue_comments.js",
|
|
37
|
+
"scope": "read",
|
|
38
|
+
"toolset": "issues"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "list_projects",
|
|
42
|
+
"description": "List accessible Jira projects (key, name, type). Use this before creating issues to discover valid project keys.",
|
|
43
|
+
"inputSchema": "schemas/list_projects.json",
|
|
44
|
+
"handler": "handlers/list_projects.js",
|
|
45
|
+
"scope": "read",
|
|
46
|
+
"toolset": "issues"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "get_project",
|
|
50
|
+
"description": "Get a project by key or ID. Includes issue types when expandIssueTypes=true, which is useful to choose a valid issue type name before create_issue.",
|
|
51
|
+
"inputSchema": "schemas/get_project.json",
|
|
52
|
+
"handler": "handlers/get_project.js",
|
|
53
|
+
"scope": "read",
|
|
54
|
+
"toolset": "issues"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "get_transitions",
|
|
58
|
+
"description": "List available workflow transitions for an issue. Use this to discover valid transition names/IDs before calling transition_issue.",
|
|
59
|
+
"inputSchema": "schemas/get_transitions.json",
|
|
60
|
+
"handler": "handlers/get_transitions.js",
|
|
61
|
+
"scope": "read",
|
|
62
|
+
"toolset": "issues"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "get_myself",
|
|
66
|
+
"description": "Get the authenticated Jira user profile for the current credentials.",
|
|
67
|
+
"inputSchema": "schemas/empty.json",
|
|
68
|
+
"handler": "handlers/get_myself.js",
|
|
69
|
+
"scope": "read",
|
|
70
|
+
"toolset": "issues"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "search_users",
|
|
74
|
+
"description": "Search for users and return accountIds for assignment. Use this to find assigneeAccountId values for create_issue/update_issue/assign_issue.",
|
|
75
|
+
"inputSchema": "schemas/search_users.json",
|
|
76
|
+
"handler": "handlers/search_users.js",
|
|
77
|
+
"scope": "read",
|
|
78
|
+
"toolset": "issues"
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
{
|
|
82
|
+
"name": "create_issue",
|
|
83
|
+
"description": "Create a new Jira issue. Provide descriptionText as Markdown; the handler converts it to Jira ADF automatically. Use get_project to discover valid issue types.",
|
|
84
|
+
"inputSchema": "schemas/create_issue.json",
|
|
85
|
+
"handler": "handlers/create_issue.js",
|
|
86
|
+
"scope": "write",
|
|
87
|
+
"toolset": "issues"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "update_issue",
|
|
91
|
+
"description": "Update a Jira issue. You can use simple fields like summary/descriptionText/labels/priorityName/assigneeAccountId, or pass advanced Jira 'fields'/'update' objects for complex updates. descriptionText is treated as Markdown and converted to ADF automatically.",
|
|
92
|
+
"inputSchema": "schemas/update_issue.json",
|
|
93
|
+
"handler": "handlers/update_issue.js",
|
|
94
|
+
"scope": "write",
|
|
95
|
+
"toolset": "issues"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "transition_issue",
|
|
99
|
+
"description": "Transition an issue to a new workflow status. Provide transitionId or transitionName. If transitionName is provided, the handler resolves it by fetching transitions first. Optionally add a comment during the transition (commentText is treated as Markdown and converted to ADF).",
|
|
100
|
+
"inputSchema": "schemas/transition_issue.json",
|
|
101
|
+
"handler": "handlers/transition_issue.js",
|
|
102
|
+
"scope": "write",
|
|
103
|
+
"toolset": "issues"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "add_comment",
|
|
107
|
+
"description": "Add a comment to an issue. Provide bodyText as Markdown; the handler converts it to Jira ADF automatically.",
|
|
108
|
+
"inputSchema": "schemas/add_comment.json",
|
|
109
|
+
"handler": "handlers/add_comment.js",
|
|
110
|
+
"scope": "write",
|
|
111
|
+
"toolset": "issues"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "assign_issue",
|
|
115
|
+
"description": "Assign an issue to a user (by accountId) or unassign it (accountId=null). Use search_users to find accountIds.",
|
|
116
|
+
"inputSchema": "schemas/assign_issue.json",
|
|
117
|
+
"handler": "handlers/assign_issue.js",
|
|
118
|
+
"scope": "write",
|
|
119
|
+
"toolset": "issues"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "delete_issue",
|
|
123
|
+
"description": "Delete an issue. This is irreversible. Use with care.",
|
|
124
|
+
"inputSchema": "schemas/delete_issue.json",
|
|
125
|
+
"handler": "handlers/delete_issue.js",
|
|
126
|
+
"scope": "write",
|
|
127
|
+
"toolset": "issues"
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
{
|
|
131
|
+
"name": "list_boards",
|
|
132
|
+
"description": "List Jira Software boards. Filter by projectKeyOrId and board type (scrum/kanban).",
|
|
133
|
+
"inputSchema": "schemas/list_boards.json",
|
|
134
|
+
"handler": "handlers/list_boards.js",
|
|
135
|
+
"scope": "read",
|
|
136
|
+
"toolset": "boards"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "get_board",
|
|
140
|
+
"description": "Get details for a Jira Software board by boardId.",
|
|
141
|
+
"inputSchema": "schemas/get_board.json",
|
|
142
|
+
"handler": "handlers/get_board.js",
|
|
143
|
+
"scope": "read",
|
|
144
|
+
"toolset": "boards"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"name": "list_sprints",
|
|
148
|
+
"description": "List sprints for a board. Optionally filter by sprint state (future/active/closed).",
|
|
149
|
+
"inputSchema": "schemas/list_sprints.json",
|
|
150
|
+
"handler": "handlers/list_sprints.js",
|
|
151
|
+
"scope": "read",
|
|
152
|
+
"toolset": "boards"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "get_sprint",
|
|
156
|
+
"description": "Get sprint details by sprintId (name, state, start/end dates, goal).",
|
|
157
|
+
"inputSchema": "schemas/get_sprint.json",
|
|
158
|
+
"handler": "handlers/get_sprint.js",
|
|
159
|
+
"scope": "read",
|
|
160
|
+
"toolset": "boards"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "get_sprint_issues",
|
|
164
|
+
"description": "List issues in a sprint. Useful for sprint status reports and review preparation.",
|
|
165
|
+
"inputSchema": "schemas/get_sprint_issues.json",
|
|
166
|
+
"handler": "handlers/get_sprint_issues.js",
|
|
167
|
+
"scope": "read",
|
|
168
|
+
"toolset": "boards"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "get_backlog_issues",
|
|
172
|
+
"description": "List issues in the backlog for a board.",
|
|
173
|
+
"inputSchema": "schemas/get_backlog_issues.json",
|
|
174
|
+
"handler": "handlers/get_backlog_issues.js",
|
|
175
|
+
"scope": "read",
|
|
176
|
+
"toolset": "boards"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "move_issues_to_sprint",
|
|
180
|
+
"description": "Move one or more issues into a sprint (agile API).",
|
|
181
|
+
"inputSchema": "schemas/move_issues_to_sprint.json",
|
|
182
|
+
"handler": "handlers/move_issues_to_sprint.js",
|
|
183
|
+
"scope": "write",
|
|
184
|
+
"toolset": "boards"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "create_sprint",
|
|
188
|
+
"description": "Create a sprint in a board (agile API). Use this for sprint-planning workflows and for integration test setup.",
|
|
189
|
+
"inputSchema": "schemas/create_sprint.json",
|
|
190
|
+
"handler": "handlers/create_sprint.js",
|
|
191
|
+
"scope": "write",
|
|
192
|
+
"toolset": "boards"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "update_sprint",
|
|
196
|
+
"description": "Update a sprint (agile API). Use to rename, set/change goal, start a sprint (state: active, requires startDate + endDate), or close it (state: closed). Partial update — only provided fields are changed.",
|
|
197
|
+
"inputSchema": "schemas/update_sprint.json",
|
|
198
|
+
"handler": "handlers/update_sprint.js",
|
|
199
|
+
"scope": "write",
|
|
200
|
+
"toolset": "boards"
|
|
201
|
+
}
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Jira usage guide
|
|
2
|
+
|
|
3
|
+
## Core workflow patterns
|
|
4
|
+
|
|
5
|
+
### Discover projects and issue types (before creating issues)
|
|
6
|
+
|
|
7
|
+
1. Call `list_projects` to find the project key (e.g. `PROJ`).
|
|
8
|
+
2. Call `get_project` with `projectIdOrKey=PROJ` to see available `issueTypes`.
|
|
9
|
+
3. Use the returned issue type name with `create_issue.issueTypeName`.
|
|
10
|
+
|
|
11
|
+
### Search issues (JQL)
|
|
12
|
+
|
|
13
|
+
Use `search_issues` with JQL. Common examples:
|
|
14
|
+
|
|
15
|
+
- My open issues:
|
|
16
|
+
- `assignee = currentUser() AND statusCategory != Done ORDER BY updated DESC`
|
|
17
|
+
- Recently updated issues in a project:
|
|
18
|
+
- `project = PROJ ORDER BY updated DESC`
|
|
19
|
+
- Unassigned bugs:
|
|
20
|
+
- `project = PROJ AND issuetype = Bug AND assignee is EMPTY ORDER BY created DESC`
|
|
21
|
+
- Blocked issues (label-based):
|
|
22
|
+
- `project = PROJ AND labels = blocked ORDER BY priority DESC, updated DESC`
|
|
23
|
+
|
|
24
|
+
Pagination:
|
|
25
|
+
- `search_issues` uses `nextPageToken`. If `nextPageToken` is returned and `isLast=false`, pass it back to get the next page.
|
|
26
|
+
|
|
27
|
+
### Read issue content
|
|
28
|
+
|
|
29
|
+
- Use `get_issue` to read a compact issue summary.
|
|
30
|
+
- `get_issue` converts Jira's ADF description into `descriptionMarkdown` when possible (fallback: `descriptionText`).
|
|
31
|
+
- Use `get_issue_comments` to read the comment thread (comment bodies are converted to Markdown).
|
|
32
|
+
|
|
33
|
+
### Transition an issue (change status)
|
|
34
|
+
|
|
35
|
+
Jira workflows are project-specific, so you must discover valid transitions:
|
|
36
|
+
|
|
37
|
+
1. Call `get_transitions` to see available transition names/IDs for the issue.
|
|
38
|
+
2. Call `transition_issue` using either `transitionId` (preferred) or `transitionName`.
|
|
39
|
+
|
|
40
|
+
### Assigning issues
|
|
41
|
+
|
|
42
|
+
1. Call `search_users` to find the user's `accountId`.
|
|
43
|
+
2. Assign:
|
|
44
|
+
- `assign_issue { issueIdOrKey, accountId }`
|
|
45
|
+
3. Unassign:
|
|
46
|
+
- `assign_issue { issueIdOrKey, accountId: null }`
|
|
47
|
+
|
|
48
|
+
## Notes on Jira rich text (ADF)
|
|
49
|
+
|
|
50
|
+
Jira Cloud REST API v3 uses **Atlassian Document Format (ADF)** for fields like `description` and comment bodies.
|
|
51
|
+
|
|
52
|
+
- Read tools convert ADF to Markdown so you can read it directly.
|
|
53
|
+
- Write tools accept **Markdown** in their `*Text` fields and convert it to ADF (`descriptionText`, `bodyText`, `commentText`).
|
|
54
|
+
|
|
55
|
+
### Round-trip Markdown workflow (recommended)
|
|
56
|
+
|
|
57
|
+
You can safely do a Markdown round-trip:
|
|
58
|
+
|
|
59
|
+
1. `get_issue` -> edit `descriptionMarkdown`
|
|
60
|
+
2. `update_issue { descriptionText: <your edited Markdown> }`
|
|
61
|
+
|
|
62
|
+
Supported Markdown features when writing:
|
|
63
|
+
|
|
64
|
+
- Headings (`#`, `##`, ...)
|
|
65
|
+
- Bold/italic/strikethrough (`**bold**`, `*italic*`, `~~strike~~`)
|
|
66
|
+
- Inline code and fenced code blocks (```), including optional language fences
|
|
67
|
+
- Lists (ordered/unordered), nested lists
|
|
68
|
+
- Blockquotes (`>`)
|
|
69
|
+
- Horizontal rules (`---`)
|
|
70
|
+
- Tables
|
|
71
|
+
- Links (`[text](url)`)
|
|
72
|
+
|
|
73
|
+
## Boards & sprints
|
|
74
|
+
|
|
75
|
+
If you’re using Jira Software:
|
|
76
|
+
|
|
77
|
+
1. Call `list_boards` (optionally filter by `projectKeyOrId`).
|
|
78
|
+
2. Call `list_sprints` for a board to find active/future sprints.
|
|
79
|
+
3. Use `move_issues_to_sprint` to pull work into a sprint (sprint planning).
|
|
80
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"properties": {
|
|
4
|
+
"issueIdOrKey": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"description": "Issue key like \"PROJ-123\" or numeric issue ID."
|
|
7
|
+
},
|
|
8
|
+
"bodyText": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Plain-text comment body. Converted to ADF by the handler."
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"required": ["issueIdOrKey", "bodyText"],
|
|
14
|
+
"additionalProperties": false
|
|
15
|
+
}
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"properties": {
|
|
4
|
+
"issueIdOrKey": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"description": "Issue key like \"PROJ-123\" or numeric issue ID."
|
|
7
|
+
},
|
|
8
|
+
"accountId": {
|
|
9
|
+
"type": ["string", "null"],
|
|
10
|
+
"description": "Account ID to assign the issue to, or null to unassign."
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"required": ["issueIdOrKey", "accountId"],
|
|
14
|
+
"additionalProperties": false
|
|
15
|
+
}
|
|
16
|
+
|