Commit Graph

463 Commits

Author SHA1 Message Date
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
Discourse Translator Bot ac44465a60
Update translations (#209) 2024-08-13 16:31:15 +02:00
dependabot[bot] 38ad00d8aa
Bump rexml from 3.2.8 to 3.3.3 (#207)
Bumps [rexml](https://github.com/ruby/rexml) from 3.2.8 to 3.3.3.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/rexml/compare/v3.2.8...v3.3.3)

---
updated-dependencies:
- dependency-name: rexml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 13:17:51 +02:00
Natalie Tay 36f33791c0
DEV: Pin plugin for Discourse < 3.4.0.beta1-dev (#206) 2024-08-02 17:05:19 +08:00
Discourse Translator Bot e19808d4ad
Update translations (#205) 2024-07-31 00:14:10 +02:00
dependabot[bot] efa1e68325
Bump braces from 3.0.2 to 3.0.3 (#203)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-16 22:31:42 +02:00
Discourse Translator Bot d229558f12
Update translations (#202) 2024-06-11 17:20:11 +02:00
Ted Johansson 4a11d27982
FIX: Move chat integration problem check message to correct locale key (#201)
As part of enhancing problem checks and admin notices, we standardized the location of the problem check messages' locale keys. However, we overlooked this one in the plugin, resulting in a missing translation on the dashboard.

This PR puts the locale key in the place expected by the admin notice system.
2024-06-11 17:42:45 +08:00
Loïc Guitaut 18fb988442 DEV: Add compatibility with Rails 7.1 2024-06-06 16:31:26 +02:00
Discourse Translator Bot a92b4cfc28
Update translations (#199) 2024-05-31 12:27:13 +02:00
Jarek Radosz 27af3e6368
DEV: Don't use two-way args of ChooseTopic (#197) 2024-05-28 15:56:58 +02:00
Loïc Guitaut a8363fb2fa
DEV: Update rubocop-discourse to version 3.8.0 (#198) 2024-05-28 11:16:00 +02:00
Ted Johansson 23d5dd2eab
FIX: Move GroupMe error message to server side translations (#196) 2024-05-24 21:51:51 +08:00
Ted Johansson cbdac03a84
FIX: Add missing dummy translations for tests (#195)
This change copies the translations from the Slack provider to the dummy provider in the test so we're testing real values.
2024-05-24 20:14:03 +08:00
dependabot[bot] 8b6e02af9c
Bump rexml from 3.2.6 to 3.2.8 (#194)
Bumps [rexml](https://github.com/ruby/rexml) from 3.2.6 to 3.2.8.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/rexml/compare/v3.2.6...v3.2.8)

---
updated-dependencies:
- dependency-name: rexml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-16 23:55:25 +02:00
Isaac Janzen 8b8a6ae8af
Revert "Revert "DEV: Explicitly register problem check (#191)" (#192)" (#193)
Reverts discourse/discourse-chat-integration#192

Reimplement https://github.com/discourse/discourse-chat-integration/pull/191 as the Discourse Core CI issue was unrelated.
2024-04-03 14:51:19 -06:00
Isaac Janzen 048e8d595a
Revert "DEV: Explicitly register problem check (#191)" (#192)
Reverts discourse/discourse-chat-integration#191

This is causing Discourse Core CI to fail, so reverting for now.

```
	64: from bin/rake:13:in `<main>'
	63: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:80:in `run'
	62: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:208:in `standard_exception_handling'
	61: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:83:in `block in run'
	60: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:132:in `top_level'
	59: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:147:in `run_with_threads'
	58: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `block in top_level'
	57: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `each'
	56: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:138:in `block (2 levels) in top_level'
	55: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/application.rb:182:in `invoke_task'
	54: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:188:in `invoke'
	53: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `invoke_with_call_chain'
	52: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `synchronize'
	51: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
	50: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:241:in `invoke_prerequisites'
	49: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:241:in `each'
	48: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:243:in `block in invoke_prerequisites'
	47: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `invoke_with_call_chain'
	46: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `synchronize'
	45: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
	44: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:241:in `invoke_prerequisites'
	43: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:241:in `each'
	42: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:243:in `block in invoke_prerequisites'
	41: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `invoke_with_call_chain'
	40: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:199:in `synchronize'
	39: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
	38: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `execute'
	37: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `each'
	36: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.1.0/lib/rake/task.rb:281:in `block in execute'
	35: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/application.rb:506:in `block in run_tasks_blocks'
	34: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/application.rb:348:in `require_environment!'
	33: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.13/lib/zeitwerk/kernel.rb:34:in `require'
	32: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
	31: from <internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
	30: from <internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
	29: from /__w/discourse/discourse/config/environment.rb:7:in `<main>'
	28: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/application.rb:372:in `initialize!'
	27: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/initializable.rb:60:in `run_initializers'
	26: from /usr/local/lib/ruby/3.2.0/tsort.rb:205:in `tsort_each'
	25: from /usr/local/lib/ruby/3.2.0/tsort.rb:226:in `tsort_each'
	24: from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `each_strongly_connected_component'
	23: from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `call'
	22: from /usr/local/lib/ruby/3.2.0/tsort.rb:347:in `each'
	21: from /usr/local/lib/ruby/3.2.0/tsort.rb:349:in `block in each_strongly_connected_component'
	20: from /usr/local/lib/ruby/3.2.0/tsort.rb:431:in `each_strongly_connected_component_from'
	19: from /usr/local/lib/ruby/3.2.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
	18: from /usr/local/lib/ruby/3.2.0/tsort.rb:228:in `block in tsort_each'
	17: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/initializable.rb:61:in `block in run_initializers'
	16: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/initializable.rb:32:in `run'
	15: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/initializable.rb:32:in `instance_exec'
	14: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/application/finisher.rb:87:in `block in <module:Finisher>'
	13: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8.1/lib/active_support/lazy_load_hooks.rb:75:in `run_load_hooks'
	12: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8.1/lib/active_support/lazy_load_hooks.rb:75:in `each'
	11: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8.1/lib/active_support/lazy_load_hooks.rb:76:in `block in run_load_hooks'
	10: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8.1/lib/active_support/lazy_load_hooks.rb:90:in `execute_hook'
	9: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8.1/lib/active_support/lazy_load_hooks.rb:85:in `with_execution_control'
	8: from /__w/discourse/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8.1/lib/active_support/lazy_load_hooks.rb:92:in `block in execute_hook'
	7: from /__w/discourse/discourse/config/application.rb:239:in `block in <class:Application>'
	6: from /__w/discourse/discourse/lib/plugin.rb:6:in `initialization_guard'
	5: from /__w/discourse/discourse/config/application.rb:239:in `block (2 levels) in <class:Application>'
	4: from /__w/discourse/discourse/config/application.rb:239:in `each'
	3: from /__w/discourse/discourse/lib/plugin/instance.rb:555:in `notify_after_initialize'
	2: from /__w/discourse/discourse/lib/plugin/instance.rb:555:in `each'
	1: from /__w/discourse/discourse/lib/plugin/instance.rb:557:in `block in notify_after_initialize'
/__w/discourse/discourse/plugins/discourse-chat-integration/plugin.rb:25:in `block in activate!': undefined method `register_problem_check' for #<Plugin::Instance:0x00007f1a7c7491e8 @metadata=#<Plugin::Metadata:0x00007f1a80b4de98 @name="discourse-chat-integration", @about="Allows integration with several external chat system providers", @meta_topic_id=66522, @version="0.1", @url="https://github.com/discourse/discourse-chat-integration">, @path="/__w/discourse/discourse/plugins/discourse-chat-integration/plugin.rb", @idx=0, @enabled_site_setting=:chat_integration_enabled, @assets=[["/__w/discourse/discourse/plugins/discourse-chat-integration/assets/stylesheets/chat-integration.scss", nil, "discourse-chat-integration"]], @directory_name="discourse-chat-integration", @initializers=[#<Proc:0x00007f1a7aea3058 /__w/discourse/discourse/plugins/discourse-chat-integration/plugin.rb:20>], @styles=[], @javascripts=[], @locales=[], @service_workers=[], @seed_data={}, @extra_js_file_path="/__w/discourse/discourse/app/assets/javascripts/plugins/discourse-chat-integration_extra.js", @asset_filters=[], @color_schemes=[]> (NoMethodError)

** INCOMPATIBLE PLUGIN **

You are unable to start Discourse due to errors in the plugin at
/__w/discourse/discourse/plugins/discourse-chat-integration
```
2024-04-03 13:37:52 -06:00
Ted Johansson 05a0a32a47
DEV: Explicitly register problem check (#191) 2024-04-03 14:17:10 +08:00
Ted Johansson f0275f1591
DEV: Promote channel error check to ProblemCheck (#190)
We're promoting problem checks to first class citizens in core. This migrates the problem check to the new API.

In the process of adding tests for this check, I discovered what seems like a mistake that likely means this check never worked until now. (See inline comment.)
2024-03-15 13:21:11 +08:00
Loïc Guitaut 0badc2bc22 DEV: Fix linting 2024-03-05 15:57:30 +01:00
Loïc Guitaut 4f737df97e
DEV: Fix new Rubocop offenses (#188)
* DEV: Fix new Rubocop offenses

---------

Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2024-03-04 16:01:07 +01:00
Selase Krakani 5c8408e58b
DEV: Pin plugin for Discourse < 3.3.0.beta1-dev (#187) 2024-02-29 13:50:41 -07:00
Discourse Translator Bot 2e17b03e9a
Update translations (#186) 2024-02-06 22:35:30 +01:00
Martin Brennan b010208e4f
DEV: Fix admin setting category translation (#185)
Needs to be in admin_js not js
2024-02-05 12:43:04 +10:00
Jarek Radosz 2b03d227fa
DEV: Update linting (#183) 2024-01-15 11:20:35 +00:00
Ted Johansson d1e9f00883
DEV: Update test setup to work with auto groups (#184)
We're updating core to change TL based access settings to be group based. This requires some updates of tests to work correctly. (The existing test setup gives false positives.)
2024-01-15 17:31:06 +08:00
Jarek Radosz 30ac835e1d
FIX: Form validation bugs, new modal api, glimmer (#182) 2023-12-11 20:00:34 +01:00
Jarek Radosz bc81d30dc8
DEV: Update linting (#181) 2023-11-29 23:01:31 +01:00
David Taylor bd9bf836ad
DEV: Resolve router deprecation and only load assets for admin (#180) 2023-11-27 12:45:21 +00:00
David Taylor 3860d82625
FIX: Update transcript handling following core updates (#179) 2023-11-27 12:04:54 +00:00
Martin Brennan a6dfc289a4
DEV: Metadata update for plugin.rb (#178)
* Adding Meta Topic ID

* Updating about metadata

---------

Co-authored-by: AlexDev <104522507+alexdevlaeminck@users.noreply.github.com>
2023-11-08 11:27:54 -08:00
dependabot[bot] ec07c53224
Bump @babel/traverse from 7.20.10 to 7.23.2 (#177)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.20.10 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-18 12:37:04 -04:00
Discourse Translator Bot 4f9ccb58ca
Update translations (#176) 2023-08-29 15:50:36 +02:00
Discourse Translator Bot 6aea2589bb
Update translations (#175) 2023-08-23 09:29:24 +02:00
Penar Musaraj 4a3950b604
DEV: Pin plugin for Discourse 3.1 stable (#174) 2023-08-22 13:46:15 -05:00
Loïc Guitaut 70fea6b66b DEV: Promote historical post-deploy migrations 2023-07-26 10:37:17 +02:00
dependabot[bot] 71706dc27c
Bump word-wrap from 1.2.3 to 1.2.4 (#171)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-19 01:30:58 +02:00
dependabot[bot] d803fcb621
Bump semver from 6.3.0 to 6.3.1 (#170)
Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v6.3.1/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v6.3.1)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-11 10:36:59 +02:00
Mark Doerr 6cb67cda8d
Update Slack regex again (#169)
* DEV: Update Slack regex for workflows

meta: https://meta.discourse.org/t/slack-outgoing-wehhook-format/270208/5

* DEV: Update Slack regex to account for typo
2023-07-10 18:48:52 -07:00
Mark Doerr 9b8c38963c
DEV: Update Slack regex for workflows (#168)
meta: https://meta.discourse.org/t/slack-outgoing-wehhook-format/270208/5
2023-07-07 08:28:09 -07:00
Isaac Janzen c753175b57
DEV: Update eslint config (#167) 2023-05-26 16:22:17 -05:00
Ted Johansson 481dc797a8
DEV: Replace #pluck_first monkey patch with native #pick (#166) 2023-05-09 10:47:42 +08:00
Mark VanLandingham 9647c7afc0
FIX: stop 'tag_added' rules from firing for normal posts (#165) 2023-04-21 07:30:03 -05:00
Mark VanLandingham 9332d77483
FEATURE: Trigger follow rules when category changes (#164) 2023-04-18 13:27:17 -05:00
Discourse Translator Bot 9f0303da58
Update translations (#163) 2023-04-11 15:44:57 +02:00
Mark VanLandingham a92108b69b
FEATURE: New rule filter to send message when topic tags change (#162) 2023-04-06 06:55:47 -05:00
Discourse Translator Bot 75cf4136e9
Update translations (#161) 2023-02-21 17:11:53 +01:00
Discourse Translator Bot 955347d089
Update translations (#160) 2023-02-15 10:50:48 +01: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
Keegan George bdc2f27a2a
DEV: Ember upgrade (#155) 2023-01-23 10:30:48 -08:00