Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slack bridge: Update Slack bridge with Events API. #826

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

PieterCK
Copy link
Collaborator

@PieterCK PieterCK commented Jun 7, 2024

Currently we use the Slacks legacy RTM API as the "listener" from Slack to Zulip. This commit updates our Slack Bridge to use Webhook integration to get messages across from Slack to Zulip.

We use our Slack webhook integration for that part of the bridge, it is being updated to use the latest Event API at PR#30465. So, instead the changes in this PR are only the following:

  • Updating the documentation on how to setup the updated Slack Bridge
  • Adding backwards compatibility by adding the "--legacy" parameter to turn on the RTM API
  • Make the bridge compatible with the Slack Webhook integration by preventing looping messages.

Fixes #825.

@PieterCK PieterCK force-pushed the issue-slack-bridge-update-825 branch from d22ae40 to 3ca5796 Compare June 11, 2024 14:52
@zulipbot zulipbot added size: L and removed size: XS labels Jun 11, 2024
@PieterCK PieterCK force-pushed the issue-slack-bridge-update-825 branch 4 times, most recently from 8ad1ab0 to 10bcf4f Compare June 22, 2024 13:00
@PieterCK PieterCK marked this pull request as ready for review June 22, 2024 13:15
@PieterCK
Copy link
Collaborator Author

@zulipbot add "buddy review"

@kenneth please review this please, thank you

@zulipbot
Copy link
Member

ERROR: Label "buddy review" does not exist and was thus not added to this pull request.

@PieterCK PieterCK force-pushed the issue-slack-bridge-update-825 branch 3 times, most recently from 679f982 to bc44575 Compare June 24, 2024 04:19
PieterCK added a commit to PieterCK/python-zulip-api that referenced this pull request Jun 26, 2024
The github action running the tests uses Python 3.8.18.
When running ./tools/run-mypy using this Python version
there will be linting errors related to importing the
'Salesforce' class. However, this is not a problem when
running the mypy linter under Python 3.10.

This commit ignores these linting error just so that
the main PR zulip#826 can pass the github actions tests.
I wouldn't recommend merging this commit to permanently
fix this issue. Instead, it might be better to update
the github actions to use a more recent Python version.
@PieterCK PieterCK force-pushed the issue-slack-bridge-update-825 branch from add6643 to e682ef6 Compare June 26, 2024 08:19
PieterCK added a commit to PieterCK/python-zulip-api that referenced this pull request Jun 26, 2024
This is an optional commit that ignores linting errors
in an unrelated file from zulip#826.
@zulipbot zulipbot added size: XL and removed size: L labels Jun 26, 2024
PieterCK added a commit to PieterCK/python-zulip-api that referenced this pull request Jun 28, 2024
This is an optional commit that ignores linting errors
in an unrelated file from zulip#826.
@PieterCK PieterCK force-pushed the issue-slack-bridge-update-825 branch from 42e472c to ded0ea7 Compare June 28, 2024 04:21
It starts with "xoxp-...".

4. In the `slack` section of the Zulip-Slack bridge configuration file, enter the bot name
(e.g "zulip_mirror"), token (e.g xoxp-...), and the channel ID (note: must be ID, not name).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: IIRC xoxb- (not xoxp-) is the legacy token? We could document this, to explicitly say that it is legacy.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, the new token is xoxb. Updated the doc 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had this in mind, might as well say it: what if we add detection of the token prefix in the code, that gives a clear error message if user specifies an xoxp- token.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, yeah after reviewing the setup instructions again I feel like there is a lot of room for human error. Adding error messages like this would help reduce the probability.

This commit updates the Slack Bridge doc, primarily
guiding the user to use our Slack Webhook integration
and reformating the old instructions to a separate
legacy section.
PieterCK added a commit to PieterCK/python-zulip-api that referenced this pull request Jun 29, 2024
This is an optional commit that ignores linting errors
in an unrelated file from zulip#826.
@PieterCK PieterCK force-pushed the issue-slack-bridge-update-825 branch from eda7a33 to d8e6f71 Compare June 29, 2024 08:05
@PieterCK
Copy link
Collaborator Author

Update: Addressed review and dropped support for RTM API

@PieterCK
Copy link
Collaborator Author

PieterCK commented Jul 3, 2024

@sbansal1999 I think this one's also ready for mentor review, please do check it out! Thanks

Slack Bridge now uses the Slack Webhook integration
to get messages accross from Slack instead of the
legacy RTM API based connection our Slack Bridge
use.

This commit adds a "--legacy" argument to the script,
it acts as a toggle to run the RTM API based connection
to get messages accross to Zulip. It is used to ensure
backwards compitability for users who want to maintain
any ongoing Slack mirror.
When using Slack Webhook integration to get messages
from Slack to Zulip, we don't want to send back
messages from the Slack integration bot.

Fixes zulip#825.
This is an optional commit that upgrade the Python
version for github workflows when running tests.
This commit doesn't try to drop support for
Python 3.8.
This is an optional commit that ignores linting errors
in an unrelated file from zulip#826.
This is an optional commit that drops support running
the Slack Bridge using the legacy RTM API. The reasoning
for removing backwards compitability is because the user
can just use the older version of pyton-zulip-api.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Slack Bridge: Discontinuation of classic Slack App
3 participants