All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- build: adds dependabot config.
- build: bumps JRE to 8u345.
- build: bumps simple-slack-api to 1.4.0.
- build: excludes mysql unneeded h2 transitive dependency.
- build: bumps mysql connector version.
- test: pins redis version.
- test: pins rundeck version.
- build: bumps testcontainers to 1.17.5.
- build: bumps kluent to 1.64.
- build: bumps exposed to 0.17.14.
- build: bumps log4j2 dependency.
- build: bumps Gradle to 6.9.1 and Kotlin to 1.7.10.
- ci: removes CircleCI config.
- ci: adds GitHub actions config.
- Items backend will use the claim owner's full name if the current session can't resolve it.
- Removes Slack backend. In future, use HTTP backend and Slack Gateway instead.
- Falls back to user ID if username cannot be found.
- Adds more template aliases for items backend.
- Enables channel names to be specified using regular expressions.
- Allows job status check polling interval to be configured.
- Supports Jenkins job names containing slashes, such as multibranch builds.
- Fallback to username, then user ID if Slack user information is incomplete.
- Bumps Slack API version to handle channel rename event correctly (fixes #54).
- Adds HTTP bot.
- Adds Slack backend.
- Adds a RESTful API store.
- Adds a store implementation that mirrors writes to the backing store to another, separate, store implementation.
- Allows chat service implementations to indicate support for user termination.
- Adds the ability to start with an empty action configuration.
- Allows version placeholder to be used in plugin files.
- Moves plugins to single directory.
- Changes Maven artifact names for plugins.
- Fixes action invocation with empty options map.
- Improves specification coverage.
- Publishes latest Maven artifacts.
- Adds support for plugins loaded dynamically at startup.
- Adds new 'generic-bot' distribution, configurable using the plugins YAML format.
- Fixes a bug in the MySQL store where updates to existing items were discarded.
- Added ability to trigger parameterless jobs in Jenkins (thanks DrColza).
- Adds system configuration for customisation of request and action defaults, and default action options.
- Adds option status action.
- Upgrades Gradle, Kotlin and Jackson versions.
- Improves API path composition, including Jenkins and Rundeck endpoints other than at the root of a domain.
- Improves error status logging.
- Improves option handling.
- Don't post channel join message on reconnection.
- Adds a work-around for a message de-duplication bug in the Slack library.
- Adds a bot to allow simple borrow/return of items.
- Adds a new 'items' backend.
- Makes join message conditional.
- Adds MySQL store.
- Now supports multiple templates.
- Internal structural improvements to support multiple back-end or front-end implementations.
- Improved specification coverage.
- Externalised templates to allow messages to be changed.
- Trims message content prior to parsing.
- Adds support for external data stores. This includes things like action locks and option locks, but can support other types in future.
- Adds in-memory data store implementation, which is the default.
- Adds Redis data store implementation.
- Adds the ability to trigger the bot from a thread, as well as reply to triggers within a thread (thanks Anojan Sivarajah).
- Externalises chat lines to a configuration file.
- Skip messages with null content.
- Fixes non-trigger events being sunk in action drivers.
- Only run as trigger user if explicitly set in action configuration.
- Improves Jenkins error handling when obtaining CSRF token.
- Adds ability to run a Rundeck job as the initiating Slack user (thanks Anojan Sivarajah).
- Adds ability to show Rundeck job output in chat (thanks Anojan Sivarajah).
- Adds ability to handle spaces in arguments using quotes; Rundeck driver only (thanks Anojan Sivarajah).
- Adds CircleCI configuration.
- Adds a number of extension points.
- Adds Maven publishing configuration.
- Bumps Gradle version. Bumps Kotlin version.
- Internal structural improvements.
- Adds changelog (this file!)
- Fixes template resolution when more than one candidate remains but one is already satisfied.
- Removes ‘roles’ from being mandatory in custom security configuration.
- Adds grouped action start/complete messages.
- Sends join message on connection.
- Permit commands ending with colon after bot persona ID.
- Adds timeout to queued item check.
- Adds lockable option values.
- Sorts action templates by name in help.
- Makes user-specified options override static values.
- Stops printing usage on receipt of unknown command.
- Adds Jenkins driver. Includes support for triggering jobs, queued items and status polling.
- Moves common driver functionality into shared modules.
- Factors out Rundeck support into separate driver module.
- Supports Jenkins instances with CSRF enabled or disabled.
- Makes trigger template matching case insensitive.
- Adds option transformers.
- Allows roles to be restricted by tag.
- Enables listening to multiple channels.
- Adds user and role authorisation framework.
- Adds 'help' action.
- Caches configuration for improved performance.
- Adds support for multiple action commands, using tags.
- Polls for job status and reports back to channel.
- Adds basic lock and unlock.
- Adds enable/disable (requires correct ACL).
- Adds status action.
- Initial release.
- Rundeck support.
- Slack bot integration.