Skip to content

Instantly share code, notes, and snippets.

@remmelt
Last active August 31, 2023 00:35
Show Gist options
  • Save remmelt/9640659 to your computer and use it in GitHub Desktop.
Save remmelt/9640659 to your computer and use it in GitHub Desktop.
Post an Atlassian Bamboo build result to Slack
#!/usr/bin/python
"""
Create a stage in your project, make it the last stage.
Make a task in the stage with this inline script:
#! /bin/bash
/some/path/bamboo-to-slack.py "${bamboo.planKey}" "${bamboo.buildPlanName}" "${bamboo.buildResultsUrl}"
Remember to make a channel with a Service Integration "Incoming WebHooks." The Slacker site will tell you the correct URL to put in the script below.
Requirements for this Python script: Requests (pip install requests, http://docs.python-requests.org/)
"""
import sys
import requests
import json
buildName = str(sys.argv[1])
jobName = str(sys.argv[2])
buildUrl = str(sys.argv[3])
buildStateUrl = 'http://YOUR_BAMBOO_URL/bamboo/rest/api/latest/result/{0}/latest.json?buildstate'.format(buildName)
r = requests.get(buildStateUrl)
buildState = r.json()['buildState']
if buildState != 'Successful':
message = "Job \"{0}\" not successful! State: {1}. See {2}".format(jobName, buildState, buildUrl)
payload = {'channel': '#YOUR_CHANNEL', 'username': 'Bamboo', 'text': message}
r = requests.post('https://YOUR_COMPANY.slack.com/services/hooks/incoming-webhook?token=YOUR_TOKEN_HERE', data=json.dumps(payload))
print "Slacker output: {0}".format(r.text)
@pswartout
Copy link

@remmelt will this work on cloud based bamboo? (going to presume not but thought I would check)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment