Skip to content

Add slack usergroups client

Steve Abrams requested to merge 2629-slack-usergroups-management into master

🔍 What does this MR do and why?

Slack wrapper is being deprecated. We use the for listing and updating the release manager slack group.

This MR adds a new SlackClient class to replace the SlackWrapperClient class. Since local testing was completed using the production slack token and real users, I opted to not use a feature flag for this update.

🎥 Screenshots / How to verify locally

~/workspace/gitlab-org/release-tools (2629-slack-usergroups-management ✔) SLACK_APP_ADMIN_TOKEN=<token> be pry --gem
[1] pry(main)> s = ReleaseTools::ReleaseManagers::SlackClient.new
=> #<ReleaseTools::ReleaseManagers::SlackClient:0x00000001416f5788 @sync_errors=[], @token="REDACTED">
[2] pry(main)> s.join('UK1UZS9S4')
2022-11-01 09:13:19.526972 I ReleaseTools::ReleaseManagers::SlackClient -- Fetching membership -- {:url=>"https://slack.com/api/usergroups.users.list"}
2022-11-01 09:13:19.797981 I ReleaseTools::ReleaseManagers::SlackClient -- Syncing membership -- {:user_ids=>["UBQ8BPT1B", "UDBKHR5RN", "ULLPM8144", "UK1UZS9S4"], :url=>"https://slack.com/api/usergroups.users.update"}
=> {"ok"=>true,
 "usergroup"=>
  {"id"=>...}}
[3] pry(main)> s.leave('UK1UZS9S4')
2022-11-01 09:13:42.139124 I ReleaseTools::ReleaseManagers::SlackClient -- Fetching membership -- {:url=>"https://slack.com/api/usergroups.users.list"}
2022-11-01 09:13:42.438920 I ReleaseTools::ReleaseManagers::SlackClient -- Syncing membership -- {:user_ids=>["UBQ8BPT1B", "UDBKHR5RN", "ULLPM8144"], :url=>"https://slack.com/api/usergroups.users.update"}
=> {"ok"=>true,
 "usergroup"=>
  {"id"=>...}}

🛃 Author Check-list

  • Has documentation been updated?

Related to gitlab-com/gl-infra/delivery#2629 (closed)

Edited by Steve Abrams

Merge request reports