# 3.32.0 / 2024-06-09 * New Features * [templating] Add `streamIsLive` function * Bugfixes * [core] Fix: Accept proper token declaration in Authorization header * [core] Fix: Include username and channel in ban errors # 3.31.0 / 2024-05-13 * Improvements * [core] Add locking to prevent concurrent rule executions * Bugfixes * [spotify] Fix: Refresh-Token gets revoked when using two functions # 3.30.0 / 2024-04-26 * New Features * [templating] Add `userExists` function * Improvements * [eventsub] Suspicious user topics were moved from beta to v1 * Bugfixes * Update dependencies # 3.29.2 / 2024-04-13 > [!IMPORTANT] > This release introduces a new configuration validation which might lead to your bot not starting as of stronger type checking of actor settings. To validate the config is fine run a validation against the config once before replacing the bot binary / Docker image: > > `./twitch-bot --storage-conn-string "file::memory:?cache=shared" -c path/to/config.yaml validate-config` > > Using the connection string shown above will use a non-persistent database and can be used while the existing bot is running. * New Features * [eventsub] Add support for suspicious user events * Improvements * [core] Enforce attribute type schema validation on config * [core] Remove deprecated fallback token / token migration * [counter] Allow `counterTopList` to specify how to sort * [counter] Record first seen and last updated on counters * [counter] Revise template parsing logic * [docs] Add field-type annotations to events * [spotify] Improve error handling / documentation * [spotify] Switch to PKCE flow, remove need for clientSecret * Bugfixes * [core] Fix: Do not retry core-kv query when it's not set * [core] Fix: Don't initialize twitch client before start checks * [eventsub] Fix: Fetching existing subscriptions broken > [!NOTE] > In case you're using the DockerHub Docker images and rely on the presence of the `stable` tag please switch to the [Github Registry](https://github.com/Luzifer/twitch-bot/pkgs/container/twitch-bot) and use the `latest` tag. Development releases are published as `develop`. The `stable` tag will not be updated beyond `v3.28.1`, DockerHub images are currently still supported but will be faded out. > [!NOTE] > Re-release of v3.29.0 as of broken tests in that release, no functional changes. # 3.29.0 / 2024-04-13 > [!IMPORTANT] > This release introduces a new configuration validation which might lead to your bot not starting as of stronger type checking of actor settings. To validate the config is fine run a validation against the config once before replacing the bot binary / Docker image: > > `./twitch-bot --storage-conn-string "file::memory:?cache=shared" -c path/to/config.yaml validate-config` > > Using the connection string shown above will use a non-persistent database and can be used while the existing bot is running. * New Features * [eventsub] Add support for suspicious user events * Improvements * [core] Enforce attribute type schema validation on config * [core] Remove deprecated fallback token / token migration * [counter] Allow `counterTopList` to specify how to sort * [counter] Record first seen and last updated on counters * [counter] Revise template parsing logic * [docs] Add field-type annotations to events * [spotify] Improve error handling / documentation * [spotify] Switch to PKCE flow, remove need for clientSecret * Bugfixes * [core] Fix: Do not retry core-kv query when it's not set * [core] Fix: Don't initialize twitch client before start checks * [eventsub] Fix: Fetching existing subscriptions broken > [!NOTE] > In case you're using the DockerHub Docker images and rely on the presence of the `stable` tag please switch to the [Github Registry](https://github.com/Luzifer/twitch-bot/pkgs/container/twitch-bot) and use the `latest` tag. Development releases are published as `develop`. The `stable` tag will not be updated beyond `v3.28.1`, DockerHub images are currently still supported but will be faded out. # 3.28.1 / 2024-04-02 * New Features * [spotify] Add `spotifyLink` template function * [templating] add `humanDateDiff` and `formatHumanDateDiff` functions * Improvements * [eventsub] Suppress error on abnormal closure and reconnect * [overlays] Lower socket abnormal closure log-level to warning * Bugfixes * [core] Update dependencies * [docs] Fix: Add missing documentation for `adbreak_begin` * [eventsub] Fix: Do not retry subscription on collision * [eventsub] Fix: Twitch renamed field in `adbreak_begin` > [!NOTE] > Re-release of v3.28.0 as of broken tests in that release, no functional changes. # 3.28.0 / 2024-04-02 * New Features * [spotify] Add `spotifyLink` template function * [templating] add `humanDateDiff` and `formatHumanDateDiff` functions * Improvements * [eventsub] Suppress error on abnormal closure and reconnect * [overlays] Lower socket abnormal closure log-level to warning * Bugfixes * [core] Update dependencies * [docs] Fix: Add missing documentation for `adbreak_begin` * [eventsub] Fix: Do not retry subscription on collision * [eventsub] Fix: Twitch renamed field in `adbreak_begin` # 3.27.0 / 2024-03-20 * New Features * [spotify] Add `spotifyCurrentPlaying` template function * Improvements * [core] Add Sentry-Environment configuration * Bugfixes * [core] Fix: Newly initialized bots crash when not authorized yet * [overlays] Fix: JOIN / PART events spamming the database # 3.26.1 / 2024-03-06 * Bugfixes * [editor] Fix: Add hypetrain events to events match dropdown # 3.26.0 / 2024-03-05 * New Features * [core] Add support for Hype-Train events * Improvements * [CI] Add Docker-Publish pipeline * [docs] Update Docker image references to GHCR # 3.25.0 / 2024-02-18 * New Features * [kofi] Add `kofi_donation` event and Ko-fi webhook handler * Improvements * [core] Remove support for `hype_chat` event # 3.24.1 / 2024-01-24 * New Features * [core] Add support for `watch_streak` event * [overlays] Add support for replaying events * Improvements * [linkcheck] Refactor: Improve wait-code * [overlays] Add WebDAV support for remote Overlay editing * Bugfixes * [ci] Lint: Update linter config, improve code quality * [core] Update dependencies * [eventsub] Fix: Log error when giving up subscription retries * [linkcheck] Fix tests broken by domain grabbers * [overlays] Fix: Do not spam logs with errors when overlay reloaded # 3.24.0 / 2024-01-24 * New Features * [core] Add support for `watch_streak` event * [overlays] Add support for replaying events * Improvements * [linkcheck] Refactor: Improve wait-code * [overlays] Add WebDAV support for remote Overlay editing * Bugfixes * [ci] Lint: Update linter config, improve code quality * [core] Update dependencies * [eventsub] Fix: Log error when giving up subscription retries * [overlays] Fix: Do not spam logs with errors when overlay reloaded # 3.23.1 / 2023-12-20 * Bugfixes * [CI] Fix: Prevent tag collision in CI # 3.23.0 / 2023-12-20 > [!NOTE] > This release slightly changes the way release binaries are packaged: The binary is now named `twitch-bot` instead of i.e. `twitch-bot_linux_amd64` within the archives. * Improvements * [editor] Improve wording and visibility for bot connection * Bugfixes * [quote] Fix: Add primary key to quote table * [eventsub] Fix: Stop subscription-retries when client is closed # 3.22.0 / 2023-12-14 * Improvements * [editor] Display clear warning when ext perms are missing * [eventsub] Make topic subscriptions more dynamic * Bugfixes * [core] Fix: Properly handle channels without credentials * [eventsub] Fix: Clean IPs from eventsub-socket read errors * [eventsub] Update field naming for ad-break, use V1 event * [twitch] Fix: Log correct error when wiping token fails # 3.21.0 / 2023-12-09 * Improvements * [raffle] Add functionality to reset a raffle # 3.20.0 / 2023-12-08 * New Features * [cli] Add database migration tooling * [raffle] Add Actor to enter user into raffle using channel-points * [templating] Add `scheduleSegments` function * Improvements * [core] Add auth-cache for token auth * [core] Parallelize rule execution * [linkdetector] Add more ways of link detection in heuristic mode * [linkdetector] Use resolver pool to speed up detection * Bugfixes * [core] Add retries for database access methods * [core] Add timeout to eventsub connection dialer * [core] Fix: Do not retry requests with status 429 * [core] Update dependencies * [eventsub] Replace keepalive timer * [raffle] Fix datatype in API documentation # 3.19.0 / 2023-10-28 > [!IMPORTANT] > This release fixes a long-standing bug in `botHasBadge` introduced in `v1.1.0` causing the function to yield a broken result. Update is therefore strongly advised! * New Features * [templating] Add function `chatterHasBadge` * [templating] Add `counterRank` and `counterTopList` functions * [core] Add support for **beta** Ad-Break event * Improvements * [core] Expose method to retrieve AppAccessToken * Bugfixes * Update dependencies # 3.18.2 / 2023-10-08 * Bugfixes * [core] Fix: New followers endpoint requires user-token # 3.18.1 / 2023-10-05 * Bugfixes * [core] Fix: Replace deprecated follow API # 3.18.0 / 2023-09-21 * New Features * [core] Add channel specific module configuration interface * [templating] Add `idForUsername` function * [templating] Add `usernameForID` function * Improvements * [core] Add `user:manage:whispers` extended scope * [core] Update go-irc to v4.0.0 * Bugfixes * [ci] Update dependencies * [raffle] Insert newly created raffles with `NULL` reminder time * Documentation * [docs] Add raffle documentation * [docs] Add raffle module as feature to start page * [docs] Fix broken preparations image * Deprecations * [core] Mark twitch-token flag / envvar deprecated * [core] Remove v2 migration # 3.17.0 / 2023-08-25 * New Features * [templating] Add `b64urldec` and `b64urlenc` functions * Improvements * [docs] Add auto-generated template documentation (#50) * Bugfixes * [ci] Remove flaky test > [!WARNING] > This marks the last release to contain code to migrate from v2.x to v3.x releases. If you are migration from an old v2 instance at a later point in time you need to migrate to this version before continuing your journey to the latest v3 release. # 3.16.0 / 2023-08-22 * New Features * [clip] Add `clip` actor * [messagehook] Add actor for Discord / Slack hook posts * [overlays] Add `sounds` overlay as default * [templating] Add `profileImage` function * Improvements * [docs] Move documentation from Wiki to docs-site (#49) * [docs] Add Apache2 config sample (thanks to @Breitling1992) * [docs] Add "VIP of the Month" example rule (thanks to @Breitling1992) * Bugfixes * [core] Fix: Clean usernames when querying user information * [editor] Add `shoutout_created` to frontend-known events # 3.15.0 / 2023-08-04 * New Features * [core] Add support for `hype_chat` event * Improvements * [eventsub] Switch to `channel.update/2` * [linkdetector] Add new option to enable heuristic scan * [twitchclient] Reduce retries and errors when banning banned user # 3.14.2 / 2023-07-21 * Bugfixes * [ban] Fix Chatcommand matching # 3.14.1 / 2023-07-16 * Bugfixes * [raffle] Fix index initialization in MySQL v8 # 3.14.0 / 2023-07-16 * New Features * Implement Raffle module (#47) * [template] Add `textAPI` function * Improvements * [ci] Update nodejs version for builds * [eventsub] Replace `IsMature` tag in channel updates * Bugfixes * [wiki] Fix example broken since v3.x # 3.13.0 / 2023-06-25 * New Features * [counter] Add `counterValueAdd` template function * Improvements * [core] Add cleanup for expired timers * [core] Clean IPs from socket errors * Bugfixes * [core] Fix missing timer configuration for permits # 3.12.0 / 2023-06-07 * New Features * [respond] Expose API route to send messages directly to chat * [template] Add `mention` function * Improvements * [eventsub] Add `status` field to `poll_end` event # 3.11.0 / 2023-05-27 * New Features * [eventsub] Add `poll_begin`, `poll_end`, `poll_progress` events * [template] Add `lastPoll` function * Improvements * [core] Reduce variance of Sentry errors containing IPs * [eventsub] Add debug logging for subscribed topics # 3.10.0 / 2023-05-21 * New Features * [eventsub] Switch to Websocket transport (#46) * Improvements * [core] Adjust logging for channel meta updates to match other events * [core] Allow case insensitive category matches * [editor] Remove character limit for AutoMessage template # 3.9.0 / 2023-05-11 * New Features * [template] Add `subCount`, `subPoints` template functions * Bugfixes * [wiki] Remove deprecated `concat` examples # 3.8.0 / 2023-04-14 * New Features * [linkprotect] Add Link-, Clip-Detector and Link-Protection actor (#42) * Improvements * [core] Add connection tuning for MySQL databases * [core] Remove "host" related functionality * [editor] Add validation for template fields * Bugfixes * [core] Fix: Message matcher matched also event content * [editor] Fix badge key-repetition for duplicated actions # 3.7.0 / 2023-03-31 * New Features * [commercial] Add `commercial` actor * [eventsub] Add `shoutout_created` event * Improvements * [core] Add validation and reset of encrypted values * [eventsub] Switch to v2 follows topic * Bugfixes * [core] Ensure channel has correct format in access service * [core] Fix: Allow start when no tokens are available * [core] Fix type warnings for Swagger documentation * [eventsub] Fix wrong channel in `shoutout_received` event # 3.6.0 / 2023-03-06 * New Features * [eventmod] Add `eventmod` actor * [eventsub] Add `shoutout_received` event * Improvements * [script] Add rule ID to error * Bugfixes * [editor] Fix number-of-lines mode causing type-error # 3.5.1 / 2023-02-08 * Bugfixes * [core] Fix: List all configured channel permissions # 3.5.0 / 2023-02-08 * New Features * [shield] Add shield mode actor * [stopexec] Add `stopexec` actor * [template] Add `recentTitle` template function * Improvements * [core] Rewrite bot token storage logic * [editor] Add new `moderator:read:followers` scope and pin follow subscription version * [editor] Notify frontend to reload data after token change * Bugfixes * [editor] Ensure updating bot token does not drop scopes * [editor] Fix Node package vulnerabilities * [editor] Fix non-optional booleans causing rules to be non-saveable * [editor] Fix: When `match_message` is cleared, remove it completely # 3.4.0 / 2023-01-27 * New Features * [shoutout] Implement actor and slash-command for shoutout API * Improvements * [editor] Add notification in case bot is missing default-scopes # 3.3.0 / 2023-01-07 * Bugfixes * [core] Fix: Remote-update cron broken as of missing field * New Features * [log] Add `log`-actor * [template] Add `doesFollow` and `doesFollowLongerThan` functions * [templating] Add `followAge` function * Improvements * [customevent] Add scheduled events to API handler # 3.2.1 / 2022-12-24 * Bugfixes * [twitch] Fix: Pagination fetching broken for eventsub subscriptions # 3.2.0 / 2022-12-22 * New Features * Add fine-grained permission control for extended channel permissions (#35) * [twitch] Implement `AddChannelVIP`, `RemoveChannelVIP` * [vip/unvip] Implement actors and chat commands * Improvements * [core] Add content-type detection for remote rule subscriptions * [core] Add retries for eventsub-self-check * [core] Add validation for rule UUIDs to be unique * [core] Allow plugins to evaluate whether permissions are available # 3.1.0 / 2022-11-24 * New Features * [core] Add Sentry / GlitchTip error reporting # 3.0.0 / 2022-11-02 **⚠ Breaking Changes:** - Backend storage format has been switched from JSON-file to database. Migrations must be run before use of `v3.x` version. See [README](https://github.com/Luzifer/twitch-bot#upgrade-from-v2x-to-v3x) for instructions. - Some template function have been migrated to a new function collection. See [migration section of Templating documentation](https://github.com/Luzifer/twitch-bot/wiki/Templating#upgrade-from-v2x-to-v3x) for required changes. **Changelog:** * New Features * [core] Add config validation command * [core] Add rule-subscription feature * [core] Add `outbound_raid` event * [customevent] Add scheduled custom events * [templating] Add `jsonAPI` template function * Improvements * [core] Move storage to database (#30, #32) ⚠ * [core] Allow to pass ID to channel modification * [core] Extend API and replace deprecated chat commands (#34) * [editor] Add all template functions to highlighter * [overlays] Add `hide` option to debug overlay * [templating] Add sprig functions, replace some built-ins ⚠ * Bugfixes * [core] Fix: Allow 5s for rule updates # 2.7.1 / 2022-09-06 Bugfix release, repeating `v2.7.0` changelog as of broken release. * New Features * [template] Add `randomString` template function * Improvements * [core] Make number of subscribed months available for subgift * [security] Add mitigation for slowloris DoS attack vector * Bugfixes * [msgformatter] Fix: Trim leading / trailing spaces * [ci / lint] Fix missing CI tooling, fix linter errors # 2.7.0 / 2022-09-03 * New Features * [template] Add `randomString` template function * Improvements * [core] Make number of subscribed months available for subgift * Bugfixes * [msgformatter] Fix: Trim leading / trailing spaces # 2.6.0 / 2022-07-15 * New Features * [editor] [#18] Add editor for `disable_on_match_messages` * [template] Add `inList` function * [template] Add "mod" function for modulo in templating * Improvements * [core] Expose user\_id in events * [editor] Add explanatory hint for exceptions * Bugfixes * [editor] Fix: Token badges had no spacing # 2.5.0 / 2022-06-06 * Improvements * [core] Add multi\_month parameter parsing for subs # 2.4.0 / 2022-05-07 * Improvements * [editor] [#23] Add confirmation for delete buttons * [editor] [#25] Allow searching in / sort rules * Bugfixes * [core] Fix: Notify event handlers before rules to prevent delays * [editor] [#28] Fix: Allow saving with empty optional duration * [editor] Fix: Remove asymmetric margin from buttons * [modchannel] [#26] Fix: Modify channel module not working for editor-bots (#27) # 2.3.0 / 2022-04-22 * New Features * [core] Add more mathematical functions for templating * [customevent] Add API module and actor to create custom events * [filesay] Add FileSay actor to "paste" files with commands * [msgformat] Add module to retrieve filled template through API * [overlays] Add overlays server with some example templates and library * Improvements * [core] Add `delete` event for deleted chat messages * [core] Add `origin_id` to subgift / submysterygift events * [core] Add support for `annoumcement` event type * [core] add `total_gifted` field for gifts, use numeric values for some fields * [core] Provide message in `announcement`, `bits` and `resub` events * [counter] Add template support for counter step * [counter] Remove stored counter value on zero value * [editor] Add bot version to frontend * [editor] Improve location of permission warning * [timeout] [#15] Allow timeout reason to be set * Bugfixes * [ban] Fix: Add missing API docs * [core] Delete refresh token only for HTTP errors, not on connection issues * [core] Fix: Accept 1s cooldown, fix user and channel cooldowns * [core] Fix: EventSub messages had misformatted channel * [core] Fix: Handle unauthorized error for app-access-tokens * [core] Fix: Raid viewercount should be numeric, not string * [core] Re-check token validity more often than on expiry * [editor] [#19] Validate durations when checking for invalid rules * [editor] [#20] Fix: Strip query parameters from redirect uri * [editor] Fix node package vulnerability / update dependencies * [editor] Fix: Upgrade contains a header send, error must not send headers * [status] Fix: Add missing API docs # 2.2.0 / 2022-01-16 * [ci] Make installed go binaries available during build * [core] Add deprecated but still used V5 ChannelEditor scope * [core] Add EventSub subscription prefetching * [core] Add "follow" event using EventSub * [core] Add handling for channel point rewards * [core] Do not retry POST requests automatically * [core] Fix: Event data was not available in rule templates * [core] Implement dynamic token update and broadcaster permissions (#13) * [core] Improve EventSub API request design * [docs] Update README * [editor] Display disconnected status instead of error * [editor] Fix follow-redirects vulnerability (CVE-2022-0155) * [editor] Prevent adding invalid usernames as channel / editor # 2.1.0 / 2021-12-24 * [automessage] Add disable switch * [ban] Add HTTP API route for banning users * [core] Add status / health check API * [core] Fix: send-message function passed to plugin was nil * [core] Fix: Strip newlines from message templates * [core] log bits from chat message * [editor] Fix: Removing cooldown resulted in save error * [editor] Rework to use esbuild / Vue component files (#12) # 2.0.0 / 2021-12-03 * [ban] Enable templating for ban reason * [core] Add `giftpaidupgrade` event * [core] **BREAKING:** Allow actors to set fields those after them (#11) * [core] Fix: Set channel for incoming host through jtv message * [core] Handle host announce messages from jtv user * [lint] Properly format inputs * [templating] Add `multiply` and `seededRandom` template functions # 1.6.0 / 2021-11-11 * [core] Add `ban`, `clearchat` and `timeout` events * [core] Add EventSub support for Twitch-Events (#10) * [core] Add moderator badge to broadcasters * [core] Prevent logging every PING message # 1.5.0 / 2021-11-04 * [nuke] Add new moderation module # 1.4.0 / 2021-10-25 * [core] Allow the bot to track config editor changes through Git * [core] Implement write authorization for APIs (#9) * [editor] Cleanup config by removing invalid / zero attributes * [openapi] Allow multiple mime-types on single route * [plugins] Move missing plugin-dir warning to debug level * [quotedb] Add simple page to list quotes # 1.3.0 / 2021-10-22 * [core] Add "bits" event * [core] Add `streamUptime` / `formatDuration` template functions * [core] Add submysterygift event, add more event data to events * [core] Add username fields to events * [core] Remove unused subscribed\_months field from subgifts * [openapi] Allow subdir serving * [quotedb] Add new actor * [respond] Fix: Broken condition for fallback message * [respond] Fix: Empty string fallback should not count as fallback * [respond] Log message template errors even when fallback is set # 1.2.0 / 2021-10-08 * [core] Log submysterygift * [automessage] Move spammy message to trace-level * [core] Improve logs for USERNOTICE events * [editor] Add description to "Add Action" form group * Add "punish", "reset-punish" actors and storage manager (#8) # 1.1.0 / 2021-10-01 * [templating] Add `botHasBadge` function * [editor] Mark fully disabled rules in list # 1.0.0 / 2021-09-22 * Breaking: Add configuration interface and switch to more generic config format (#7) # 0.18.0 / 2021-09-17 * [script] Allow to skip cooldown on script error * [modchannel] Add modchannel core module * [core] Break actions execution when one action fails * [core] Transform broadcaster name into ID * [core] Add category search and channel update * [core] Expose GetIDForUsername function * [core] Expose TwitchClient to plugins * [core] Add fallback support to group template matches * [respond] Support sending message to different channel * [core] Reduce cache time for stream info * [core] Add Twitch events * [core] Add registration for raw-message-handlers # 0.17.0 / 2021-08-28 * Create API for counter and setvariable modules * Provide HTTP server and registration function * Provide central cron service to plugins # 0.16.0 / 2021-08-21 * Update dependencies and bring plugin example to work with master * Lint: Ignore gocritic for fatal program exit not running unlock * Move to Go1.17 mod-file, update dependencies * Disable CGO for default container * Allow plugins to register template functions * Add plugin support to allow extending of functionality (#6) * Add support to disable cooldown through the action module * Add method to send messages from within the bot without trigger * Add validation mode for config # 0.15.0 / 2021-06-30 * Wiki: Add example for generic chat-addable commands * Add support for dynamic variables * Lint: Update linter list, disable gomnd for some lines * Move timers to storage to persist them * Fix: Set channel for more events # 0.14.0 / 2021-06-17 * Fix: JSON is not able to decode `2s` but `2` which is ns instead of s * Add concat template function * Disable auto-messages in non-observed channels * Automatically leave channel when removed from config # 0.13.0 / 2021-06-13 * Use more flexible Actor format to allow addition of new actors (#5) * Add user- and channel-based cooldowns (#4) * Fix: ID generation handling different automessages as same * Fix: Do not try to log functions * Fix: Do not access automessage attributes without lock # 0.12.0 / 2021-06-05 * Add "respond as reply" functionality # 0.11.0 / 2021-06-02 * Add retries to Twitch API calls # 0.10.0 / 2021-05-27 * Add Whisper / RawMessage actions * Add `whisper` event # 0.9.0 / 2021-05-26 * Add `part` event * Allow to disable automessages with templates * Add global variables to be used in templates * Add Disable and DisableOnTemplate attributes for rules * Drop HCL support (causes too much effort for too little benefit) # 0.8.0 / 2021-05-24 * Fix: Display fallback when no category is set in `recentGame` * Add displayName template function * Replace non-reliable fsevents library with simple check * Add HCL config format support # 0.7.0 / 2021-05-13 * Lint: Disable requirement for crypto/rand for time randomizer * Add delay-action # 0.6.0 / 2021-05-12 * Add sub events, document available event types # 0.5.0 / 2021-05-11 * Fix: Unlock auto-messages to prevent dead-locks * Log amount of loaded rules on (re)load * Support templating in automessages # 0.4.1 / 2021-05-06 * Include tzdata into Docker image to allow TZ env setting * Update README for new flags # 0.4.0 / 2021-04-22 * Introduce general send limit to prevent global-timeouts # 0.3.0 / 2021-04-21 * Extract template functions into registry * Lint: Reduce complexity of loadConfig function * Add raw-log functionality * Add a delay while joining channels # 0.2.0 / 2021-04-04 * Add instructions for token generation * Add GH page to generate token # 0.1.0 / 2021-04-03 * Initial release