hubot-sprintly-deploy-pull-request
v0.0.2
Published
Search Pull Request descriptions to mark items as deployed in Sprint.ly
Downloads
19
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