Teams message from bash
Using a bash function on your linux server to send messages to your Teams channels
Recently my team changed its communication from Mattermost to Teams. At the same time a big project was launched.
For most use cases there were not a very meaningfull changes except for hooks triggered by deployment for our applications who would warn all teams ; can be useful in those remote working times.
After a few month of 'we don't have time for this', I could finally give it some this week and it was really easy to set up thanks to this nice gist by Chu-Siang Lai.
To use from it from everywhere and making it accessible fro mall people from my teams I had to follow some paths :
- Create teams connector in your channel
I'm going to rely on Microsoft Teams doc for this part as they know their product better than anyone.
-
Once it is done you have got to get the url of the newly created Incoming Webhooks by clicking the copy button alongside the url
-
Our webhook is now set up we can ssh in the server from where we want to send notifications (or our local comp if that's what we need)
-
For convenience I often choose to store scripts in /opt/scripts/, the location choice is up to you, and we are going to
touch send-teams-message.sh
Now open it with your default editor and copy past the content of the gist (thanks again !)
- To make usage easier we are going to create a bash function who knows our teams connector URL and can be called like
send_message 'Title' 'Content'
So first of all, got to /etc/profilde.d/
If it does not exist, create a 00-aliases.sh (just like before) and paste this in it :
send_message () {
bash /opt/scripts/send-teams-message.sh "PASTEYOUR_URL_HERE" "$1" "#FFFFF" "$2"
}
This is a bash function who takes 2 arguments, the title and the content of the team card.
- Time to try, but first we need to either close and restart our shell or
source /etc/profile.d/00-aliases.sh
Once done, you can try to send a message to your Teams Channel.
I am very aware that a lot of tools have built-in connectors for this type of things and I encourage you to use it before getting in this manual stuff.
But if you find yourself having to broadcast the event of a bash script by example, this becomes handy.
Again thanks to Chu-Siang Lai for the nifty Gist ! This would have been harder and longer to write from scratch.
Little tip from zsh user : 00-aliases.sh is not read by default in zsh, you have to add this line
source /etc/profile.d/00-aliases.sh
to your ~/.zshrc to make the function available !