* Add command to list feeds in YAML format
* Add line breaks
* Add changelog
* Add a period in the help
* Add $URL to templates and add feed list format docs
* Use an optional arg on yaml list instead of a separate function
* Update changelog to include JSON format
* Ensure connection state always explicitly states all keys, even if some are undefined.
* changelog
* Fix type
* fix test types
* Add support for E2E testing
* Add CI job for e2e test
* Ensure integration test only runs when regular tests complete
* Add homerunner image
* Disallow concurrent runs
* Add concurrency to other expensive steps
* changelog
* Fix mq test
* Cache rust deps
* Drop only
* Use a shared key
* Update metrics.md
Made descriptions of metrics more consistent and some smaller improvements.
* Update README.md (#855)
* Update README.md
Smaller improvements. Fixed a typo.
* Create 855.doc
---------
Co-authored-by: Will Hunt <will@half-shot.uk>
* Update setup.md (#857)
* Update setup.md
Smaller improvements such as fixes for typos, also added an example on how to pass requests from Nginx
* Create 857.docs
* Rename 857.docs to 857.doc
---------
Co-authored-by: Will Hunt <will@half-shot.uk>
* Update workers.md (#858)
* Update workers.md
Fixed typos
Signed-off-by: Joshua Hoffmann joshua.hoffmann@b1-systems.de
* Create 858.doc
---------
Signed-off-by: Joshua Hoffmann joshua.hoffmann@b1-systems.de
Co-authored-by: Will Hunt <will@half-shot.uk>
* Update encryption.md (#860)
* Update encryption.md
Consistently spell Hookshot with an upper-case H as the first letter
Signed-off-by: Joshua Hoffmann joshua.hoffmann@b1-systems.de
* Create 860.doc
---------
Signed-off-by: Joshua Hoffmann joshua.hoffmann@b1-systems.de
Co-authored-by: Will Hunt <will@half-shot.uk>
* Update widgets.md (#859)
* Update widgets.md
Consistently spell Hookshot with an upper-case H as the first letter
Signed-off-by: Joshua Hoffmann joshua.hoffmann@b1-systems.de
* Create 859.doc
---------
Signed-off-by: Joshua Hoffmann joshua.hoffmann@b1-systems.de
Co-authored-by: Will Hunt <will@half-shot.uk>
* Drop Node 18, start testing Node 21 & update dependencies. (#862)
* 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
* Better support for dark mode in widgets (#863)
* 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
* Commit metrics changes
* Cleanup
---------
Signed-off-by: Joshua Hoffmann joshua.hoffmann@b1-systems.de
Co-authored-by: Will Hunt <will@half-shot.uk>
* 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>
* Remove Sled crypto store, use SQLite by default
on account of it being removed from the crypto-sdk
* Add changelog
* Don't start if Sled store config is set
* 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>
* Various smaller changes
* Drop account data entirely
* Use max feed items
* Commit known working improvements
* Better status handlingh
* changelog
* Update changelog
* Add a note on Redis.
* Add proper HTTP tests
* Linty lint
* Tweaks
* New metrics woah
* Tweaks
* 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 a function to sanitize html output
* Allow some HTML in feed messages
* Update cargo
* changelog
* lint
* Saved a ton of code by just using ruma.
* Reverse order of rs:apply
* Lint
* Update src/Connections/FeedConnection.ts
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Apply suggestions from code review
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Add a test for partial html
---------
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
* Support atom feeds in rust parser
* Add an apply linting command
* Add changelog
* Fixup
* Add tests for atom feeds + remove redundant code
* Remove unused rss-parser
* Tests for all formats.
* Move hashing logic into rust to save cross-context calls
* lint my rust
* Use a String::from
* Ensure guids are not repeated
* Allow usage of the SQLite-based crypto store
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
* Add changelog
* Log when crypto storage is initialized
* Add yarn script for resetting crypto state
Also document its usage & when it may be necessary to use it.
* Minor style improvements
- add trailing semicolons
- remove redundant `Promise.resolve`s
* Change logging in crypto reset script
- Move error object to parameter
- Rename logger
* Add method to close the Redis store
and call it to let the process exit cleanly
* Update matrix-bot-sdk
Use release with SQLite crypto store support
---------
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
* Don't process feed/item titles that aren't actually strings
Another case of empty-tag with attributes, these would occasionally parse
into non-string objects and make us crash when trying to stripHtml on them.
* Changelog
* Add tests for not-quite-empty <title> tags in feeds
---------
Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
* Add hookshot_ prefix on all metrics
* Only add prefix to hookshot specific metrics
* Add old metric names as deprecated
* Fix feeds metrics names
* Update metrics docs
---------
Co-authored-by: Will Hunt <will@half-shot.uk>
* 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>
* Allow room admins to import other people's go-neb services
This requires us to guess what these other people's MXIDs were,
so we scroll through the list of room members and make educated guesses
about which of them are Scalar+go-neb bots, and which users they were set up by.
* Relax our requirements for scraping others' go-neb connections
* Changelog
* Linting
---------
Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>