Skip to content

Add Slack interactivity webhook support - #6674

Open
suhaibmujahid wants to merge 7 commits into
masterfrom
slack-webhook
Open

Add Slack interactivity webhook support#6674
suhaibmujahid wants to merge 7 commits into
masterfrom
slack-webhook

Conversation

@suhaibmujahid

Copy link
Copy Markdown
Member

Resolves #6279

Add a dedicated Slack interactions endpoint with request signature verification.


Stack created with GitHub Stacks CLIGive Feedback 💬

Copilot AI lite review requested due to automatic review settings August 20, 2026 01:49
@suhaibmujahid
suhaibmujahid requested a review from a team as a code owner August 20, 2026 01:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds inbound Slack interactivity support to hackbot-api by introducing a dedicated /slack/interactions endpoint protected with Slack request signature verification, plus parsing of Slack’s form-encoded interaction payloads into a normalized click object.

Changes:

  • Introduces Slack signature verification (require_slack_signature / verify_slack_signature) and wires it into a new Slack router.
  • Adds Slack interaction payload parsing utilities (parse_interaction / parse_payload) and registers the new router in the FastAPI app.
  • Adds slack-sdk dependency and ensures test env defaults include SLACK_SIGNING_SECRET.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
services/hackbot-api/tests/conftest.py Adds dummy SLACK_SIGNING_SECRET so settings validation doesn’t block test imports.
services/hackbot-api/pyproject.toml Adds slack-sdk dependency for signature verification.
services/hackbot-api/app/slack_webhook.py New Slack interaction payload decoding/parsing into a ButtonClick model.
services/hackbot-api/app/routers/slack.py New /slack/interactions endpoint secured by Slack HMAC signature verification.
services/hackbot-api/app/routers/init.py Exposes the new Slack router from the router package.
services/hackbot-api/app/main.py Registers the Slack router on the FastAPI app.
services/hackbot-api/app/config.py Adds Slack settings model and embeds it into global settings.
services/hackbot-api/app/auth.py Implements Slack signature verification + dependency for request authentication.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread services/hackbot-api/app/slack_webhook.py Outdated
Comment thread services/hackbot-api/app/slack_webhook.py Outdated
Comment thread services/hackbot-api/app/routers/slack.py Outdated
Comment thread services/hackbot-api/app/config.py
Comment thread services/hackbot-api/app/auth.py Outdated

@evgenyrp evgenyrp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Could you also ask Claude to document this functionality concisely in /docs/hackbot? This would also help with review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hackbot job deduplication

3 participants