mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-09 15:17:59 -05:00
feat(platform, blocks): Webhook-triggered blocks (#8358)
- feat(blocks): Add GitHub Pull Request Trigger block ## feat(platform): Add support for Webhook-triggered blocks - ⚠️ Add `PLATFORM_BASE_URL` setting - Add webhook config option and `BlockType.WEBHOOK` to `Block` - Add check to `Block.__init__` to enforce type and shape of webhook event filter - Add check to `Block.__init__` to enforce `payload` input on webhook blocks - Add check to `Block.__init__` to disable webhook blocks if `PLATFORM_BASE_URL` is not set - Add `Webhook` model + CRUD functions in `backend.data.integrations` to represent webhooks created by our system - Add `IntegrationWebhook` to DB schema + reference `AgentGraphNode.webhook_id` - Add `set_node_webhook(..)` in `backend.data.graph` - Add webhook-related endpoints: - `POST /integrations/{provider}/webhooks/{webhook_id}/ingress` endpoint, to receive webhook payloads, and for all associated nodes create graph executions - Add `Node.is_triggered_by_event_type(..)` helper method - `POST /integrations/{provider}/webhooks/{webhook_id}/ping` endpoint, to allow testing a webhook - Add `WebhookEvent` + pub/sub functions in `backend.data.integrations` - Add `backend.integrations.webhooks` module, including: - `graph_lifecycle_hooks`, e.g. `on_graph_activate(..)`, to handle corresponding webhook creation etc. - Add calls to these hooks in the graph create/update endpoints - `BaseWebhooksManager` + `GithubWebhooksManager` to handle creating + registering, removing + deregistering, and retrieving existing webhooks, and validating incoming payloads ## Other improvements - fix(blocks): Allow having an input and output pin with the same name - fix(blocks): Add tooltip with description in places where block inputs are rendered without `NodeHandle` - feat(blocks): Allow hiding inputs (e.g. `payload`) with `SchemaField(hidden=True)` - fix(frontend): Fix `MultiSelector` component styling - feat(frontend): Add `AlertDialog` UI component - feat(frontend): Add `NodeMultiSelectInput` component - feat(backend/data): Add `NodeModel` with `graph_id`, `graph_version`; `GraphModel` with `user_id` - Add `make_graph_model(..)` helper function in `backend.data.graph` - refactor(backend/data): Make `RedisEventQueue` generic and move to `backend.data.execution` - refactor(frontend): Deduplicate & clean up code for different block types in `generateInputHandles(..)` in `CustomNode` - dx(backend): Add `MissingConfigError`, `NeedConfirmation` exception --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
This commit is contained in:
committed by
GitHub
parent
464b5309d7
commit
eef9bbe991
@@ -2100,6 +2100,18 @@
|
||||
resolved "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz"
|
||||
integrity sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==
|
||||
|
||||
"@radix-ui/react-alert-dialog@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.2.tgz#ac3bb7f71f5cbb595d3d0949bb12b598c2a99981"
|
||||
integrity sha512-eGSlLzPhKO+TErxkiGcCZGuvbVMnLA1MTnyBksGOeGRGkxHiiJUujsjmNTdWTm4iHVSRaUao9/4Ur671auMghQ==
|
||||
dependencies:
|
||||
"@radix-ui/primitive" "1.1.0"
|
||||
"@radix-ui/react-compose-refs" "1.1.0"
|
||||
"@radix-ui/react-context" "1.1.1"
|
||||
"@radix-ui/react-dialog" "1.1.2"
|
||||
"@radix-ui/react-primitive" "2.0.0"
|
||||
"@radix-ui/react-slot" "1.1.0"
|
||||
|
||||
"@radix-ui/react-arrow@1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz"
|
||||
@@ -2182,7 +2194,7 @@
|
||||
resolved "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz"
|
||||
integrity sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==
|
||||
|
||||
"@radix-ui/react-dialog@^1.1.2":
|
||||
"@radix-ui/react-dialog@1.1.2", "@radix-ui/react-dialog@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz#d9345575211d6f2d13e209e84aec9a8584b54d6c"
|
||||
integrity sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==
|
||||
@@ -2428,13 +2440,20 @@
|
||||
dependencies:
|
||||
"@radix-ui/react-primitive" "2.0.0"
|
||||
|
||||
"@radix-ui/react-slot@1.1.0", "@radix-ui/react-slot@^1.1.0":
|
||||
"@radix-ui/react-slot@1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz"
|
||||
integrity sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==
|
||||
dependencies:
|
||||
"@radix-ui/react-compose-refs" "1.1.0"
|
||||
|
||||
"@radix-ui/react-slot@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.1.0.tgz#7c5e48c36ef5496d97b08f1357bb26ed7c714b84"
|
||||
integrity sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==
|
||||
dependencies:
|
||||
"@radix-ui/react-compose-refs" "1.1.0"
|
||||
|
||||
"@radix-ui/react-switch@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-1.1.1.tgz#1401658c24d66a18610f18793afbaa7fedf5429a"
|
||||
|
||||
Reference in New Issue
Block a user