@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,52 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const { owner, repo, branch, path, edits, message } = input
|
|
3
|
+
|
|
4
|
+
const params = new URLSearchParams()
|
|
5
|
+
params.set('ref', branch)
|
|
6
|
+
const fileRes = await integration.fetch(`/repos/${owner}/${repo}/contents/${path}?${params.toString()}`)
|
|
7
|
+
const fileData = await fileRes.json()
|
|
8
|
+
|
|
9
|
+
if (!fileData || !fileData.content || !fileData.sha) {
|
|
10
|
+
throw new Error(`File not found: ${path}. Use get_repo_tree to discover file paths.`)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const b64 = fileData.content.replace(/\n/g, '')
|
|
14
|
+
let content = decodeURIComponent(
|
|
15
|
+
atob(b64).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
for (let i = 0; i < edits.length; i++) {
|
|
19
|
+
const { old_text, new_text } = edits[i]
|
|
20
|
+
const idx = content.indexOf(old_text)
|
|
21
|
+
if (idx === -1) {
|
|
22
|
+
throw new Error(
|
|
23
|
+
`Edit ${i + 1}/${edits.length} failed: old_text not found in ${path}. `
|
|
24
|
+
+ 'Ensure the search text matches the file exactly, including whitespace and indentation. '
|
|
25
|
+
+ 'Use get_file_contents to verify the current content.'
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
content = content.substring(0, idx) + new_text + content.substring(idx + old_text.length)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const contentBase64 = btoa(unescape(encodeURIComponent(content)))
|
|
32
|
+
|
|
33
|
+
const res = await integration.fetch(`/repos/${owner}/${repo}/contents/${path}`, {
|
|
34
|
+
method: 'PUT',
|
|
35
|
+
body: {
|
|
36
|
+
message: message,
|
|
37
|
+
content: contentBase64,
|
|
38
|
+
sha: fileData.sha,
|
|
39
|
+
branch: branch,
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
const result = await res.json()
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
commit: {
|
|
46
|
+
sha: result.commit?.sha,
|
|
47
|
+
message: result.commit?.message,
|
|
48
|
+
url: result.commit?.html_url,
|
|
49
|
+
},
|
|
50
|
+
file: { path: path },
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const { owner, repo, branch, message, files } = input
|
|
3
|
+
|
|
4
|
+
// Helper: decode base64 GitHub content to UTF-8
|
|
5
|
+
function decodeContent(b64Raw) {
|
|
6
|
+
const b64 = b64Raw.replace(/\n/g, '')
|
|
7
|
+
return decodeURIComponent(
|
|
8
|
+
atob(b64).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')
|
|
9
|
+
)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// Helper: apply search/replace edits to text
|
|
13
|
+
function applyEdits(text, edits, filePath) {
|
|
14
|
+
let result = text
|
|
15
|
+
for (let i = 0; i < edits.length; i++) {
|
|
16
|
+
const { old_text, new_text } = edits[i]
|
|
17
|
+
const idx = result.indexOf(old_text)
|
|
18
|
+
if (idx === -1) {
|
|
19
|
+
throw new Error(
|
|
20
|
+
`Edit ${i + 1}/${edits.length} failed on ${filePath}: old_text not found. `
|
|
21
|
+
+ 'Ensure the search text matches exactly, including whitespace and indentation. '
|
|
22
|
+
+ 'Use get_file_contents to verify the current content.'
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
result = result.substring(0, idx) + new_text + result.substring(idx + old_text.length)
|
|
26
|
+
}
|
|
27
|
+
return result
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// 1. Get the current commit SHA for the branch
|
|
31
|
+
const refRes = await integration.fetch(`/repos/${owner}/${repo}/git/refs/heads/${branch}`)
|
|
32
|
+
const refData = await refRes.json()
|
|
33
|
+
const currentCommitSha = refData.object.sha
|
|
34
|
+
|
|
35
|
+
// 2. Get the current commit to find its tree
|
|
36
|
+
const commitRes = await integration.fetch(`/repos/${owner}/${repo}/git/commits/${currentCommitSha}`)
|
|
37
|
+
const commitData = await commitRes.json()
|
|
38
|
+
const currentTreeSha = commitData.tree.sha
|
|
39
|
+
|
|
40
|
+
// 3. Resolve final content for each file
|
|
41
|
+
const tree = []
|
|
42
|
+
for (const file of files) {
|
|
43
|
+
if (file.action === 'delete') {
|
|
44
|
+
tree.push({ path: file.path, mode: '100644', type: 'blob', sha: null })
|
|
45
|
+
continue
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
let finalContent
|
|
49
|
+
if (file.action === 'edit') {
|
|
50
|
+
if (!file.edits || file.edits.length === 0) {
|
|
51
|
+
throw new Error(`File ${file.path} has action 'edit' but no edits provided.`)
|
|
52
|
+
}
|
|
53
|
+
const params = new URLSearchParams()
|
|
54
|
+
params.set('ref', branch)
|
|
55
|
+
const fileRes = await integration.fetch(`/repos/${owner}/${repo}/contents/${file.path}?${params.toString()}`)
|
|
56
|
+
const fileData = await fileRes.json()
|
|
57
|
+
if (!fileData || !fileData.content) {
|
|
58
|
+
throw new Error(`File not found: ${file.path}. Use get_repo_tree to discover file paths.`)
|
|
59
|
+
}
|
|
60
|
+
const currentContent = decodeContent(fileData.content)
|
|
61
|
+
finalContent = applyEdits(currentContent, file.edits, file.path)
|
|
62
|
+
} else {
|
|
63
|
+
// action === 'create'
|
|
64
|
+
if (file.content === undefined || file.content === null) {
|
|
65
|
+
throw new Error(`File ${file.path} has action 'create' but no content provided.`)
|
|
66
|
+
}
|
|
67
|
+
finalContent = file.content
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Create blob
|
|
71
|
+
const blobRes = await integration.fetch(`/repos/${owner}/${repo}/git/blobs`, {
|
|
72
|
+
method: 'POST',
|
|
73
|
+
body: { content: finalContent, encoding: 'utf-8' },
|
|
74
|
+
})
|
|
75
|
+
const blobData = await blobRes.json()
|
|
76
|
+
tree.push({ path: file.path, mode: '100644', type: 'blob', sha: blobData.sha })
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// 4. Create a new tree
|
|
80
|
+
const treeRes = await integration.fetch(`/repos/${owner}/${repo}/git/trees`, {
|
|
81
|
+
method: 'POST',
|
|
82
|
+
body: { base_tree: currentTreeSha, tree: tree },
|
|
83
|
+
})
|
|
84
|
+
const treeData = await treeRes.json()
|
|
85
|
+
|
|
86
|
+
// 5. Create the commit
|
|
87
|
+
const newCommitRes = await integration.fetch(`/repos/${owner}/${repo}/git/commits`, {
|
|
88
|
+
method: 'POST',
|
|
89
|
+
body: { message: message, tree: treeData.sha, parents: [currentCommitSha] },
|
|
90
|
+
})
|
|
91
|
+
const newCommitData = await newCommitRes.json()
|
|
92
|
+
|
|
93
|
+
// 6. Update the branch reference
|
|
94
|
+
await integration.fetch(`/repos/${owner}/${repo}/git/refs/heads/${branch}`, {
|
|
95
|
+
method: 'PATCH',
|
|
96
|
+
body: { sha: newCommitData.sha },
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
return {
|
|
100
|
+
commit: {
|
|
101
|
+
sha: newCommitData.sha,
|
|
102
|
+
message: newCommitData.message,
|
|
103
|
+
url: newCommitData.html_url,
|
|
104
|
+
},
|
|
105
|
+
files: files.map(f => ({ path: f.path, action: f.action })),
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const body = {}
|
|
3
|
+
if (input.organization) body.organization = input.organization
|
|
4
|
+
if (input.name) body.name = input.name
|
|
5
|
+
const res = await integration.fetch(
|
|
6
|
+
`/repos/${input.owner}/${input.repo}/forks`,
|
|
7
|
+
{ method: 'POST', body }
|
|
8
|
+
)
|
|
9
|
+
return await res.json()
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.page) params.set('page', String(input.page))
|
|
4
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/commits/${input.sha}${query}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.ref) params.set('ref', input.ref)
|
|
4
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
5
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/contents/${input.path}${query}`)
|
|
6
|
+
const data = await res.json()
|
|
7
|
+
if (data && data.content && data.encoding === 'base64') {
|
|
8
|
+
try {
|
|
9
|
+
const b64 = data.content.replace(/\n/g, '')
|
|
10
|
+
// Decode base64 → binary string → percent-encode each byte → UTF-8 decode
|
|
11
|
+
data.content = decodeURIComponent(
|
|
12
|
+
atob(b64).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')
|
|
13
|
+
)
|
|
14
|
+
data.encoding = 'utf-8'
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
// Binary file — leave content as base64
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return data
|
|
21
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
// GitHub returns a redirect to the actual log blob URL; fetch follows it automatically
|
|
3
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/actions/jobs/${input.job_id}/logs`)
|
|
4
|
+
const logs = await res.text()
|
|
5
|
+
return { logs }
|
|
6
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const ref = input.ref || 'HEAD'
|
|
3
|
+
const params = new URLSearchParams()
|
|
4
|
+
if (input.recursive !== false) params.set('recursive', '1')
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/git/trees/${ref}${query}`)
|
|
7
|
+
const data = await res.json()
|
|
8
|
+
if (input.path_filter && Array.isArray(data.tree)) {
|
|
9
|
+
data.tree = data.tree.filter((item) => item.path && item.path.startsWith(input.path_filter))
|
|
10
|
+
}
|
|
11
|
+
return data
|
|
12
|
+
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
async (input) => {
|
|
2
|
-
const
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.protected !== undefined) params.set('protected', String(input.protected))
|
|
4
|
+
if (input.page) params.set('page', String(input.page))
|
|
5
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
6
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
7
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/branches${query}`)
|
|
3
8
|
return await res.json()
|
|
4
9
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
async (input) => {
|
|
2
2
|
const params = new URLSearchParams()
|
|
3
|
-
if (input.sha)
|
|
4
|
-
|
|
5
|
-
if (
|
|
6
|
-
|
|
7
|
-
if (input.
|
|
8
|
-
params.set('author', input.author)
|
|
3
|
+
if (input.sha) params.set('sha', input.sha)
|
|
4
|
+
if (typeof input.path === 'string' && input.path.length > 0) params.set('path', input.path)
|
|
5
|
+
if (input.author) params.set('author', input.author)
|
|
6
|
+
if (input.page) params.set('page', String(input.page))
|
|
7
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
9
8
|
const query = params.toString() ? `?${params.toString()}` : ''
|
|
10
9
|
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/commits${query}`)
|
|
11
10
|
return await res.json()
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.page) params.set('page', String(input.page))
|
|
4
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/issues/${input.issue_number}/comments${query}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
async (input) => {
|
|
2
2
|
const params = new URLSearchParams()
|
|
3
|
-
if (input.state)
|
|
4
|
-
|
|
5
|
-
if (input.
|
|
6
|
-
|
|
7
|
-
if (input.
|
|
8
|
-
params.set('assignee', input.assignee)
|
|
3
|
+
if (input.state) params.set('state', input.state)
|
|
4
|
+
if (input.labels) params.set('labels', input.labels)
|
|
5
|
+
if (input.assignee) params.set('assignee', input.assignee)
|
|
6
|
+
if (input.page) params.set('page', String(input.page))
|
|
7
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
9
8
|
const query = params.toString() ? `?${params.toString()}` : ''
|
|
10
9
|
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/issues${query}`)
|
|
11
10
|
return await res.json()
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.page) params.set('page', String(input.page))
|
|
4
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/labels${query}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.page) params.set('page', String(input.page))
|
|
4
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/pulls/${input.pull_number}/comments${query}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.page) params.set('page', String(input.page))
|
|
4
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/pulls/${input.pull_number}/files${query}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
async (input) => {
|
|
2
2
|
const params = new URLSearchParams()
|
|
3
|
-
if (input.state)
|
|
4
|
-
|
|
3
|
+
if (input.state) params.set('state', input.state)
|
|
4
|
+
if (input.head) params.set('head', input.head)
|
|
5
|
+
if (input.base) params.set('base', input.base)
|
|
6
|
+
if (input.sort) params.set('sort', input.sort)
|
|
7
|
+
if (input.direction) params.set('direction', input.direction)
|
|
8
|
+
if (input.page) params.set('page', String(input.page))
|
|
9
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
10
|
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
11
|
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/pulls${query}`)
|
|
7
12
|
return await res.json()
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.page) params.set('page', String(input.page))
|
|
4
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/releases${query}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.page) params.set('page', String(input.page))
|
|
4
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
5
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
6
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/tags${query}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
if (input.branch) params.set('branch', input.branch)
|
|
4
|
+
if (input.status) params.set('status', input.status)
|
|
5
|
+
if (input.event) params.set('event', input.event)
|
|
6
|
+
if (input.page) params.set('page', String(input.page))
|
|
7
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
8
|
+
const query = params.toString() ? `?${params.toString()}` : ''
|
|
9
|
+
const res = await integration.fetch(`/repos/${input.owner}/${input.repo}/actions/runs${query}`)
|
|
10
|
+
return await res.json()
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const body = {}
|
|
3
|
+
if (input.reviewers) body.reviewers = input.reviewers
|
|
4
|
+
if (input.team_reviewers) body.team_reviewers = input.team_reviewers
|
|
5
|
+
const res = await integration.fetch(
|
|
6
|
+
`/repos/${input.owner}/${input.repo}/pulls/${input.pull_number}/requested_reviewers`,
|
|
7
|
+
{ method: 'POST', body }
|
|
8
|
+
)
|
|
9
|
+
return await res.json()
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
params.set('q', input.query)
|
|
4
|
+
if (input.page) params.set('page', String(input.page))
|
|
5
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
6
|
+
const res = await integration.fetch(`/search/code?${params.toString()}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
params.set('q', input.query)
|
|
4
|
+
if (input.page) params.set('page', String(input.page))
|
|
5
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
6
|
+
const res = await integration.fetch(`/search/issues?${params.toString()}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
params.set('q', input.query)
|
|
4
|
+
if (input.page) params.set('page', String(input.page))
|
|
5
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
6
|
+
const res = await integration.fetch(`/search/issues?${params.toString()}`)
|
|
7
|
+
return await res.json()
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const params = new URLSearchParams()
|
|
3
|
+
params.set('q', input.query)
|
|
4
|
+
if (input.sort) params.set('sort', input.sort)
|
|
5
|
+
if (input.order) params.set('order', input.order)
|
|
6
|
+
if (input.page) params.set('page', String(input.page))
|
|
7
|
+
if (input.per_page) params.set('per_page', String(input.per_page))
|
|
8
|
+
const res = await integration.fetch(`/search/repositories?${params.toString()}`)
|
|
9
|
+
return await res.json()
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
async (input) => {
|
|
2
|
+
const body = {}
|
|
3
|
+
if (input.title !== undefined) body.title = input.title
|
|
4
|
+
if (input.body !== undefined) body.body = input.body
|
|
5
|
+
if (input.state !== undefined) body.state = input.state
|
|
6
|
+
if (input.base !== undefined) body.base = input.base
|
|
7
|
+
if (input.draft !== undefined) body.draft = input.draft
|
|
8
|
+
const res = await integration.fetch(
|
|
9
|
+
`/repos/${input.owner}/${input.repo}/pulls/${input.pull_number}`,
|
|
10
|
+
{ method: 'PATCH', body }
|
|
11
|
+
)
|
|
12
|
+
return await res.json()
|
|
13
|
+
}
|
|
@@ -1,26 +1,91 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "github",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"toolsets": {
|
|
5
|
+
"code": {
|
|
6
|
+
"label": "Code & Files",
|
|
7
|
+
"description": "Read, search, and manage repository code and branches"
|
|
8
|
+
},
|
|
9
|
+
"issues": {
|
|
10
|
+
"label": "Issues",
|
|
11
|
+
"description": "Create, search, and manage GitHub issues"
|
|
12
|
+
},
|
|
13
|
+
"pull_requests": {
|
|
14
|
+
"label": "Pull Requests",
|
|
15
|
+
"description": "Create, review, and merge pull requests"
|
|
16
|
+
},
|
|
17
|
+
"ci": {
|
|
18
|
+
"label": "CI / Actions",
|
|
19
|
+
"description": "Monitor GitHub Actions workflows and debug failures"
|
|
20
|
+
},
|
|
21
|
+
"releases": {
|
|
22
|
+
"label": "Releases & Tags",
|
|
23
|
+
"description": "Manage releases and view tags"
|
|
24
|
+
},
|
|
25
|
+
"repo_admin": {
|
|
26
|
+
"label": "Repository Management",
|
|
27
|
+
"description": "Create, delete, fork, and discover repositories"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
4
30
|
"tools": [
|
|
5
|
-
{ "name": "
|
|
6
|
-
{ "name": "
|
|
7
|
-
{ "name": "
|
|
8
|
-
{ "name": "
|
|
9
|
-
|
|
10
|
-
{ "name": "
|
|
11
|
-
{ "name": "
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
{ "name": "
|
|
15
|
-
{ "name": "
|
|
16
|
-
{ "name": "
|
|
17
|
-
{ "name": "
|
|
18
|
-
|
|
19
|
-
{ "name": "
|
|
20
|
-
{ "name": "
|
|
21
|
-
{ "name": "
|
|
22
|
-
{ "name": "
|
|
23
|
-
{ "name": "
|
|
24
|
-
|
|
31
|
+
{ "name": "get_me", "description": "Get the authenticated user's profile. Use this to find out who you are authenticated as before performing operations.", "inputSchema": "schemas/empty.json", "handler": "handlers/get_me.js", "scope": "read", "toolset": "repo_admin" },
|
|
32
|
+
{ "name": "list_repos", "description": "List repositories for the authenticated user.", "inputSchema": "schemas/empty.json", "handler": "handlers/list_repos_user.js", "scope": "read", "toolset": "repo_admin" },
|
|
33
|
+
{ "name": "get_repo", "description": "Get details for a repository (description, default branch, visibility, topics, stats).", "inputSchema": "schemas/get_repo.json", "handler": "handlers/get_repo.js", "scope": "read", "toolset": "code" },
|
|
34
|
+
{ "name": "search_repos", "description": "Search GitHub repositories. Supports stars, forks, language, topic, and user filters (e.g. 'topic:react stars:>1000 language:javascript'). Use this to discover repos.", "inputSchema": "schemas/search_repos.json", "handler": "handlers/search_repos.js", "scope": "read", "toolset": "repo_admin" },
|
|
35
|
+
|
|
36
|
+
{ "name": "get_file_contents", "description": "Get the content of a file from a repository. Returns decoded UTF-8 text. Use ref to read from a specific branch, tag, or commit. Call get_repo_tree first to discover file paths.", "inputSchema": "schemas/get_file_contents.json", "handler": "handlers/get_file_contents.js", "scope": "read", "toolset": "code" },
|
|
37
|
+
{ "name": "get_repo_tree", "description": "Get the full file/directory tree of a repository. Returns all paths and types. Use path_filter to scope to a subdirectory (e.g. 'src/'). Use this before get_file_contents to discover what files exist.", "inputSchema": "schemas/get_repo_tree.json", "handler": "handlers/get_repo_tree.js", "scope": "read", "toolset": "code" },
|
|
38
|
+
{ "name": "search_code", "description": "Search for code across GitHub repositories using GitHub's code search syntax. Examples: 'useState language:typescript repo:facebook/react', 'console.error path:src/'. Returns file paths and matched fragments.", "inputSchema": "schemas/search_code.json", "handler": "handlers/search_code.js", "scope": "read", "toolset": "code" },
|
|
39
|
+
|
|
40
|
+
{ "name": "list_branches", "description": "List branches in a repository. Supports pagination and filtering by protection status.", "inputSchema": "schemas/list_branches.json", "handler": "handlers/list_branches.js", "scope": "read", "toolset": "code" },
|
|
41
|
+
{ "name": "list_commits", "description": "List commits for a repository. Filter by branch/tag (sha), file path, or author. Paginate with page/per_page.", "inputSchema": "schemas/list_commits.json", "handler": "handlers/list_commits.js", "scope": "read", "toolset": "code" },
|
|
42
|
+
{ "name": "get_commit", "description": "Get the full details of a specific commit including its message, author, file changes, and diff stats.", "inputSchema": "schemas/get_commit.json", "handler": "handlers/get_commit.js", "scope": "read", "toolset": "code" },
|
|
43
|
+
{ "name": "list_tags", "description": "List tags for a repository. Use this to see available versions before creating a release.", "inputSchema": "schemas/list_tags.json", "handler": "handlers/list_tags.js", "scope": "read", "toolset": "code" },
|
|
44
|
+
|
|
45
|
+
{ "name": "list_issues", "description": "List issues for a repository. Filter by state (open/closed/all), labels (comma-separated), and assignee. Paginate with page/per_page. Note: this also returns pull requests; use search_issues to exclude them.", "inputSchema": "schemas/list_issues.json", "handler": "handlers/list_issues.js", "scope": "read", "toolset": "issues" },
|
|
46
|
+
{ "name": "get_issue", "description": "Get full details of a specific issue including its body, labels, assignees, and milestone.", "inputSchema": "schemas/get_issue.json", "handler": "handlers/get_issue.js", "scope": "read", "toolset": "issues" },
|
|
47
|
+
{ "name": "list_issue_comments", "description": "List all comments on an issue. Use this to read the full discussion thread before replying.", "inputSchema": "schemas/list_issue_comments.json", "handler": "handlers/list_issue_comments.js", "scope": "read", "toolset": "issues" },
|
|
48
|
+
{ "name": "search_issues", "description": "Search issues using GitHub search syntax (e.g. 'is:open is:issue label:bug repo:owner/repo', 'is:issue no:assignee milestone:v2.0'). More powerful than list_issues for finding specific issues.", "inputSchema": "schemas/search_issues.json", "handler": "handlers/search_issues.js", "scope": "read", "toolset": "issues" },
|
|
49
|
+
{ "name": "list_labels", "description": "List all labels available in a repository. Call this before add_labels_to_issue to see which labels exist.", "inputSchema": "schemas/list_labels.json", "handler": "handlers/list_labels.js", "scope": "read", "toolset": "issues" },
|
|
50
|
+
|
|
51
|
+
{ "name": "list_pull_requests", "description": "List pull requests for a repository. Filter by state, head branch, base branch. Sort and paginate results.", "inputSchema": "schemas/list_pull_requests.json", "handler": "handlers/list_pull_requests.js", "scope": "read", "toolset": "pull_requests" },
|
|
52
|
+
{ "name": "get_pull_request", "description": "Get full details of a specific pull request including title, body, state, merge status, head/base refs, reviewers, and labels.", "inputSchema": "schemas/get_pull_request.json", "handler": "handlers/get_pull_request.js", "scope": "read", "toolset": "pull_requests" },
|
|
53
|
+
{ "name": "get_pull_request_diff", "description": "Get the raw unified diff for a pull request. Returns the complete diff of all changes. For per-file details, use list_pull_request_files instead.", "inputSchema": "schemas/get_pull_request_diff.json", "handler": "handlers/get_pull_request_diff.js", "scope": "read", "toolset": "pull_requests" },
|
|
54
|
+
{ "name": "list_pull_request_files", "description": "List the files changed in a pull request with their status (added/modified/deleted) and patch diff per file. Essential for code review.", "inputSchema": "schemas/list_pull_request_files.json", "handler": "handlers/list_pull_request_files.js", "scope": "read", "toolset": "pull_requests" },
|
|
55
|
+
{ "name": "list_pull_request_comments", "description": "List inline review comments on a pull request (comments attached to specific lines of code).", "inputSchema": "schemas/list_pull_request_comments.json", "handler": "handlers/list_pull_request_comments.js", "scope": "read", "toolset": "pull_requests" },
|
|
56
|
+
{ "name": "search_pull_requests", "description": "Search pull requests using GitHub search syntax. Use 'is:pr' to scope to PRs (e.g. 'is:pr is:open author:octocat', 'is:pr review:required label:bug'). Returns matching PRs across repos.", "inputSchema": "schemas/search_pull_requests.json", "handler": "handlers/search_pull_requests.js", "scope": "read", "toolset": "pull_requests" },
|
|
57
|
+
|
|
58
|
+
{ "name": "list_releases", "description": "List all releases for a repository, newest first.", "inputSchema": "schemas/list_releases.json", "handler": "handlers/list_releases.js", "scope": "read", "toolset": "releases" },
|
|
59
|
+
{ "name": "get_latest_release", "description": "Get the latest published release for a repository. Use this to quickly check the current version.", "inputSchema": "schemas/owner_repo.json", "handler": "handlers/get_latest_release.js", "scope": "read", "toolset": "releases" },
|
|
60
|
+
|
|
61
|
+
{ "name": "list_workflow_runs", "description": "List GitHub Actions workflow runs for a repository. Filter by branch, status (e.g. 'failure', 'success'), or triggering event. Use this to check CI status.", "inputSchema": "schemas/list_workflow_runs.json", "handler": "handlers/list_workflow_runs.js", "scope": "read", "toolset": "ci" },
|
|
62
|
+
{ "name": "get_workflow_run", "description": "Get details of a specific GitHub Actions workflow run including its status, conclusion, timing, and associated commit.", "inputSchema": "schemas/get_workflow_run.json", "handler": "handlers/get_workflow_run.js", "scope": "read", "toolset": "ci" },
|
|
63
|
+
{ "name": "get_job_logs", "description": "Get the log output for a specific GitHub Actions workflow job. Use this to diagnose CI failures. Get job_id from the GitHub Actions UI or the jobs list of a workflow run.", "inputSchema": "schemas/get_job_logs.json", "handler": "handlers/get_job_logs.js", "scope": "read", "toolset": "ci" },
|
|
64
|
+
|
|
65
|
+
{ "name": "create_repo", "description": "Create a new GitHub repository under the authenticated user's account.", "inputSchema": "schemas/create_repo.json", "handler": "handlers/create_repo.js", "scope": "write", "credentialVariants": ["classic_pat"], "toolset": "repo_admin" },
|
|
66
|
+
{ "name": "delete_repo", "description": "Permanently delete a repository. This is irreversible. Requires the delete_repo scope on classic PATs.", "inputSchema": "schemas/delete_repo.json", "handler": "handlers/delete_repo.js", "scope": "write", "credentialVariants": ["classic_pat"], "toolset": "repo_admin" },
|
|
67
|
+
{ "name": "fork_repo", "description": "Fork a repository into your account or an organization. The fork is created asynchronously; the response returns immediately with the new repo details.", "inputSchema": "schemas/fork_repo.json", "handler": "handlers/fork_repo.js", "scope": "write", "toolset": "repo_admin" },
|
|
68
|
+
|
|
69
|
+
{ "name": "create_branch", "description": "Create a new branch in a repository, branching from the repo's default branch by default.", "inputSchema": "schemas/create_branch.json", "handler": "handlers/create_branch.js", "scope": "write", "toolset": "code" },
|
|
70
|
+
{ "name": "delete_branch", "description": "Delete a branch. Typically used after a pull request is merged. Use list_branches to find the branch name first.", "inputSchema": "schemas/delete_branch.json", "handler": "handlers/delete_branch.js", "scope": "write", "toolset": "code" },
|
|
71
|
+
|
|
72
|
+
{ "name": "edit_file", "description": "Edit a file using search/replace. Fetches the file, applies edits, and commits the result. Each old_text must match the file content exactly, including whitespace and indentation. Use get_file_contents to verify content before editing. For multi-file atomic changes, use edit_files instead.", "inputSchema": "schemas/edit_file.json", "handler": "handlers/edit_file.js", "scope": "write", "toolset": "code" },
|
|
73
|
+
{ "name": "edit_files", "description": "Create, edit, and delete multiple files in a single atomic commit. Use action 'create' with content for new files, 'edit' with old_text/new_text search/replace pairs for existing files, 'delete' to remove files. All changes are committed together. For single-file edits, use edit_file instead.", "inputSchema": "schemas/edit_files.json", "handler": "handlers/edit_files.js", "scope": "write", "toolset": "code" },
|
|
74
|
+
{ "name": "create_file", "description": "Create a new file or overwrite an existing file's content in a single commit. Handles SHA resolution internally -- no need to fetch the file first. For partial edits to existing files, use edit_file instead.", "inputSchema": "schemas/create_file.json", "handler": "handlers/create_file.js", "scope": "write", "toolset": "code" },
|
|
75
|
+
{ "name": "delete_file", "description": "Delete a file from a repository. The file's SHA is fetched automatically. Creates a commit with the deletion.", "inputSchema": "schemas/delete_file.json", "handler": "handlers/delete_file.js", "scope": "write", "toolset": "code" },
|
|
76
|
+
|
|
77
|
+
{ "name": "create_pull_request", "description": "Open a new pull request from a head branch into a base branch.", "inputSchema": "schemas/create_pull_request.json", "handler": "handlers/create_pull_request.js", "scope": "write", "toolset": "pull_requests" },
|
|
78
|
+
{ "name": "update_pull_request", "description": "Edit a pull request's title, body, state (open/closed), base branch, or draft status.", "inputSchema": "schemas/update_pull_request.json", "handler": "handlers/update_pull_request.js", "scope": "write", "toolset": "pull_requests" },
|
|
79
|
+
{ "name": "merge_pull_request", "description": "Merge a pull request. Supports merge, squash, and rebase merge methods.", "inputSchema": "schemas/merge_pull_request.json", "handler": "handlers/merge_pull_request.js", "scope": "write", "toolset": "pull_requests" },
|
|
80
|
+
{ "name": "request_pull_request_reviewers", "description": "Request specific users or teams to review a pull request.", "inputSchema": "schemas/request_pull_request_reviewers.json", "handler": "handlers/request_pull_request_reviewers.js", "scope": "write", "toolset": "pull_requests" },
|
|
81
|
+
{ "name": "create_pull_request_review", "description": "Submit a pull request review. Use event=APPROVE to approve, REQUEST_CHANGES to request changes, or COMMENT to leave a comment-only review.", "inputSchema": "schemas/create_pull_request_review.json", "handler": "handlers/create_pull_request_review.js", "scope": "write", "toolset": "pull_requests" },
|
|
82
|
+
|
|
83
|
+
{ "name": "create_issue", "description": "Create a new issue in a repository. Optionally assign users and add labels.", "inputSchema": "schemas/create_issue.json", "handler": "handlers/create_issue.js", "scope": "write", "toolset": "issues" },
|
|
84
|
+
{ "name": "update_issue", "description": "Update fields on an existing issue (title, body, state, assignees, labels, milestone).", "inputSchema": "schemas/update_issue.json", "handler": "handlers/update_issue.js", "scope": "write", "toolset": "issues" },
|
|
85
|
+
{ "name": "close_issue", "description": "Close an issue.", "inputSchema": "schemas/close_issue.json", "handler": "handlers/close_issue.js", "scope": "write", "toolset": "issues" },
|
|
86
|
+
{ "name": "comment_on_issue", "description": "Add a comment to an issue or pull request (GitHub PRs share the issue comment thread). Use list_issue_comments to read existing comments first.", "inputSchema": "schemas/comment_on_issue.json", "handler": "handlers/comment_on_issue.js", "scope": "write", "toolset": "issues" },
|
|
87
|
+
{ "name": "add_labels_to_issue", "description": "Add labels to an issue or pull request. Use list_labels to discover available labels before calling this.", "inputSchema": "schemas/add_labels_to_issue.json", "handler": "handlers/add_labels_to_issue.js", "scope": "write", "toolset": "issues" },
|
|
88
|
+
|
|
89
|
+
{ "name": "create_release", "description": "Create a new release from a tag. Can auto-generate release notes from commits. Set draft=true to save without publishing, prerelease=true for alpha/beta/rc versions.", "inputSchema": "schemas/create_release.json", "handler": "handlers/create_release.js", "scope": "write", "toolset": "releases" }
|
|
25
90
|
]
|
|
26
91
|
}
|