How to notify Microsoft Teams from Bitbucket Pipeline?
Asked by inger_klekacz:

Hey there, I'm new to Bitbucket Pipelines, and am trying to see if I can duplicate my Jenkins pipelines' functionality with a pipeline on Bitbucket.

I've got a pipeline running, but I can't seem to get it to notify us when it's finished running.

Here's what I'm trying to do: update a Teams channel when a pipeline build has started or completed. When it's completed, I'd like to post its build status. That's it. Nothing fancy.

Here's as far as I've gotten:

1. created an internal webhook in my Teams channel
2. set up a webhook in my repo in my-repo\> Settings \> Webhooks using the URL generated in step 1. chose ""Build status created" and "Build Status updated" as the Triggers"
3. Made a change on a branch of my-repo and pushed the change up
4. Watched the build start and finish
5. Watched no notifications come into the Teams channel.

Any ideas what steps I might be missing? I'm on Bitbucket Cloud, btw.


Answers:
author: inger_klekacz
body: I found the solution myself, albeit a very basic one: set this up as an item in the "script" portion of after-script:

```
- curl -H "Content-Type: application/json" -d "{'text':'Hello World'}" https://<WEBHOOK URL>?

```

Here's why I got snagged up: I was following the [Microsoft docs](https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using#setting-up-a-custom-incoming-webhook) for formatting the -d argument, but was getting a linting error in 'text': 'Hello World' because VS Code's linter, the Redhat YAML extension, was seeing the space after the colon in that payload and was barking about me trying to submit YAML. I removed the space, the barking stopped, the notification happened.

Now I get to go down the fun rabbit hole of string interpolation and passing variables inside single quotes, which bash hates.

comments: author: Shreyank Sharma
body: Update: Thank you [@inger_klekacz](/t5/user/viewprofilepage/user-id/4031091) the issue was with space after "Content-Type:

Hi [@inger_klekacz](/t5/user/viewprofilepage/user-id/4031091) am trying to do the same thing, from normal terminal if I use this

```
curl -H "Content-Type: application/json" -d "{'text':'Sample msg'}" <WEBHOOK_URL>
```

It works notification happened.

but If I use  

```
script:

   - curl -H "Content-Type: application/json" -d "{'text':'Sample msg'}" <WEBHOOK_URL>
```

pipeline fails with There is an error in your bitbucket-pipelines.yml msg  
when I checked in linting tool it shows either I have to use string or pipe


author: Ngeh N
body: Hello,

please I'm trying to implement this as well into my pipeline. I will like to connect with you and see how you achieved this please. Thanks


author: Nataraj
body: Below is the pipeline that you could use that worked for me

# MS TEams Notification  
image: atlassian/default-image:3

pipelines:  
default:  
- parallel:  
- step:  
name: 'MSTeamsNotification'  
script:  
- echo "Teams Bitbucket Pipeline Notification...from Nataraj.."  
- curl -d "{\\"text\\":\\"Message from Bitbucket Pipelinedata...\\"}" -H "Content-Type:application/json" $TEAMS_WEBHOOK_URL

Thanks,

Nataraj

comments: author: Ngeh N
body: Nataraj please I tried this and no notifications. Help?


author: Nataraj
body: you could use the below command line

- curl -d "{\\"text\\":\\"Message from Bitbucket Pipelinedata...\\"}" -H "Content-Type:application/json" $TEAMS_WEBHOOK_URL


author: Move Work Forward
body: Hello [@inger_klekacz](/t5/user/viewprofilepage/user-id/4031091) ,

You can use [Microsoft Teams Bitbucket Connector](https://marketplace.atlassian.com/apps/1216365/microsoft-teams-bitbucket-connector?hosting=cloud&tab=overview). There is a [short guide on how to set it up](https://help.moveworkforward.com/MTBC/Microsoft-Teams-Bitbucket-Connector-(Cloud).1190166527.html), but otherwise it is pretty simple.

If you have any questions please feel free to [reach out](https://www.moveworkforward.com/company).

Regards,

Leo

comments: author: inger_klekacz
body: That was my first attempt, but it seemed like it supported everything *except* build status, which is basically the only thing I need right now. BTW when I was trying to figure it out, I clicked on the Support \> Documentation link from the Marketplace link you posted, and the docs link was a 404. Thanks anyway, though.


author: Andrei Dascalu
body: [@inger_klekacz](/t5/user/viewprofilepage/user-id/4031091) thanks, actually that's also what we need. From what I can tell the connector simply handles notifications globally around repository operations whereas we needed custom notifications issued from within pipelines on a per step basis.


author: Daniel Toplak
body: Tried the Microsoft Teams Bitbucket Connector a year later (2/2022) but it still does not support pipeline events.


author: Move Work Forward
body: Hi [@Daniel Toplak](/t5/user/viewprofilepage/user-id/4707142)

Thanks for the comment.

The Bitbucket does not send pipeline events to 3rd party apps. You can get notifications for commit status update events. [This blog post](https://www.moveworkforward.com/blog/how-to-get-microsoft-teams-notifications-from-atlassian-bitbucket-cloud) could be useful.

If you could elaborate what you are trying to do - We can see if we can improve our Microsoft Teams Bitbucket Connector to serve you better.

Thanks,  
Leo \| Move Work Forward


Tags: atl-gruland

bitbucket-pipelines

cloud

ms-teams

webhook