* Ensure atom feeds hash and prefix
* Add some fixing code for this.
* Remove feed fixer
* Refactor RSS feed tests a bit
* Add tests to ensure hashes do not change
* changelog
* Backoff RSS requests if a url repeatedly fails.
* Increase max backoff time to a day
* Add backoff for failing feeds.
* Remove unused finally
* Add this.feedLastBackoff
* Rewrite in rust.
* linting
* pop
* Optimise backoff function further
* Drop only!
* fix test
* lint
* lint further
* Better comments
* Fix urls calculation
* Remove testing URL
* Add some variance to speed up while loop
* correct comment
* Follow the advice and use a VecDeque as it's slightly faster.
* Vastly better shuffle method
* Speed up checking for previous guids.
* fix hasher function
* lint
* Content doesn't need to be calculated twice.
* Slightly more efficient iteration
* Improve performance of backoff insertion
* Configure feed reader
* lint
* Ensure appending and removing from the queue works as expected.
* Ensure we do keep urls that have been removed.
* lint
* Inc/dec metrics as queue items are added/deleted.
* Add comment
* tidy up
* 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>