* Update dependencies
* Node 22 is now the new minimum version.
* changelog.
* Begin porting eslint to new config format.
* Make linter happy.
* Update reqwest to fix SSL issue?
* Fix test types
* quick check on ubuntu LTS 24.04
* Change cache key
* update rust action
* revert mocha due to esminess
* Remove the only usage of pqueue
* Use babel for TS transformations to get around ESM import bug.
* Dependency bundle upgrade
* Drop babel, not actually used.
* lint
* lint
* update default config (mostly sections moving around)
* Add dynamic imports for room configs.
* Try to move code editor to imports
* Load code editor on demand to save a bundle load.
* Load fonts from npm
* changelog
* lint
* Add logic to enable generic hook expiry
* Add storage for hook expiry warnings.
* Migrate generic hooks / add expiry field
* Allow reporting a specific error and status code for generic webhooks
* Report the specific error when a message fails to send
* Refactor input class to better support datetime
* Remove single use of innerChild
* Add UI support for expiry configuration
* Add new packages
* Add warnings when the timer is about to expire.
* Add send expiry notice config option
* lint
* document new option s
* Fixup test
* Add tests for expiry
* Add textual command for setting a duration on a webhook.
* Add e2e test for inbound hooks.
* changelog
* Add a configuration option to force webhooks to expire.
* update config.sample.yml
* fix field not working
* Initial support for outbound webhooks.
* Refactor outbound into it's own connection type.
* Add support for media / encrypted media.
* Ensure we configure a sensible User Agent
* Add a test for outbound webhooks
* Checkpoint for feature completeness.
* Lint tidy
* Finish up media tests.
* changelog
* Add outbound documentation
* update default config
* fix tests
* Fix widget client only talking to localhost
* Improve error text around widget communication.
* changelog
* Remove unused.
* Simplify code by using a context for bridge API.
* Major package upgrades
* Update rust deps and fix a few things
* Drop 18 testing
* Use node 20
* lint rust
* lint
* changelog
* Drop usage of SVGs, use compound elements.
* Update widget API
* Drop usage of SVGs, use compound elements.
* Add dark mode for widgets
* changelog
* Remove yarn-error.log
* Major package upgrades
* Update rust deps and fix a few things
* Drop 18 testing
* Use node 20
* lint rust
* lint
* changelog
* Drop usage of SVGs, use compound elements.
* Update widget API
* Add ability to respond to webhooks.
* Refactor hook handling code for simplicity
* Cleanup checkbox
* Ensure we can send a response even we send no content.
* Add docs
* changelog
* Reflect local and global state in the UI
* Revert CHANGELOG for now
* Emphasize Slack the service in webhooks docs
and not time slack
* Guard against falsey non-string values
---------
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* quickjs test
* Replace vm2 with quickjs
* initalise -> initialise
* Remove unused transformation timeout time
* Don't assume quickModule is set
Also use whether it's set as the indicator of whether transformation
functions are allowed, instead of checking the config
* Refactor GenericHookConnectionState validation
- Do it in the constructor instead of in callers
- Make hookId mandatory so as to not drop it on some state updates
- Conflate a state event's state key with a connection state's name,
which was already the case in practice
* Refactor validateState
* Drop explicit any
Better to infer the type instead
* Always validate transformation fn
* Fix test
* Add changelog
* Fix disposal, validation, and printing
* Fix transformation error string formatting
Also refactor similar code
* Let invalid transformations run & fail
instead of pretending that one was never set
* Restore transformation timeout time
* Don't execute transformation fn when validating it
Instead, only compile it
* Revert unrelated changes
---------
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Add support for specifying a template for feeds
* Remove unused params
* use the correct url
* make URL visible.
It was annoying me
* Update src/Connections/FeedConnection.ts
Co-authored-by: Tadeusz Sośnierz <tadzik@tadzik.net>
* Support migrations
* Hopefully support migrations now
* lint
---------
Co-authored-by: Tadeusz Sośnierz <tadzik@tadzik.net>
* Add an ensureJoined to assertUserPermissions
* Ensure web component retries connection fetches
* Ensure errors are caught and logged as JSON on the widget API
* changelog
* non-linear retry timer
* lint
* Use retry
* Make getBotUserInRoom try to join the room
* Make this fn safe to handle
* Add a go-neb migrator, capable of migrating RSS/Atom feeds to hookshot (so far)
* Add forgotten file
* Fix useCallback() usage
* Gracefully handle go-neb not being configured
* Make Feed URLs not editable when they're being migrated over from go-neb
https://github.com/matrix-org/matrix-hookshot/pull/647#discussion_r1131615944
* Changelog
* Linting
* Add the ability to migrate Github repo connections from go-neb (#651)
* Add the ability to migrate Github repo connections from go-neb
* Gracefully handle the lack of go-neb migrator
---------
Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
* Handle Scalar-style go-neb service IDs (#656)
* Add the ability to migrate Github repo connections from go-neb
* Handle Scalar-style go-neb service IDs
* Make service type in service ID match the Scalar-generated one
https://github.com/matrix-org/matrix-hookshot/pull/656#discussion_r1131647595
* Safeguard against undefined hardcoded service IDs
https://github.com/matrix-org/matrix-hookshot/pull/656#discussion_r1131646578
* Rename a variable
https://github.com/matrix-org/matrix-hookshot/pull/656#discussion_r1131710225
---------
Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
* Linting
---------
Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
* WIP
* Update vite
* Add oauth landing page
* Add API support for GitHub oauthing
* Remove console.logs
* Add support for logging and and out of GitHub
* Add bridge API methods
* Add base link styling
* Sugar syntax main get
* Update vite
* changelog
* Review changes
* Use instance to match UI
* lint
---------
Co-authored-by: Justin Carlson <justinc@element.io>
* Implement new Dropdown component
* Apply field styling to search too
* General improvements to GitLabClient
* Add support for storing small base64 files in the storage provider
* Refactor GitLab repo to use new connection provider
* Start trying to deduplicate code
* Begin refactor to support ConnectionSearch
* Add support for GitHub searching
* Refactor GitLab/GitHub into components
* Port Jira to ConnectionSearch
* Drop unused functions
* Hide connection list if no connections are present.
* Cleanups
* Cleanup abort controller
* changelog
* Update JIRA for search powers
* Refactor HookFilter to only support enabledEvents (and add a function to convert)
* Convert connections to deprecate ignoreHooks
* Update documentation
* Split out EventHookCheckbox
* Refactor frontend to support enableHooks only mode
* drop old field name
* changelog
* Fix enabledHooks for widgets
* Fixes across the board
* Update test description
* Cleanup
* Fix HookFilter
* Fixup checkboxes
* Cleanup
* Allow GitLab connections without hook permissions
Warn instead of fail when connecting a GitLab project that Hookshot
cannot provision a webhook for.
* Mention manual "Secret token" for GitLab webhooks
* Refactor warning pane into a separate component
* Recolour warning pane for better contrast
* Add a HookFilter class
* Use the HookFilter class
* Support default hooks in the web UI
* Update documentation
* changelog
* Allow all GitLab events by default
* bits of cleanup
- Support version created/updated/released events
- Look up project ID if missing when subscribing to version events
- Properly format version event notices
- Prioritize project URL over ID in debug strings
- Refactor Jira event handling to be more like GitHub & GitLab
- Fix silently-ignored Jira events due to expecting wrong type strings
- Update UI for Jira events
* Read-your-writes consistency on connection update
Allow updates to connections made via config widgets to be reflected
immediately upon save in the widget UI.
* Use HTML elements as `ref`s in widgets
Fixes#422
* Add changelog
* Let widgets use new connection config on save
After a connection config is updated, but before a widget requests the
latest config from the bridge, make the widget display the just-saved
config instead of what the config was before being updated.
* Use input placeholder as prefix default
Otherwise, leaving the prefix field blank would apply no prefix, and
violate prefix length requirements.
- Group repos by org
- Paginate repo requests
- Remove redundant label next to chosen repo
- Remove redundant repo field below connected repo
- Include repos that user has doesn't have admin permissions for, to
achieve parity with results from provisioning API