336 Commits

Author SHA1 Message Date
Kim Brose
57e7a84e63
Create alertmanager.js (#808)
* Create alertmanager.js

* Add changelog

* Rename contrib/alertmanager.js to contrib/jsTransformationFunctions/alertmanager.js

* Add docs to alertmanager.js

* Update alertmanager.js

* Update alertmanager.js with paragraphs

* Update alertmanager.js

convert `\n` line breaks to html `<br/>` so the upstream formatting is applied

---------

Co-authored-by: Will Hunt <will@half-shot.uk>
2023-08-16 17:06:15 +00:00
Tadeusz Sośnierz
a64a561698
Bridge Gitlab comment replies as Matrix threads (#758)
* 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>
2023-08-14 12:58:21 +00:00
Andrew Ferrazzutti
958743365f
Update Cargo.lock (#803)
* Update Cargo.lock

* Changelog

* Update Cargo.toml
2023-08-04 13:11:25 +00:00
Half-Shot
b7d66177de 4.4.1 2023-07-31 10:18:01 +01:00
Half-Shot
a55cb58a9e 4.4.0
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEYycU2dLYoNt0fu0PRCA+X3+iSR4FAmScWV8ACgkQRCA+X3+i
 SR5wvRAAh2BUGpvu4/6Vg3YSrH5yBPZerNGIyKfPiiNknE86EpCY1ZCM85X9AEJW
 i4KD+pbxDAftTmonunTe1wpkJAQ2ZyDbCtWQa8M/2hPtpgdWitCJusNPmcTd47He
 WWtnsHLGTuGCTcOdYaM1hhuXA6TBouemOHdjBMgXOpHo0oHUAYjrOA0VKzIcnTh7
 z2RvaY3j1E1bLzOz4K9MH4mtt7HilmKnBjmdvgel6NFm54SQuTBLKiTeRVfWlUWB
 T3RE7L4ruYlRn4vOSOJHt3FX6cNm5MrUINjTith8rfg1UoM9oIYFMsRdpHgGL5Pg
 vl5f3x2uOQmpydi/HcwQhPO4EiCNeVzclvKq54LLkt3jrp/CRuMgF0FxGBjkjBae
 84h/evn5Ezzn0ix3ia+EMfbvVq6qahQ/sxlwOm71o0wT/aJYBlLkhoarItYEjWGJ
 9hmXhg2TpYAIVkkar6VnsLKzcp3zLIQatxFD4mwUPiOMgsllb61no3PCTauOgxoH
 gfsHGFfQRR47pZ6ydhDJk0tQ0F0kYk9YFrFp5ZyS141hagdpGLWsmVzl87+dlpcR
 LWOL+aMwRT2BcTyK8Q0ErzyYJQ5dhkKRLC6qtrORbOFOewnRf1nrzdQavRaZ9ofP
 BA4q5PrdYqJRUBqjOdGzrQ3XOmXnZMdvjCetW5C9nFNbxzOPDg8=
 =WZ1J
 -----END PGP SIGNATURE-----

Merge tag '4.4.0'

4.4.0
2023-07-31 10:17:27 +01:00
Will Hunt
fa8023707c
Update matrix-appservice-bridge to 9.0.1 (#800) 2023-07-31 09:02:55 +00:00
dependabot[bot]
57e4b97e50
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>
2023-07-31 08:37:30 +00:00
Connor Davis
269d8bb0e1
Add more icons to GitHub messages (#795)
* Add more icons to GitHub messages

* Add merged icon

* Lint

* Add changelog
2023-07-11 13:42:05 +00:00
Tadeusz Sośnierz
adccfe94ef
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>
2023-07-06 09:19:49 +00:00
Tadeusz Sośnierz
1c54506f6e
Sort feed list alphabetically in bot command response (#791)
* Sort feed list alphabetically in bot command response

Fixes GH-790

* Changelog

* Linting

---------

Co-authored-by: Tadeusz Sośnierz <tadeusz@sosnierz.com>
2023-07-03 12:24:58 +00:00
Will Hunt
e41c9a8dd2 4.4.0 2023-06-28 17:01:19 +01:00
Charlotte Van Petegem
4351a37131
Try to find an HTML-type link first when parsing atom feeds (#784)
Signed-off-by: Charlotte Van Petegem <charlotte@vanpetegem.me>
Co-authored-by: Will Hunt <will@half-shot.uk>
2023-06-28 15:35:06 +00:00
Will Hunt
3217b9eecf
Performance improvements to Feeds (#786)
* 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
2023-06-28 15:29:54 +00:00
Tadeusz Sośnierz
2173a8ccb9 4.3.0 2023-06-19 15:47:50 +02:00
Will Hunt
172ae30a73
Enable feeds to be polled concurrently (#779)
* 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>
2023-06-14 12:41:14 +00:00
Rhea Danzey
b102798a23
Add basic Helm chart for Hookshot (#719)
* Import basic chart

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Test chart-releaser workflow

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Use latest version of chart-releaser action

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Test chart version bump

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Remove pages index

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Test bump Chart.yaml

* Add preliminary docs

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Docs tidying

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Add changelog for helm chart

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Update helm/hookshot/README.md

Co-authored-by: Will Hunt <will@half-shot.uk>

* Update values.yaml with most recent default config (incl. comments)

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Add pre-build stage for helm chart to template appVersion and config into values

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Add lint / validate to helm chart

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Fix helm validate workflow & Rename

Signed-off-by: Rhea Danzey <rdanzey@element.io>

* Update .github/workflows/helm.yml

Co-authored-by: Will Hunt <will@half-shot.uk>

---------

Signed-off-by: Rhea Danzey <rdanzey@element.io>
Co-authored-by: Will Hunt <will@half-shot.uk>
2023-06-08 18:17:54 +01:00
Justin Carlson
584f1d092f 4.2.0 2023-06-05 12:51:46 -04:00
Justin Carlson
96c398ce74
Fix crash from exceptions in handlers (#771)
* Fix crash from exceptions in handlers

* Fix withScope usage

* Add changelog
2023-06-05 16:25:19 +00:00
Will Hunt
6ca2b51893
Don't match issue comment notices on issue event type (#757)
* Don't match issue comment notices on issue event type

* changelog
2023-05-24 13:28:28 +00:00
Justin Carlson
0c4a493c56
Add support for uploading avatars (#767)
* Add uploading configured avatar images

* Add avatar assets

* Update docs and sample config

* Add changelog

* Fix sample config

* Add removing avatars when none configured
2023-05-24 13:16:37 +00:00
Tadeusz Sośnierz
9e5b569723 4.1.0 2023-05-24 15:21:44 +02:00
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
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
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
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 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
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
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
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
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 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