Search Pull Request descriptions to mark items as deployed in

Hubot Deploy Pull Request

Search Pull Request descriptions to mark items as deployed in

  1. In your hubot repo, npm install hubot-sprintly-deploy-pull-request --save
  2. Add hubot-sprintly-deploy-pull-request to your external-scripts.json

You'll also need to set these environment variables:

  • HUBOT_GITHUB_TOKEN: GitHub authentication token
  • HUBOT_GITHUB_USER: (optional) GitHub user/organization to identify owner of repository
  • HUBOT_SPRINTLY_TOKEN: (optional) authentication token <email:api_key>
  • HUBOT_SPRINTLY_PRODUCT_ID: (optional) product id

If you don't have a GitHub token yet, run this:

curl -i -d '{"scopes":["repo"]}' -u "yourusername"

In your deploy script, make a request to http://your-hubot-host/hubot/sprintly-deploy-pull-request with the following parameters:

  • numbers: (required) comma-separated list of Pull Request / Issue numbers
  • repo: (required) repository to find those numbers
  • owner: owner of the repository (defaults to process.env.HUBOT_GITHUB_USER)
  • productId: numeric id of product (defaults to process.env.HUBOT_SPRINTLY_PRODUCT_ID)
  • auth: authentication token <email:api_key> (defaults to process.env.HUBOT_SPRINTLY_TOKEN)
  • env: environment to which you just deployed to be used in (defaults to 'production')

What you might add to your deploy script:

# repository name
function sprintlyDeploy {
  # get last two git tags for git log. returns something like release123..release124
  tagDiff=`git tag -l "release-*" | sort --version-sort  | tail -n 2 | xargs echo | sed 's/ /../'`
  # get issue numbers from git log
  numbers=`git log --pretty=format:%s $tagDiff | egrep -o '#[0-9]+' | sed 's/#//g'`
  curl -X POST -d "numbers=$numbers&repo=$projectName&environment=$1" http://your-hubot-host/hubot/sprintly-deploy-pull-request
# you can use this function in other scripts that deploy to different environments
sprintlyDeploy production