751 Commits

Author SHA1 Message Date
Christian Paul
00771d88c3
Fix #598; setup issues when the bot has PL 0 and room default isn't 0 (#755)
* Fix #598

If the bot has PL 0, the bot incorrectly used the default power level.

* Create 755.bugfix
2023-05-18 19:18:15 +00:00
Marcel
b91ca94249
fix: Make sure that the blockquote markdown for github issue comments are valid commonmark (#746)
* fix: Make sure that the blockquote mardkown for github issue comments are valid commonmark

* Add changelog file
2023-05-18 19:18:04 +00:00
Will Hunt
466ab6d5e3
Allow sanitized HTML from feed summaries (#738)
* 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>
2023-05-18 18:59:58 +00:00
Andrew Ferrazzutti
1df4f7928a
Update eslint (#760)
* Update eslint

* changelog
2023-05-18 18:53:28 +00:00
Will Hunt
f85b543f1f
Add clippy checks to workflow 2023-05-18 13:39:03 +01:00
Will Hunt
b9313cd140
Add Sentry support (#754)
* Add sentry support

* Add basic listening for errors on express.

* Additional event types

* Add a default config

* changelog

* Improve wording

* Add docs
2023-05-18 11:05:23 +00:00
Will Hunt
af90e840e4
Add support for Gitlab individual review notifications (#736)
* Add support for individual reviews

* Document support + add frontend support

* changelog

* Remove redundant checks
2023-05-18 10:52:19 +00:00
Half-Shot
698b0c13bb Add a merge group to this so the check passes 2023-05-18 11:58:03 +01:00
Will Hunt
1741848f57 Add merge_group to workflows. 2023-05-18 10:45:52 +00:00
Will Hunt
d772a4050c
Run Clippy in CI (#753)
* Clippy fixes

* Refactor to make rust linter happy

* Enable warnings since we have none

* Tidy up tests

* changelog
2023-05-18 11:38:59 +01:00
dependabot[bot]
1c692bea8f
Bump vm2 from 3.9.17 to 3.9.18 (#751)
Bumps [vm2](https://github.com/patriksimek/vm2) from 3.9.17 to 3.9.18.
- [Release notes](https://github.com/patriksimek/vm2/releases)
- [Changelog](https://github.com/patriksimek/vm2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patriksimek/vm2/compare/3.9.17...3.9.18)

---
updated-dependencies:
- dependency-name: vm2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-17 15:57:36 +01:00
Marcel
409a8b83a7
Apply cargo clippy suggestions to reduce not needed allocations (#750)
* Apply cargo clippy suggestions to reduce not needed allocations

* Add changelog entry
2023-05-17 14:53:42 +01:00
Will Hunt
7223a86b2b
Fix message format for feed items with no title or link (#737)
* Allow empty title on feed item

* Allow bare URL

* Add tests for new format.

* changelog
2023-05-04 09:34:25 +01:00
Andrew Ferrazzutti
2110e88210 4.0.0 4.0.0 2023-04-27 21:58:32 +09:00
Will Hunt
c864dc6b42
Support node 20, drop node 16 (#724)
* Support node 20, drop node 16

* Update workflow versions

* Update backendmeta

* Use version file

* Update packages

* Yarn updates

* Changelog

* Fix glibc compatibility

* Target es2021

Without this, CI tests fail

* Drop unused metrics parameter

* Revert "Drop unused metrics parameter"

This reverts commit 4d874549bcec3dea0d6941215ac5c4f4707966ac.

* Make a note about broken support

---------

Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
2023-04-27 12:24:06 +01:00
Will Hunt
01159fa0d1
Update yaml dependency (#728)
* Update yaml dependency

* changelog
2023-04-25 15:52:57 +00:00
Will Hunt
43176adf7a
Fallback to parsing feeds as atom format if rss format fails. (#721)
* 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
2023-04-25 15:45:55 +00:00
Will Hunt
ba5b28ab92
Imporve the README for first time readers (#726)
* New README

* Plural feeds

* Add a nice screeny

* Apply wordsmithing

Co-authored-by: Justin Carlson <justinc@element.io>

* Actually reference the screenshot

* Better screenshot

---------

Co-authored-by: Justin Carlson <justinc@element.io>
2023-04-24 14:48:00 +00:00
Will Hunt
4bb4b56875
Include 'update' state in oauth page (#717)
* Include 'update' state in ouath page

* changelog

* words

* Update 717.bugfix

* Update oauth.tsx
2023-04-24 08:14:20 +00:00
Andrew Ferrazzutti
9bd46e4dc5
Fix hang in crypto reset script when E2EE is off (#723)
Ensure that the bridge storage is always disconnected
2023-04-21 23:57:40 +09:00
Andrew Ferrazzutti
f29fac7584
Allow usage of the SQLite-based crypto store (#714)
* 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>
2023-04-21 23:18:27 +09:00
Will Hunt
a9537c7961
Add option to enable/disable feed failure notices. (#716)
* Add new notifyOnFailure option

* Disable state buttons when updating is set

* Linting
2023-04-21 10:47:29 +00:00
Will Hunt
c6a04c2ebd
Fix case where GitHub repos aren't connectable if the GitHub App was manually approved (#718)
* Fix GitHub connections failing if the installation cache is stale

* changelog
2023-04-21 09:27:57 +00:00
dependabot[bot]
9baa21bb30
Bump vm2 from 3.9.16 to 3.9.17 (#720)
Bumps [vm2](https://github.com/patriksimek/vm2) from 3.9.16 to 3.9.17.
- [Release notes](https://github.com/patriksimek/vm2/releases)
- [Changelog](https://github.com/patriksimek/vm2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patriksimek/vm2/compare/3.9.16...3.9.17)

---
updated-dependencies:
- dependency-name: vm2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-21 10:20:59 +01:00
Will Hunt
eda6fc8c26
Use rss crate for RSS feed parsing (#709)
* Refactor annoying type difference

* Add rss

* Add support for parsing RSS feeds

* Add rss lib

* Add Cargo project

* Lint rust

* changelog

* Add support for new fields
2023-04-17 11:48:03 +00:00
dependabot[bot]
97ff9f2e3a
Bump vm2 from 3.9.15 to 3.9.16 (#713)
Bumps [vm2](https://github.com/patriksimek/vm2) from 3.9.15 to 3.9.16.
- [Release notes](https://github.com/patriksimek/vm2/releases)
- [Changelog](https://github.com/patriksimek/vm2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patriksimek/vm2/compare/3.9.15...3.9.16)

---
updated-dependencies:
- dependency-name: vm2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-13 00:03:22 +01:00
Tadeusz Sośnierz
bc57dbbc83
Don't process feed/item titles that aren't actually strings (#708)
* 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>
2023-04-12 17:52:10 +02:00
dependabot[bot]
a634cdeed8
Bump xml2js from 0.4.23 to 0.5.0 (#712)
Bumps [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js) from 0.4.23 to 0.5.0.
- [Release notes](https://github.com/Leonidas-from-XIV/node-xml2js/releases)
- [Commits](https://github.com/Leonidas-from-XIV/node-xml2js/commits/0.5.0)

---
updated-dependencies:
- dependency-name: xml2js
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-12 09:52:17 +01:00
Justin Carlson
cafe05b0a2
Add hookshot_ prefix on hookshot specific metrics (#701)
* 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>
2023-04-11 16:58:51 +00:00
Will Hunt
6345ad2347
Add support for templating feed messages (#702)
* 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>
2023-04-11 15:24:00 +00:00
dependabot[bot]
0b555b8073
Bump vm2 from 3.9.11 to 3.9.15 (#705)
* Bump vm2 from 3.9.11 to 3.9.15

Bumps [vm2](https://github.com/patriksimek/vm2) from 3.9.11 to 3.9.15.
- [Release notes](https://github.com/patriksimek/vm2/releases)
- [Changelog](https://github.com/patriksimek/vm2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patriksimek/vm2/compare/3.9.11...3.9.15)

---
updated-dependencies:
- dependency-name: vm2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Create 705.misc

---------

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>
2023-04-09 18:06:00 +00:00
Tadeusz Sośnierz
81b0bf57fe 3.2.0 3.2.0 2023-04-04 18:18:57 +02:00
Will Hunt
c7ca2ba94d
Add support for showing GitHub issue comments (#697)
* Add support for issue/PR comments.

* changelog

* Quote message

* Truncate messages too
2023-04-04 13:28:51 +01:00
Will Hunt
7eef384563
Add support for using guid as a feed link (#700)
* Move statics above instance fields, and add new url praser

* uncomment out

* add comment

* Create 700.feature
2023-04-03 14:24:36 +00:00
Tadeusz Sośnierz
0ce06c4ea7
Allow users to import other people's go-neb services (#695)
* 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>
2023-04-03 16:13:43 +02:00
Will Hunt
76e2b53cf0
Support GitHub push events in repo connections (#696)
* Support pushed commits on GitHub

* Add a nice way to see changes in the event content

* changelog

* Fix typing

* Fixing git freaking out
2023-03-31 09:20:06 +01:00
Will Hunt
2b5d4640c8
Ignore paths in workflows if only updating the changelog (#692)
* Add filters so jobs don't run twice for changelog changes

* one final tweak

* Final tweaks

* changelog
2023-03-29 09:15:34 +00:00
Half-Shot
e2226d6748 3.1.1 3.1.1 2023-03-28 15:58:16 +01:00
Will Hunt
77ac90180f
RSS Spam fix (#694)
* Fix spammy RSS feeds

* changelog
2023-03-28 14:57:48 +00:00
Will Hunt
33dc9eac58
Fix release script (#693)
* Fix the release script

* changelog
2023-03-28 15:44:55 +01:00
Half-Shot
64ffab4be8 3.1.0 3.1.0 2023-03-28 11:26:19 +01:00
Will Hunt
c861ce51fe
Fix grants supplying the wrong state (#672)
* Fix grants supplying the wrong state

* changelog
2023-03-28 11:25:21 +01:00
Will Hunt
44eea7f7c3
Staggered RSS feed polling (#685)
* Ensure we poll feeds equally

* Ensure we poll at least once

* Create 685.misc

* Tidy up
2023-03-28 10:13:57 +00:00
Tadeusz Sośnierz
507b014bd5
Make sure we're not treating garbage data in feed item as guids (#689)
* Make sure we're not treating garbage data in feed item as guids

Some of these would parse as `{ '$': { isPermaLink: 'false' } }` or similar,
which would then surprise us very much when assuming that it's a string stored in accountData.

* Changelog

* Exclude empty strings when looking for viable guids

Co-authored-by: Christian Paul <christianp@matrix.org>

* Hash seen feed entry guids for storing and checking

This saves a little bit of space in the common case,
and prevents bloating the storage were someone to feed us obnoxiously long guids.

---------

Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
Co-authored-by: Christian Paul <christianp@matrix.org>
2023-03-28 09:06:30 +00:00
Will Hunt
74a577a97f
Ensure joined to room when checking widget API permissions. (#691)
* 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
2023-03-27 17:56:37 +01:00
Will Hunt
037674115a
Wrap createConnectionForState/ensureGrant in a try/catch (#680)
* Fix thrown exception when the state is not granted

* changelog

* make it an error

* Typing
2023-03-24 14:39:19 +00:00
Tadeusz Sośnierz
6c4bbc7150
When setting up a FeedConnection, check if the feed loads and parses rather than just checking the Content-Type (#684)
* When setting up a FeedConnection, check if the feed loads and parses rather than just checking the Content-Type

* Don't create a new Parser each time we fetch a feed

* Create 684.bugfix

---------

Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
Co-authored-by: Will Hunt <will@half-shot.uk>
2023-03-24 14:22:10 +00:00
Tadeusz Sośnierz
5ccd64acd8
Undo XML parser customizations (#683)
* Undo XML parser customizations

These did more harm then good, breaking many legit feeds in weird ways.

* Undo changelog

---------

Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
Co-authored-by: Will Hunt <will@half-shot.uk>
2023-03-24 14:16:54 +00:00
Will Hunt
f6475a5182
Do more to shut down quickly and start RSS feeds later (#671)
* Only load RSS feeds once all connections have loaded

* Clear various timeouts

* changelog
2023-03-24 14:13:51 +00:00
Will Hunt
5d27f173a6
Add a ready probe to each listener and start the listeners immediately (#676)
* Put a ready probe on all listeners

* Start the listener early, and add ready probes to each listener

* Apply to the other two listeners
2023-03-24 14:09:09 +00:00