Git ChatOps

When a pull request is created, Bunnyshell can create and deploy an ephemeral environment that can be used for QA or as a Preview Environment for the new feature. Bunnyshell will comment in the pull request the operation status of the environment, along with the URLs where you can access the application, and when the pull request closes, you can configure Bunnyshell to delete the ephemeral environment.

But you can control the environment also between these two moments directly from Git by replying to Bunnyshell comment with one of these four commands:

  • /bns:deploy to redeploy the environment
  • /bns:stop to stop the environment
  • /bns:startto start the environment
  • /bns:delete to delete the environment before the pull request closes

Bunnyshell associates a comment with an environment, so by replying to a comment it knows what environment to update. If it can accomplish the desired action, Bunnyshell will delete the user reply, to keep the comment tree clean, and update the main comment with the status of the new action. If it cannot accomplish the action, Bunnyshell will reply to the user reply with the reason of the failure, or if the failure happens later on the flow it will update the main message, so the user always has feedback. Bunnyshell will not process nor reply to comments containing anything else than one exact command.

When Bunnyshell deletes a user reply or updates the environment comment, the UI of the Git provider may not automatically reflect changes, so the user may need to manually refresh the Git UI page to see the updates. New comments and replies to comments usually appear in UIs, but the behaviour is fully in control of the Git provider UI and is subject to change.

📘

Note

Bunnyshell ignores all the comments if the pull request is not open/active.

 

GitHub

Github doesn't have the concept of pull request comment thread or reply to comment, but has the Quote reply feature. The user can quote reply to a Bunnyshell comment and add after the quoted text, on a new line, one of the four commands.

New comments and comment updates are automatically reflected, only the deleted comments will disappear after page refresh.

 

GitLab

Gitlab has comment threads (Discussions) and the UI reflects automatically the changes, it will be a nice experience for the user.

 

Bitbucket

On Bitbucket the user can reply to an individual comment, but the pull request page with the comments has no autoupdate, so the user needs to refresh the page in order to see any changes from Bunnyshell.

When replying to Bunnyshell comment with a command the user needs to add a space after the command else Bitbucket will try to interpret it as one of its own comment commands and because it doesn't recognise it, it will delete it.

 

Azure DevOps

Azure DevOps has comment threads and the UI has autoupdates, but the thread will remain cluttered with "Comment deleted" for each of the user replies that Bunnyshell has handled.