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.
When creating a new Discourse post from slack with the `post` feature, record the
slack `ts` thread ID for the resulting topic post using an HTML comment to pass
the `ts` through.
When notifying slack of new Discourse posts, record the slack `ts` thread ID in
the post's topic if it has not yet been recorded. (Normally, this will be done
for the topic post, except where notifications are being posted for old topics
before this feature was created.)
Add a new rule filter `thread` which posts threaded responses to slack if there
is a `ts` recorded for the post topic.
Modify the `trigger_notifications` interface to enable other integrations to
implement similar functionality.
Present the `thread` rule in the help text and admin UI only for the slack
providers.
https://meta.discourse.org/t/optionally-threading-posts-to-parent-topic-in-slack-integration/150759
* adds groupme configuration and relative
* first pass at groupme provider
* add group id site setting w/ english translation
* rework to use bots groupme api intstead of developer, no access tokens reqd
also should catch 404 response codes
* add strings to locale yml files for i18n
* better error handling for multi-bot case
* add channel param for separate Groupme instances, include name in errorbody
* bugfix for multi bot msg forwarding
this gives us the ability to treat diff groupme instances like slack channels, lots of people use them this way for better or worse. use case is certain category posts only go to a particular GM instance
* add spec for groupme provider
* fix channel param constraint
* specify channels by groupme name, not bot api token
* fix some linting issues w/ spacing
* newline and trailing space lint fixes
Providers can define their own errors, and these are presented in the user interface. e.g. Slack can define an error that says “That channel doesn’t exist”.
Errors in the UI disappear once a message has been sent successfully, or the rule is edited.