oncall-engine/engine/apps/slack
Joey Orlando e9969f4bd0
feat: convert organization.general_log_channel_id to organization.default_slack_channel (#5191)
# What this PR does

Related to https://github.com/grafana/oncall-private/issues/2947

Right now `general_log_channel_id` is just a string value representing
the Slack Channel ID (ex. `C043HQ70QMB`). This PR migrates this instead
to be a foreign key relationship on the `slack_slackchannel` table and
updates all references to `general_log_channel_id`.

Tested migrations locally:
```bash
Operations to perform:
  Apply all migrations: [redacted secret grafana-admin-creds:admin-user], alerts, auth, auth_token, base, contenttypes, email, exotel, fcm_django, google, heartbeat, labels, mobile_app, oss_installation, phone_notifications, schedules, sessions, slack, social_django, telegram, twilioapp, user_management, webhooks, zvonok
Running migrations:
  Applying user_management.0024_organization_general_log_slack_channel... OK
source=engine:app google_trace_id=none logger=apps.user_management.migrations.0025_auto_20241017_1919 Starting migration to populate general_log_slack_channel field.
source=engine:app google_trace_id=none logger=apps.user_management.migrations.0025_auto_20241017_1919 Total organizations to process: 1
source=engine:app google_trace_id=none logger=apps.user_management.migrations.0025_auto_20241017_1919 Organization 1 updated with SlackChannel 2 (slack_id: C043LL6RTS7).
source=engine:app google_trace_id=none logger=apps.user_management.migrations.0025_auto_20241017_1919 Finished migration. Total organizations processed: 1. Organizations updated: 1. Missing SlackChannels: 0.
  Applying user_management.0025_auto_20241017_1919... OK
```

## Future incoming PRs

- Drop `Organization.general_log_channel_id` column
- Migrate `ChannelFilter.slack_channel_id` and
`ResolutionNoteSlackMessage.slack_channel_id` to use foreign key
relationships

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-11-01 06:41:38 +01:00
..
migrations Unified Slack app reinstall (#4682) 2024-07-19 11:53:06 +00:00
models feat: convert organization.general_log_channel_id to organization.default_slack_channel (#5191) 2024-11-01 06:41:38 +01:00
representatives Fix acknowledge reminder task (#5179) 2024-10-16 12:13:28 +00:00
scenarios feat: convert organization.general_log_channel_id to organization.default_slack_channel (#5191) 2024-11-01 06:41:38 +01:00
tests feat: convert organization.general_log_channel_id to organization.default_slack_channel (#5191) 2024-11-01 06:41:38 +01:00
types Introduce slash command matcher (#4717) 2024-07-24 09:53:06 +00:00
__init__.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
alert_group_slack_service.py Do not retry on SlackAPICantUpdateMessageError errors (#4405) 2024-05-28 17:46:15 +00:00
chatops_proxy_routing.py Prepare OnCall for Unified Slack App (#4232) 2024-06-03 09:07:10 +00:00
client.py Update when slack client ratelimit retry handler is enabled (#3447) 2023-11-30 12:35:46 +00:00
constants.py Truncate resolution note text in slack message to satisfy block limits (#3351) 2023-11-16 13:15:04 +00:00
errors.py Update Slack user group for a schedule - handle paid_team_only Slack API error (#4793) 2024-08-09 14:51:01 +00:00
installation.py Unified Slack app reinstall (#4682) 2024-07-19 11:53:06 +00:00
slack_formatter.py Fix alert group rendering (#3424) 2023-11-24 15:39:37 +00:00
slash_command.py Make root command configurable (#4863) 2024-08-21 06:54:47 +00:00
tasks.py feat: convert organization.general_log_channel_id to organization.default_slack_channel (#5191) 2024-11-01 06:41:38 +01:00
test_slack_message.py Don't send request for permalink if slack token has been revoked (#4777) 2024-08-06 15:34:08 +00:00
urls.py Make Slack URLs work without trailing slashes (#4607) 2024-07-03 15:55:54 +00:00
utils.py Address deprecation warnings in tests (#4681) 2024-08-13 20:51:18 +00:00
views.py Remove the deprecated "Format Alert" button from the Slack renderer (#5141) 2024-10-14 06:53:17 +00:00