Skip to content

v1.0.0

Compare
Choose a tag to compare
@geluk geluk released this 02 Sep 20:48

This is a major new release. The upgrade path has been tested and seems to be fairly smooth, but please read the 'breaking changes' section before upgrading.

New features

  • Plugin API version 2. This API offers support for various new features, including logging and making calls to the MatrixBridge object. Plugin code may now run asynchronously.
  • Added a formatting API to simplify sending messages in both plaintext and HTML. Take a look at the sample plugins to see how it works.
  • The content of webhooks posted to a valid URL can now be stored in the database. This feature is disabled by default, and can be enabled by setting webhooks.log_to_database: true in the configuration file.
  • The command -hook list full [channel] has been added, which will make the webhook management user send you a private message with the full URLs of all webhooks in a channel.
  • The command -hook set name <user> has been added, which lets you set the display name of a webhook user.
  • Likewise, the command -hook set avatar <user> lets you set the avatar of a webhook user.
  • A new sample plugin has been added, which can process Gitea webhooks. If you want to use it, you will probably want to alter it so it logs the messages you are interested in.
  • Environment variables can now be used instead of some commandline options. Check the Dockerfile to see which environment variables are available, and what their default values are.
  • Several options to manage database migrations have been added. Set --no-auto-migrate to disable automatic migrations. This will require you to manually perform migrations after updating, which can be done by executing the application with --migrate <number>. In addition --migrate-status will report the number of performed and pending migrations.
  • The option --clear-plugin-cache has been added, which will clear the plugin cache before compiling plugins.
  • The avatar of the management user can now be configured by setting app_service.bot_avatar_url in gateway-config.yaml.

Breaking changes

  • The Docker entrypoint has been modified and split up into a separate ENTRYPOINT and CMD. If you override the entrypoint or command in your container, you will have to update your configuration. The details of the change can be found here. Because environment variables can now be used as well, it is no longer necessary to specify the configuration file location in the arguments. Take a look at the compose file in the readme for an example.
  • Node.js version 16 is now the minimum supported version, and the Docker container has been updated to reflect this. If you run the application outside Docker, you may need to update your Node.js version.

Other changes

  • The Docker build process has been improved, and the container will now execute pre-compiled Javascript instead of compiling the application on-the-fly.
  • Managing the webhook bot using commands is now more user friendly. The help has been improved, and messages are now formatted in HTML as well as plaintext.
  • Updated the existing sample plugins to plugin API version 2.
  • Better caching of icon URLs.
  • Application responses have been made a little more descriptive. The root URL now responds with a 200, and posting invalid JSON to a webhook will generate a 400.
  • Plugin names may now contain underscores.
  • Improved error handling and loggin in various places.
  • The application service configuration file is only written to if its contents have changed. Previously, it was regenerated on each startup.

Bugfixes

  • Fixed an issue that could cause webhook requests to hang indefinitely after being processed.