#!/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