|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
if [ -z "`which github-changes`" ]; then
|
|
|
|
# specify version because github-changes "is under heavy development. Things
|
|
|
|
# may break between releases" until 0.1.0
|
|
|
|
echo "First, do: [sudo] npm install -g github-changes@0.0.14"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -d .git/refs/remotes/upstream ]; then
|
|
|
|
remote=upstream
|
|
|
|
else
|
|
|
|
remote=origin
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Increment v2.x.y -> v2.x+1.0
|
|
|
|
npm version minor || exit 1
|
|
|
|
|
|
|
|
# Generate changelog from pull requests
|
|
|
|
github-changes -o request -r request \
|
|
|
|
--auth --verbose \
|
|
|
|
--file CHANGELOG.md \
|
|
|
|
--only-pulls --use-commit-body \
|
|
|
|
--date-format '(YYYY/MM/DD)' \
|
|
|
|
|| exit 1
|
|
|
|
|
|
|
|
# Since the tag for the new version hasn't been pushed yet, any changes in it
|
|
|
|
# will be marked as "upcoming"
|
|
|
|
version="$(grep '"version"' package.json | cut -d'"' -f4)"
|
|
|
|
sed -i -e "s/^### upcoming/### v$version/" CHANGELOG.md
|
|
|
|
|
|
|
|
# This may fail if no changelog updates
|
|
|
|
# TODO: would this ever actually happen? handle it better?
|
|
|
|
git add CHANGELOG.md; git commit -m 'Update changelog'
|
|
|
|
|
|
|
|
# Publish the new version to npm
|
|
|
|
npm publish || exit 1
|
|
|
|
|
|
|
|
# Increment v2.x.0 -> v2.x.1
|
|
|
|
# For rationale, see:
|
|
|
|
# https://github.com/request/oauth-sign/issues/10#issuecomment-58917018
|
|
|
|
npm version patch || exit 1
|
|
|
|
|
|
|
|
# Push back to the main repo
|
|
|
|
git push $remote master --tags || exit 1
|