integrations / slack

Bring your code to the conversations you care about with GitHub's integration for Slack
https://slack.github.com/
MIT License
3.1k stars 487 forks source link

Approve deployments via Slack actions block #1347

Open ianonavy opened 2 years ago

ianonavy commented 2 years ago

Is your feature request related to a problem? Please describe. I have a private project using GitHub Actions for deployment. We have three workflows: CI, Deploy Staging, and Deploy Prod. The deploy workflows use environments for deployment with required reviewers for prod only.

Current workflow to approve deployments from Slack is:

  1. Receive "Deployment review requested" Slack message
  2. Click link in Slack message, takes me to https://github.com/org/repo/runs/ID?check_suite_focus=true (I think = is a bug)
  3. Click workflow name Prod Deploy, takes me to https://github.com/org/repo/actions/runs/ID with a summary of the workflow (deploy job waiting for review to environment prod due to deployment branch policy)
  4. Click "Review deployments", opens modal "Review pending deployments"
  5. Check "prod" environment
  6. Optionally, write a comment
  7. Click "Approve and deploy"

The problem is this is too many steps, and when trying it for the first time it is not clear how to navigate to the button that lets me actually approve the deployment. Even worse, it's hard to see a summary of the changes this deploy would make.

Describe the solution you'd like I'd like a button in the Slack message that I can click to approve or reject directly a deployment from Slack. Bonus points if I can filter notifications by environment, but seems like there are other issues already requesting that. Preferably this is done as a Slack action block type with the Button element.

Additionally, the deployment request message should include a summary of the changes being deployed (commit summaries, PR titles) and allow me to comment from Slack.

I've created a mockup in Slack's Block Kit Builder. I understand the Slack integration does not currently map existing GitHub users to Slack users (#435) so this dialog would appear to all users regardless of whether they have permissions to approve. A workaround here might be to have a button action "Review deployment" that adds another button press (but not app context switch) where the action checks GitHub auth before conditionally displaying a modal (similar to how /github open works for creating a new issue).

Describe alternatives you've considered Considering building our own Slack integration to accommodate this use case, but we'd rather use the official one.

Additional context Relates to #940, #942, and #1081

XciD commented 1 year ago

Any updates & news about this feature ?

c-ameron commented 1 year ago

Hi, any news in this? Thanks

andrewralon commented 1 year ago

Bump bump..... this would be fantastic

nichiporenko commented 1 year ago

That would be great

smurphnturf commented 1 year ago

Yes please!

dnatic09 commented 9 months ago

Bumping. This would be great for non/semi-technical teammates that are responsible for approvals due to compliance reasons. (SOC2 anyone?)

DanielLaberge commented 5 months ago

We would also be very interested to do this!

I have a feeling this might never be implemented because GitHub might think this will cannibalize sales of the GitHub Enterprise Plan, which has similar functionality to approve deployments to specific environments.

However I think this integration with Slack would cover a lot more use cases. Indeed, after migrating from Bitbucket, I was VERY surprised to find GitHub had no "Manual Step" feature in Actions. We used those all the time to optionally promote releases from one environment to another. It is my only regret, but it is a sizable one!

In any case, the community would certainly appreciate a direct response from GitHub, if only so we can stop holding our collective breath.

Thank you for the consideration.