Commit Graph

14 Commits

Author SHA1 Message Date
Gabriel Grubba 3f8b67d1c1
Feature: add chat integration reference post (#216)
* 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>
2024-09-11 10:42:52 -03:00
Gabriel Grubba 57b460737c
FEATURE: add topic tags changed trigger to chat integration (#208)
* 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
2024-08-13 15:14:35 -03:00
Loïc Guitaut 18fb988442 DEV: Add compatibility with Rails 7.1 2024-06-06 16:31:26 +02:00
Ted Johansson 481dc797a8
DEV: Replace #pluck_first monkey patch with native #pick (#166) 2023-05-09 10:47:42 +08:00
David Taylor 0522ad6414
FIX: Always use parent thread_ts for slack threads (#159)
Previously we were using the `ts` of the previous message we sent to the thread. While this did work under some situations, it's not recommended in the Slack API docs, and can lead to some unexpected behavior (e.g. when one of the threaded messages is deleted).

This commit updates our logic to always use Slack's returned `thread_ts`, which represents the thread's parent.
2023-01-26 12:18:48 +00:00
David Taylor 49956bf829
DEV: Introduce syntax_tree for ruby formatting (#149) 2022-12-29 13:31:05 +01:00
David Taylor 820d04d1b2
SECURITY: Improve SSRF protections (#144)
See https://github.com/discourse/discourse/security/advisories/GHSA-rcc5-28r3-23rr
2022-11-01 17:36:56 +00:00
David Taylor 157f3e910d
FIX: Respect core settings when rendering user names/usernames (#129)
This commit centralizes 'display name' generation into a helper, and updates it to respect core preferences for `enable_names` and `prioritize_username_in_ux`.
2022-05-30 17:13:55 +01:00
David Taylor cd6e4a8b62
FEATURE: Allow `[quote]` to be disabled for slack transcripts (#120)
https://meta.discourse.org/t/222145
2022-04-01 13:49:34 +01:00
David Taylor d63477fec0
FIX: Use correct identifier in transcript thread hint (#115)
We were using the internal UID of the channel in the hint, which would then fail to match any 'channel' configs in Discourse (which use the human-friendly `#channel` format). This was causing automatic threading for transcripts to fail.
2022-03-21 16:03:23 +00:00
David Taylor 20f0b1c6ce
DEV: Cache slack users list for 10 minutes (#113)
This should help to avoid Slack API rate limiting in very large slack communities
2022-03-15 13:32:28 +00:00
Blake Erickson 0eebd9f3ed
DEV: Adds post_to_slack scriptable for automation (#108)
This allows for the discourse automation plugin to have a "Send Slack
Message" script.

The script fields are a message, url, and slack channel. This will allow
for a custom slack message to be posted but can link back to an
arbitrary url (hopefully a discourse url) like a list of unanswered
topics instead of strictly only allowing a slack message that links back
to a Discourse Post object.
2022-02-25 12:17:20 -07:00
David Taylor 6e7fa8ebd1
FIX: Store slack thread_ts on a per-channel basis (#95)
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.
2021-12-02 14:29:06 +00:00
Mark VanLandingham a73f5da114
Rename DiscourseChat to DiscourseChatIntegration (#82) 2021-07-13 14:36:16 -05:00