mirror of
https://github.com/matrix-org/matrix-hookshot.git
synced 2025-03-10 13:17:08 +00:00
35 KiB
35 KiB
2.5.0 (2022-12-02)
Features
- GitHub assign command now automatically chooses the top issue and/or authenticated user if not provided. (#554)
- Display GitLab project paths with their true letter casing. (#556)
- Forbid creating multiple GitLab connections on the same path with different letter casing. (#557)
- Allow adding connections to GitLab projects even when Hookshot doesn't have permissions to automatically provision a webhook for it. When that occurs, tell the user to ask a project admin to add the webhook. (#567)
Bugfixes
- Do not send a notice when a user replies to a GitLab comment, or when GitLab comment notices have been disabled. (#536)
- Don't announce error if a RSS feed request timed out. (#551)
- Don't ignore events from GitLab projects that have capital letters in their project path, and had their room connection set up by the configuration widget or provisioning API. (#553)
- Automatically JSON stringify values in a webhook payload that exceed the max depth/breadth supported by the parser. (#560)
- The bot no longer accepts invites from users who do not have permission to use it. (#561)
- Fix issue where GitLab connections couldn't be added via a bot command for projects on an instance URL configured with a trailing slash. (#563)
- Harden against unauthorized changes to room state for connection settings. (#565)
- Fixed a case where a bridge-created admin room would stop working on restart. (#578)
Improved Documentation
- Improve navigability & legibility of some documentation pages. (#568)
Internal Changes
- Increase default
feeds.pollTimeoutSeconds
from 10 seconds to 30. (#483) - Don't provision a connection twice when using a bot command to create a connection. (#558)
- Change "setup" to "set up" where it's used as a verb. (#572)
- Fix misspellings of "occurred" in error messages. (#576)
2.4.0 (2022-10-21)
Features
- Add support for notifying when a GitHub workflow completes. (#520)
- Disable GitHub workflow events by default. (#528)
- Support Jira version events. (#534)
- Allow multiple Jira connections at a time (either in the same room or across multiple rooms). (#540)
Bugfixes
- Mention the
help
in AdminRooms if they send an invalid command. (#522) - Fix an issue where
github status
would not respond with an error if your personal token had expired. Fix GitHub refresh tokens occasionally not working. (#523) - Add support for notifying when a GitHub workflow completes. (#524)
- Fix a crash caused by invalid configuration in connection state events. (#537)
- Fix the Jira config widget to properly add listeners for issue creation events & expose support for issue update events. (#543)
Internal Changes
- Use the
matrix-appservice-bridge
logging implementation. (#488) - Increase network timeout for Docker builds, and fix Docker build OOMing in CI for arm64 builds. (#535)
2.3.0 (2022-10-05)
Features
- Added
create-confidential
GitLab connection command. (#496) - Add new GitLab connection flag
includeCommentBody
, to enable including the body of comments on MR notifications. (#500, #517) - Add room configuration widget for Jira. (#502)
- Add bot commands to list and remove Jira connections. (#503)
- Reorganize the GitHub widget to allow searching for repositories by organization. (#508)
- Print a notice message after successfully logging in to GitHub when conversing with the bot in a DM. (#512)
Bugfixes
- Give a warning if the user attempts to add a configuration widget to the room without giving the bot permissions. (#491)
- Improve formatting of help commands and Jira's
whoami
command. (#504) - Add a configuration widget for Jira. (#507)
- Fix inactive "Command Prefix" field in configuration widgets. (#515)
- Fix support for the "Labeled" event in the GitHub widget. (#519)
Internal Changes
- Improve some type-checking in the codebase. (#505)
- Refactor the Vite component's
tsconfig.json
file to make it compatible with the TypeScript project settings & the TypeScript language server. (#506) - Don't send empty query string in some widget API requests. (#518)
2.2.0 (2022-09-16)
Features
- Ready/draft state changes for GitLab merge requests are now reported. (#480)
- Merge GitLab MR approvals and comments into one message. (#484)
Bugfixes
- Log noisy "Got GitHub webhook event" log line at debug level. (#473)
- Fix Figma service not being able to create new webhooks on startup, causing a crash. (#481)
- Fix a bug where the bridge can crash when JSON logging is enabled. (#478)
Internal Changes
- Update codemirror and remove unused font. (#489)
2.1.2 (2022-09-03)
Bugfixes
- Fix a bug where reading RSS feeds could crash the process. (#469)
2.1.1 (2022-09-02)
Bugfixes
- Fixed issue where log lines would only be outputted when the
logging.level
isdebug
. (#467)
2.1.0 (2022-09-02)
Features
- Add support for ARM64 docker images. (#458)
- Added new config option
feeds.pollTimeoutSeconds
to explictly set how long to wait for a feed response. (#459) - JSON logging output now includes new keys such as
error
andargs
. (#463)
Bugfixes
- Fix error when responding to a provisioning request for a room that the Hookshot bot isn't yet a member of. (#457)
- Fix a bug users without "login" permissions could run login commands for GitHub/GitLab/JIRA, but get an error when attempting to store the token. Users now have their permissions checked earlier. (#461)
- Hookshot now waits for Redis to be ready before handling traffic. (#462)
- Fix room membership going stale for rooms used in the permissions config. (#464)
Improved Documentation
- Be explicit that identifiers in the permissions yaml config need to be wrapped in quotes, because they start with the characters @ and !. (#453)
Internal Changes
- Track coverage of tests. (#351)
2.0.1 (2022-08-22)
Bugfixes
- Fix issue that would cause the bridge not to start when using Docker. (#448)
2.0.0 (2022-08-22)
Please note: Minimum Node.JS version is now 16
Features
- Add a configuration widget for GitHub. (#420)
- Add query parameter to scope room config widget to a particular service. (#441)
Bugfixes
- Fix GitHub notices sometimes coming through multiple times if GitHub sends multiple copies of a webhook. (#429)
- Headers and paragraphs now rendered properly when outputted from a Generic webhook transformation function. (#443)
- Fixed issue where
!hookshot gitlab project
commands would fail with a "Failed to handle command." error. (#445)
Deprecations and Removals
- Minimum Node.JS version is now 16. Updated matrix-bot-sdk to 0.6.0. (#417)
Internal Changes
- Add Grafana dashboard including documentation. Contributed by @HarHarLinks (#407)
- Refactor the way room state is tracked for room-specific configuration, to increase code reuse. (#418)
- Add a new PR template body and a CODEOWNERS file. (#425)
- Add new CI workflow to check for signoffs. (#427)
- Correct the docstrings of some connection classes. (#428)
- Optimize docker image rebuilds. (#438)
- Better error logging when validating Figma webhooks on startup. (#440)
1.8.1 (2022-07-18)
Features
- Added support for decoding XML payloads when handling generic webhooks. (#410)
Bugfixes
- If
widgets.addToAdminRooms
is set, add the admin widget to a DM room the bot is invited to, instead of the non-admin widget. (#411) - Disallow empty and invalid values for the
widgets.publicUrl
andgeneric.urlPrefix
configuration settings. (#412) - Post a non-empty message in response to
github list-connections
when no connections are present. (#416)
Improved Documentation
- Add deeplink for registration.sample.yml to setup documentation (#374)
- Update GitHub authentication documentation: list the steps for OAuth login (
github login
), and mention the correct command for checking GitHub authentication status (github status
). (#415)
Internal Changes
- Add package scripts for cleaning build files (which can be run with
yarn clean
). (#414)
1.8.0 (2022-07-11)
Bugfixes
- GitHub OAuth URLs for Cloud now use the correct endpoint. (#377)
- Fixed setup webhook command not providing the right URL. (#379)
- Fixed generic webhook connections not updating when a previously configured transformation function is removed from state. (#383)
- Fix malformed webhook link in AdminRoom. (#384)
- GitHub admin room notifications will now continue to work if you reauthenticate with GitHub. (#388)
- Floats in JSON payloads sent to generic webhooks are now handled properly. See the documentation for more information. (#396)
- Allow replying with the proper notice message when a widget is set up. (#403)
- Stringify provision connection data object in logs. (#404)
- Fix an issue where GitLab repos could not be bridged if they were already bridged to another room. (#406)
Improved Documentation
- Clarify wording in Generic Hook Setup docs (#381)
- Mention RSS/Atom feed support in the project's README. (#389)
- Mention that the GitLab test hooks button doesn't send properly formed requests in all cases, and should not be relied upon when testing Hookshot. (#398)
- Correct some typos in documentation pages. (#401)
Deprecations and Removals
- Generic webhooks will no longer respond to
GET
requests by default. Users should consider using thePOST
orPUT
methods instead.GET
support can be enabled using the config flaggeneric.enableHttpGet
. (#397)
Internal Changes
1.7.3 (2022-06-09)
Bugfixes
- Reinstate missing
github
authentication commands in admin room. (#372)
1.7.2 (2022-06-08)
Features
- Add support for GitHub enterprise. You can now specify the URL via
enterpriseUrl
in the config file. (#364) - Add ability for bridge admins to remove GitHub connections using the admin room. (#367)
Bugfixes
- Fix Github API URLs (#366)
Improved Documentation
Internal Changes
- Widgets now request the RequireClient permission to verify the users identity. (#370)
1.7.1 (2022-05-23)
Bugfixes
- Match UserAgent version to Hookshot's version. Fixes #359. Thanks to @tadzik (#360)
- Fixed an issue that prevented GitLab repo connections from working if GitHub support is disabled. (#362)
Internal Changes
- Update towncrier to 21.9.0 (#353)
1 (2022-05-12)
No significant changes.
1.7.0 (2022-05-12)
Features
- Improve GitLab push hook formatting: markdown commit hashes, link "N commits" to the list of commits, if there are more commits than can be shown only link instead, and show commiter unless a single person committed and pushed. (#309)
- Add
widgets.openIdOverrides
config option for developers to statically define server name <-> federation endpoints for openId lookups. (#326) - Add a new setup widget for feeds (#345)
Bugfixes
- Docker images can now be built cross-platform. Thanks @ptman for getting arm64 builds going! (#339)
- Fix regression where GitHubRepo and GitLabRepo connection config options were not being honoured (#346)
Improved Documentation
- Fix spacing of non-emoji icons in the docs navbar (#341)
1.6.1 (2022-05-06)
Bugfixes
- Fix a bug where widgets would not load if hosted on a subpath (e.g.
/hookshot
instead of/
) (#340)
1.6.0 (2022-05-06)
Features
- Add new
hookshot_connection_event(_failed)
metrics for tracking succesful event handling. Reinstatematrix_*
metrics which were previously not being recorded. (#312) - Send a notice when a GitLab merge request gets some review comments. (#314)
- Add RSS/Atom feed support (#315)
- Add support for GitLab in the widgets configuration UI. (#320)
- Add new
!hookshot gitlab project
command to configure project bridges in rooms. See the docs for instructions. (#321)
Internal Changes
- Reduce Docker image size. (#319)
- Refactor connection handling logic to improve developer experience. (#330)
- Restructure widget web components. (#332)
- Replace 'snowpack' with 'vite' for building the widget web components. (#334)
- The docker image has been shrunk by 78%, and now takes up 300MB. (#336)
1.5.0 (2022-04-14)
Features
- Allow specifying msgtype for generic webhook transformations. (#282)
- Add new GitHubRepo config option
newIssue.labels
which allows admins to automatically set labels on new issues. (#292) - Allow priority ordering of connections by setting a
priorty: number
key in the state event content. (#293) - Support GitLab
push
webhook events (#306)
Bugfixes
- Fix #289 "Generic webhook url format (copy) issue with backticks" (#290)
- Fix
!hookshot help
appearing twice in help text, and only show setup commands for which the bridge is configured for. (#296) - Fix GitHub / GitLab issue rooms breaking due to being unable to generate ghost users. (#303)
- Fix GitHub tokens not being refreshed on expiry when using OAuth support.
Rename the
github hastoken
togithub status
. (#307)
Improved Documentation
- Fix some typos in widgets.md (#286)
Internal Changes
- Fix issue where the webhook icon in the widget configuration page would not load in some browsers. (#285)
- Fail to start when widgets are configured but no "widgets" listener is configured. (#298)
1.4.0 (2022-04-08)
Features
- Add support for configuring generic webhooks via widgets. (#140)
- Show the closing comments on closed GitHub PRs. (#262)
- Webhooks created via
!hookshot webhook
now have their secret URLs sent to the admin room with the user, rather than posted in the bridged room. (#265) - Automatically link GitHub issues and pull requests when an issue number is mentioned (by default, using the # prefix). (#277)
- Support GitLab release webhook events. (#278)
Bugfixes
- Bridge API: Don't sent HTTP header Content-Type: application/json when there is no body. (#272)
Improved Documentation
Internal Changes
- Make some grammar corrections in code, chat notices and documentation. (#267)
- Made ESLint lint all TypeScript files and fix a few linter errors. (#273)
1.3.0 (2022-03-30)
Features
- Generic webhooks now listen for incoming hooks on
/webhook
. Existing setups using/
will continue to work, but should be migrated where possible. See the documentation for more information. (#227) - Logging now supports
json
format outputs and colourized logs. Startup logging should now be less noisy on non-debug levels. (#229) - Use stable key
m.thread
for Figma threads. (#236) - Add support for close events on GitLab merge requests. (#253)
- Hosted documentation now features a version selector. (#259)
Bugfixes
- Fixed an issue which caused GitHub issue edit notifications to be posted to a room twice. (#230)
- Fix generic webhooks always returning an HTTP error when
waitForComplete
is enabled. (#247) - Fix a bug that would cause Hookshot to crash when a Matrix message could not be sent (#249)
- Stop Figma threads showing as replies in clients. (#251)
- Fix an issue where the bridge bot would rejoin a room after being removed. (#257)
- Connections are now properly cleaned up when the state event is redacted. (#258)
Improved Documentation
- Clarify homeserver requirements and configuration on the setup page. (#243)
Deprecations and Removals
- Drop support for Node.JS 12. Administrators are advised to upgrade to at least Node.JS 14. (#228)
Internal Changes
- Uppercase values for
logging.level
are now allowed, although lowercase values are preferred. (#250)
1.2.0 (2022-03-04)
Features
- Bot command help text now features category headers, and disabled commands are no longer visible. (#143)
- Automatically append the last comment on a closed GitHub issue notification, if the comment was made when the issue was closed. (#144)
- New configuraion option
permissions
to control who can use the bridge. Please note: By default, all users on the same homeserver will be givenadmin
permissions (to reflect previous behaviour). Please adjust your config when updating. (#167) - GitHub repo connections will notify when an issue has been labeled if
includingLabels
is configured. (#176) - Jira Datacenter (On Premise) instances are now supported by Hookshot. See https://matrix-org.github.io/matrix-hookshot/setup/jira.html for more information. (#187)
- Use MSC3440 threads for figma comment threads. (#222)
- Add support for
v2
webhook transformation functions, supporting more options. See https://matrix-org.github.io/matrix-hookshot/setup/webhooks.html#javascript-transformations for more information (#223) - Generic webhook payloads are now pretty printed. (#224)
Bugfixes
- Fix a bug which caused GitHub "ready for review" events to be unhandled. (#149)
- Fix a bug preventing
!hookshot jira project
from working (#166) - Fix a few issues preventing GitHub notifications from working (#173)
- Fixed an issue where the bridge bot would change its displayname if a webhook event is handled while
generic.userIdPrefix
is not set in the config. (#215) - Remove nonfunctional
gitlab notifications toggle
command. (#226)
Improved Documentation
- Update registration.sample.yml to include the required localparts for all supported services (#162)
Internal Changes
- Refactor setup commands code to use the same checks as the provisioning code. (#141)
- Add icons to documentation for supported platforms. (#168)
- Do not hardcode
--target x86_64-unknown-linux-gnu
when installing Rust (rely on platform auto-detection instead) (#184) - The GitHub repository has moved from
https://github.com/Half-Shot/matrix-hookshot
tohttps://github.com/matrix-org/matrix-hookshot
. (#216)
1.1.0 (2022-01-07)
Features
- Add support for Figma webhooks. (#103)
- Support GitLab wiki page change events for GitLabProject connections. (#104)
- Add new script
validate-config
which check your config file for simple errors. (#125) - Add support for a
html
key on generic webhooks to set the HTML content of a Matrix message. (#130)
Bugfixes
- Fix an issue introduced in #111 that would cause the build to fail in CI. (#111)
- Fix a bug where the bridge would not start if only generic webhooks are configured. (#113)
Improved Documentation
- Fix a couple of typos in
docs/setup.md
. Thanks @HarHarLinks! (#107) - Improve documentation sidepanel with emojis! (#110)
- Fix incorrect command for webhook setup (#115)
- Improve docs around listener and generic webhook configuration (#124)
- Improve documentation for OAuth listener setup (#132)
Internal Changes
1.0.0 (2021-12-21)
This release is huge, containing not only a rename but many new features and bug fixes. To name some of the highlights:
- The bridge has now been renamed from
matrix-github
tomatrix-hookshot
. - Now supports JIRA and Generic Webhooks in addition to GitHub and GitLab.
- Includes new commands and metrics reporting.
- Includes complete documentation.
As always, please contact me (@Half-Shot:half-shot.uk) if you require any help getting this setup and please report any bugs you encounter!
Features
- The bridge now supports generic webhook bridging. (#77)
- Add support for JIRA. (#82)
- Add Provisioning API. Extra thanks to @turt2live for supporting this change. (#83)
- GitHub support no longer needs an installation ID defined.
Licence in package.json now accurately reflects
LICENCE
GitHub workflows can now be run with!gh workflow run
on GitHubRepo connections. (#85) - Add
!hookshot
setup command for quickly setting up new rooms with the bridge. (#88) - Issues created with !gh create show the issue number inside a reaction. GitHubRepo connections can now optionally show a small diff for PRs. PRs can be reviewed by replying with a ✅ or a ❌ and a small text message. (#93)
- Add support for
includingLabels
/excludingLabels
state config for GitHubRepo and GitLab Repo connections, allowing rooms to recieve a subset of issue and PR/MR notifications based on labels. (#95) - Add automatic changelog generation via Towncrier. (#96)
- Add support for exporting Prometheus metrics. (#99)
- Switch to using the
vm2
module for improved sandboxing of transformation functions (#101) - Allow running multiple resources on the same HTTP listener. See the new
listeners
config.(#102)
Improved Documentation
- Add documentation for most functionality in the bridge. (#90)
Internal Changes
- The bridge now depends on Rust modules for some functionality. (#78)
- The project has been renamed
matrix-hookshot
. (#81) - Use quotes instead of brackets in GH PRs. Thanks @Twi1ightSparkle! (#92)
- Fix spelling of received. Thanks @andybalaam! (#94)
- CI jobs now report the diff between the generated config and the in-tree sample config. (#97)
0.1.0 (2021-04-21)
This is the initial release of the GitHub bridge.