All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
- Simplify logic check for creation event in
DroneWebhook
- Bumped minimum supported Node version to v20.9.0
- Wrong definition of
UserAuthResponse
holdinguid
asstring
instead ofnumber
- Update API URLs to match changes in Tentacles codebase
- Use more compatible User-Agent for link fetcher
- New
HTTP_BIND
andECHO_BIND
environment variables to control where bot listens for these events
- Webhook URLs (
/ci
and/git
) are now/webhook/drone
and/webhook/gitea
, respectively
- Webhooks not listening on IPv6 by default
- Trim commit length to 10 characters instead of 9
- Bumped minimum supported Node version to v18.12.0
- User command regexp catching partial input beggining with
!u
(such as!uque
)
- Simple authentication scheme to Echo requests
- Alias
!u
for!user
command
- Gracefully handle errors from Echo socket
- Node requires package.json to understand that its working with ESM
- Produce ESM package
- Replace usage of deprecated substr with substring
- Remove unnecessary non-capturing groups in ENTER/IDENTIFY RegExp
- Validate URLs before attempting to fetch link title
- Remove Alpine >= 3.13 restriction
- Use specific User-Agent; link fetcher now uses
kana/2.0 (got [Link]) like Twitterbot/1.0
whileABClient
useskana/2.0 (got [ABClient])
- Bumped minimum supported Node version to v16.13.0
- Bumped TypeScript target to ES2021
- Force usage of Alpine 3.13 in Dockerfile
- Simplify URL regex for matching links (this fixes some edge cases where link would be only partially parsed)
- Remove
127.0.0.1
andanimebyt.es
from disallowed links
- Fixed broken test "Does not fetch or respond if there are more than 3 links in the message" which would always pass due to typo
- Print command on succesful execution of
IDENTIFY
command - Customize error messages
- Special
IDENTIFY <username> <key>
command to set ident/host without joining any channel
- Support for TypeScript 4.1
!dess
,!nana
and!metanoia
- Bumped minimum supported Node version to v14.15.0
- Bumped TypeScript target to ES2020
- Reverted
htmlparser2
to4.1.0
to fix HTML entity decoding in<title>
(fb55/htmlparser2#592)
No changes; updated dependencies
- Work around
got
redirection mechanism (sindresorhus/got#1271 sindresorhus/got#1307)
- Switched from
node-fetch
togot
- Work around
node-fetch
issues to avoid leaking memory on aborted link fetching
- Ignore more binary extensions from link title resolving
- Use Twitterbot-like User-Agent for link title resolving
(
kana/2.0 (node-fetch) like Twitterbot/1.0
)
- Trim commit SHA1 hash in compare URLs from webhooks
- Space usernames and git branch from webhooks with
\u200B
to avoid higlighting users on IRC - Automatically rejoin persistent channels on IRC
- Remove non-persistent channel from configuration when bot parts from it
- Do not set default key for GIT_WEBHOOK on runtime, only for tests
- Do not set default key for SITE_API_KEY on runtime
- Default bot name to
kana
instead oftestbot
- Always return JSON object as reply to webhook
- Add prefix with date and level to log messages
- Use
chalk
to color logs when possible - Split logger between modules
- Create
channels.json
if it does not exist - Handle and log errors in
performDess
- Do not start if
channels.json
is malformed to avoid overwriting it later
- Less verbose logging for stats collection
- Better logging of connection message
- Allow to search via IRC nick exclusively by prefixing it with
@
in!user
- Only fetch title for unique links
- Only fetch link title for messages with maximum of 3 links in them
- Branch name fetching from inconsistent Gitea webhook events
- Parse and fetch titles for multiple links in messages
- Do not print whole response body on HTTP error
- Handle SIGTERM in addition to SIGINT
- Sanitize content from
<title>
inparseTitle
- Ability to use IRC nick for
!user
- Build source map for easier debugging
- Persistent channels state on disk with
channels.json
- SIGINT handler for shutting down bot
- Signature verification for webhooks
- Properly trim usernames for
!user
- Handle newlines in
echo
listener
- Better error handling
- Initial TypeScript rewrite