* 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
* Split out queue and cache config
* Update usages of cache config,
* Update default
* Cleanup
* Make queue optional.
* config updates.
* changelog
* update spec config
* Update tests
* tweak import
* Update default config.
* fixup test
* Update config.sample.yml
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
Signed-off-by: Will Hunt <will@half-shot.uk>
* Update encryption.md
Signed-off-by: Will Hunt <will@half-shot.uk>
* Clear up worker config
Signed-off-by: Will Hunt <will@half-shot.uk>
* Update src/config/Config.ts
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
Signed-off-by: Will Hunt <will@half-shot.uk>
* update helm config
* move UserTokenStore.ts
* Port all the imports to new path.
* Port RSA handling to rust.
* Add tests.
* linting
* lint rust
* Remove unwraps / panics
* fix build script
* Ensure we store and check with algorithm and key was used.
* quieten false deadcode warnings
* changelog
* fix test imports
* lazy mock out UTS
* Refactor so that UserTokenStore is initiated by the time Bridge is created.
* update defaults
* replace if with match
* Use the magic of ?
* fmt
---------
Signed-off-by: Will Hunt <will@half-shot.uk>
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Bridge Gitlab comment replies as Matrix threads
* Persistently store Gitlab Discussion-Thread mapping
* Remove leftover debug line
* Denoise comment descriptions when they happen in Matrix threads
* Make comment debouncing time configurable
* Add some tests for Gitlab comments
* De-only Gitlab comment tests
* Linting
* Changelog
* Map multiple Gitlab discussions to a single Matrix thread
We debounce Gitlab comments, so multiple discussions can end up in one thread.
This ensures that replies to *any* of these discussions end up in the same thread.
* Add tests for the many-to-one reply case
* Move SerializedGitlabDiscussionThreads to Types
* Update changelog.d/758.feature
Co-authored-by: Will Hunt <will@half-shot.uk>
* Fix instructions for validating your config using Docker (#794)
* Fix instructions for validating your config using Docker
Fixes GH-787
* Changelog
---------
Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
* Add more icons to GitHub messages (#795)
* Add more icons to GitHub messages
* Add merged icon
* Lint
* Add changelog
* Bump word-wrap from 1.2.3 to 1.2.4 (#799)
* Bump word-wrap from 1.2.3 to 1.2.4
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)
---
updated-dependencies:
- dependency-name: word-wrap
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add changelog
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Update matrix-appservice-bridge to 9.0.1 (#800)
* Bump semver from 5.7.1 to 5.7.2 (#797)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)
---
updated-dependencies:
- dependency-name: semver
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Hunt <will@half-shot.uk>
* 4.4.0
* 4.4.1
* Set the default commentDebouncMs for Gitlab in its Config
* Rename `approvalState` to something more fitting
* Update sample config
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
Co-authored-by: Will Hunt <will@half-shot.uk>
Co-authored-by: Connor Davis <mail@connordav.is>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Add support for concurrent RSS feed reading
* Add feed concurrency polling
* Actually load all workers
* Ensure feed just sleeps if there are no urls to poll
* Fix map
* Update default config
* Update src/feeds/FeedReader.ts
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Update src/feeds/FeedReader.ts
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
---------
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Add service bots config
* Add joined rooms manager and keep track of joined rooms
* Add bot users manager and ensure registration and profiles
* Improve joined rooms manager and set up already joined rooms
* Handle invites with service bots
* Handle messages with service bots
* Use service bots for connections
* Use service bots in widget and provisioning APIs
* Use service bots in setup connections
* Use service bots for feed connections
* Handle admin rooms for service bots
* Fix confused event type and service type in provisioning and widget APIs
* Fix generic webhooks service name
* Fix enabled services config
* Handle power level change
* Create widgets with service scope
* Use service bots for gitlab repo connections
* Use service bots for gitlab issue connections
* Use service bots for generic webhook connections
* Use service bots for figma file connections
* Use service bots when verifying state events
* Use service bots for github repo connections
* Use service bots for github discussion connections
* Use service bots for github discussion space connections
* Use service bots for github project connections
* Use service bots for github issue connections
* Use service bots for github user space connections
* Use service bots for jira connections
* Make sure ghost users are invited for gitlab issue comments
* Configure one service per service bot
* Add changelog
* Update tests
* Fix up following rebase
* Fix comment
* Use getter for enabled services
* Ensure homeserver can be reached before registering bots
* Add intent getter on bot user
* Update config comment
* Merge joined rooms manager with bot users manager
* Remove unused localpart from bot user class
* Refactor to pass in bot users manager
* Improve priority sort function
Co-authored-by: Christian Paul <christianp@matrix.org>
* Fix priority sort
Higher priority should come first
* Add debug log when invites are rejected
* Use different state key for scoped setup widgets
* Use different subtitles to differentiate service bots setup widgets
* Refactor bot user setup into bot users manager
* Refactor to reduce duplication in widget API
* Consistent room ID and intent args order
* Add docs and update changelog
* Add overrideUserId deprecation warning
* Add service bots link
Co-authored-by: Christian Paul <christianp@matrix.org>
Co-authored-by: Will Hunt <will@half-shot.uk>
* Update config to mark encryption support as experimental
* Mention encryption as experimental in docs
* changelog
* Hide empty values from config
* transmuate snakes into camels
* Add support for native e2ee
* Various temps to coax it into working
* Formatting nitpicks
* Include stable registration config key for msc2409
* Update default config with encryption options
* Manage admin rooms with bot-sdk DMs
This also enables encryption for new admin rooms when appropriate.
* Update config comments for encryption settings
- Add comment to clarify Redis (the `queue` section) must be configured
in order for encryption to work
- Mention that the `encryption` section is optional, and omitting it
will disable encryption support
* Update docs for encryption support
* Add changelog
* Add to docs some notes about encryption state
* Move all post-join logic to onRoomJoin
* Block post-join actions on crypto setup
Requires https://github.com/turt2live/matrix-bot-sdk/pull/269
* Fix linter error
* Update encryption docs and changelog
- Mention that worker mode isn't supported with encryption yet
- Mention removal of Pantalaimon-based encryption
* Update worker docs with encryption config notice
* Share main appservice config with feed bots
This is required to safely enable encryption for the bots that post
GenericHook messages.
* Make slight clarification for queue config
* Minor fixes
* Block post-join actions on feed bot crypto setup
Same as a9e6e11d but for the sub-bots that post GenericHook messages.
* Get joined rooms from intent instead of bot
This refreshes the list of known rooms for crypto events.
* Use Element fork of bot-sdk for crypto fixes
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Add support for setting a global feed timeout
* Track failures, and don't show the first non-serious error
* Tidy up error reporting
* Make a prettier error pane
* Use the prettier event pane
* Show failed feed attempts in the widget
* Ensure we catch connection resets
* Add styling file
* Ensure we only track one result per fetch
* changelog
* Refactor to use better status codes
* Make feed results cheaper
* splice
* Disallow some empty config URL settings
If these settings are meant to be unspecified, then their entire parent
sections (`widgets` & `generic`) should be unspecified.
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
* Convert some config URL strings to URL objects
This allows both parsing and easier crafting of relative URLs.
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
* Dump parsed URLs to default config
Also implement getters to return stringified URLs, instead of having to
store a URL's string representation directly.
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
* Add note about listener configuration in widgets.md
* Add errors to check when widgets are not fully configured
* changelog
* Include widget listener in default config
* Start work on improved widget interface for admin room
* Add changes needed for InviteView
* More widget bits
* Lots more work to support setup widgets
* Redesign work
* Fix build order for web
* Remove unused invite code
* Update configs
* Cleanup
* Support widget branding
* Tidy up web app
* Support generic service config lookup
* Stronger typings for configuration
* Improve error text
* fix patch
* changelog
* First pass on documentation
* Fix tests
* fixes
* Don't require room state / admin rooms for room config requests
* Fix no render when secrets isn't provided
* rework if logic
* Fixes after feedback
* more review fixes
* Cleanup unused code
* fix indent
* Update matrix-appservice-bridge to 4.0.1
* Update widget API
* Add new logging config options
* Reduce logging noise
* Identify more sources of noise
* Add new colourize and json options for logging
* Update documentation
* changelog
* Add support for Figma files
* tweaks
* Final pieces needed for support
* Documentation
* Add config check
* Support using an alternative userId for Figma (to support legacy bots)
* Reinstate key fixer
* lint
* Add support for towncrier
* Use correct command
* Compare properly
* Work within the correct directory
* Try main
* Try a fetch-depth of 0
* changelog
* Fix default config
* Update sample