-
Notifications
You must be signed in to change notification settings - Fork 16.6k
chore: Caching the Slack channels list #32529
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review by Korbit AI
Korbit automatically attempts to detect when you fix issues in new commits.
| Category | Issue | Fix Detected |
|---|---|---|
| Silent error handling in Slack API call ▹ view | ||
| Missing Cache Timeout in Slack Channels Cache ▹ view |
Files scanned
| File Path | Reviewed |
|---|---|
| superset/utils/slack.py | ✅ |
| superset/reports/api.py | ✅ |
| superset-frontend/src/features/alerts/components/NotificationMethod.tsx | ✅ |
Explore our documentation to understand the languages and file types we support and the files we ignore.
Need a new review? Comment
/korbit-reviewon this PR and I'll review your latest changes.Korbit Guide: Usage and Customization
Interacting with Korbit
- You can manually ask Korbit to review your PR using the
/korbit-reviewcommand in a comment at the root of your PR.- You can ask Korbit to generate a new PR description using the
/korbit-generate-pr-descriptioncommand in any comment on your PR.- Too many Korbit comments? I can resolve all my comment threads if you use the
/korbit-resolvecommand in any comment on your PR.- On any given comment that Korbit raises on your pull request, you can have a discussion with Korbit by replying to the comment.
- Help train Korbit to improve your reviews by giving a 👍 or 👎 on the comments Korbit posts.
Customizing Korbit
- Check out our docs on how you can make Korbit work best for you and your team.
- Customize Korbit for your organization through the Korbit Console.
Current Korbit Configuration
General Settings
Setting Value Review Schedule Automatic excluding drafts Max Issue Count 10 Automatic PR Descriptions ❌ Issue Categories
Category Enabled Documentation ✅ Logging ✅ Error Handling ✅ Readability ✅ Design ✅ Performance ✅ Security ✅ Functionality ✅ Feedback and Support
Note
Korbit Pro is free for open source projects 🎉
Looking to add Korbit to your team? Get started with a free 2 week trial here
kgabryje
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
| limit=limit, | ||
| extra_params=extra_params, | ||
| force=force, | ||
| cache_timeout=86400, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hardcoded here for a day, which I think should be generally good. I could make this a dynamic config in a follow up if we think it's better.
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com> (cherry picked from commit 9ad9ea6)
SUMMARY
The Slack API used via the SDK to retrieve channels has a 20+ requests/minute rate limit, which can be hit pretty fast for large Organizations (there's no filtering in the search, so all channels are parsed with a max of 999 items per page).
Since this request might be executed several times (and in parallel) while reports are getting migrated to V2, this PR implements caching for the list with 1d duration. It also adds a force refresh button the UI dropdown (thanks @eschutho 🙏 ).
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
TESTING INSTRUCTIONS
ADDITIONAL INFORMATION