hubot-sprintly-deploy-pull-request
v0.0.2
Published
Search Pull Request descriptions to mark items as deployed in Sprint.ly
Downloads
4
Readme
Hubot Sprint.ly Deploy Pull Request
Search Pull Request descriptions to mark items as deployed in Sprint.ly
Installation
- In your hubot repo,
npm install hubot-sprintly-deploy-pull-request --save
- Add
hubot-sprintly-deploy-pull-request
to yourexternal-scripts.json
You'll also need to set these environment variables:
HUBOT_GITHUB_TOKEN
: GitHub authentication tokenHUBOT_GITHUB_USER
: (optional) GitHub user/organization to identify owner of repositoryHUBOT_SPRINTLY_TOKEN
: (optional) Sprint.ly authentication token email:api_keyHUBOT_SPRINTLY_PRODUCT_ID
: (optional) Sprint.ly product id
If you don't have a GitHub token yet, run this:
curl -i https://api.github.com/authorizations -d '{"scopes":["repo"]}' -u "yourusername"
Usage
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 numbersrepo
: (required) repository to find those numbersowner
: owner of the repository (defaults toprocess.env.HUBOT_GITHUB_USER
)productId
: numeric id of Sprint.ly product (defaults toprocess.env.HUBOT_SPRINTLY_PRODUCT_ID
)auth
: Sprint.ly authentication token email:api_key (defaults toprocess.env.HUBOT_SPRINTLY_TOKEN
)env
: environment to which you just deployed to be used in Sprint.ly (defaults to 'production')
What you might add to your deploy script:
# repository name
projectName=yourproject
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