* FEATURE: Add chat integration reference post
This class works similar to a post but it is not a post.
* DEV: change how `excerpt` method works
* feature: Add `send_chat_integration_message` scriptable
add `send_chat_integration_message` scriptable that uses the rules to send a message to the chat provider
add locale strings for the new scriptable
update `ChatIntegrationReferencePost` `excerpt` method
add tests for `ChatIntegrationReferencePost`
* DEV: Add `get_channel_by_name` to every provider
This makes using `trigger_notification` easier with every provider as well.
* DEV: Add `get_channel_name` to all providers
This method gets the name of the channel based on how the provider identifies it.
Updates channel_name in locales yaml
Adds migrate_tag_added_filter_to_all_providers.rb to move all existing rules to use Automation
* DEV: Add removal of old migration data
Update small action locales with strings from core
* DEV: solve review comments
* DEV: update test locale strings
* DEV: remove empty line to trigger lint
* DEV: lint applied
* DEV: Add tests for automation integration
* DEV: add rails logger for when automatio error occurs
* DEV: move migration to be SQL only
Update provider helper to use hashes instead of dot notation
* DEV: update migration with correct table names
* DEV: Update migrate_tag_added_filter_to_all_providers to use smaller SQL queries
Commented out migrate_tag_added_from_filter_to_automation.rb
* DEV: update comments in migration file
* DEV: update indentation in client.en.yml
* DEV: update with review comments
* Update spec/lib/discourse_chat_integration/chat_integration_reference_post_spec.rb
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
* Update spec/lib/discourse_chat_integration/chat_integration_reference_post_spec.rb
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
* Update spec/lib/discourse_chat_integration/chat_integration_reference_post_spec.rb
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
* Update spec/integration/automation_spec.rb
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
* Update lib/discourse_chat_integration/chat_integration_reference_post.rb
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
* DEV: update specs with review comments
* DEV: update typos in tests
* DEV: inlined functions for getting channel name for provider in migration
---------
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
* FEATURE: add topic tags changed trigger to chat integration
* FEATURE: add placeholder for reply to topic trigger
add description on how to use the placeholder
* DEV: Move slack message creation to provider
Add tests to new method
* FEATURE: add ${URL} to placeholder replacements and added tags link
If triggered when a topic tag is changed, message behavior will follow what user defined in message.
* DEV: Update tests with tags
* DEV: add post to topic for testing
* DEV: update test strings
* DEV: add early return for topic tags changed trigger
* DEV: move early return to use try/catch
* DEV: update `create_slack_message` to not send a tuple of values
* DEV: refactor method to be more readable
* FEATURE: add `${ADDED_AND_REMOVED}` for default texts
* DEV: Update typo in test
* DEV: Add tests to check when if `create_slack_message` raises an error
* DEV: Remove the `tag_added` from chat-integration filter
Added migration to handle the migration of the `tag_added` filter from the chat-integration plugin.
Only removed the logic from the plugin, data removal will happen in a future PR
* DEV: lint migration file
* DEV: update chat-integration to not show "tag_added" rules
* DEV: update added and missing tags logic
* DEV: update context variable name
* DEV: update migration to include `begin/rescue` block and added a list with available filters
When notifications about a topic are posted to multiple slack channels, and the Discourse channels are configured to "thread" the notifications, each channel will have a different thread_id. Previously we were only storing a single slack thread id per Discourse topic. This commit fixes that logic, so that threads in different channels are tracked separately.