Skip to content

Commit

Permalink
update script/changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
jch committed Sep 22, 2015
1 parent 555d8fa commit 3c3e674
Showing 1 changed file with 27 additions and 10 deletions.
37 changes: 27 additions & 10 deletions script/changelog
@@ -1,4 +1,4 @@
#!/usr/bin/env sh
#!/bin/bash
# Usage: script/changelog [-r <repo>] [-b <base>] [-h <head>]
#
# repo: base string of GitHub repository url. e.g. "user_or_org/repository". Defaults to git remote url.
Expand All @@ -8,23 +8,40 @@
# Generate a changelog preview from pull requests merged between `base` and
# `head`.
#
# https://github.com/jch/release-scripts
# https://github.com/jch/release-scripts/blob/master/changelog
set -e

[ $# -eq 0 ] && set -- --help
while [[ $# > 1 ]]
do
key="$1"
case $key in
-r|--repo)
repo="$2"
shift
;;
-b|--base)
base="$2"
shift
;;
-h|--head)
head="$2"
shift
;;
*)
;;
esac
shift
done

# parse args
repo='jch/html-pipeline'
base=$(git tag -l | sort -t. -k 1,1n -k 2,2n -k 3,3n | tail -n 1)
head="HEAD"
repo="${repo:-$(git remote -v | grep push | awk '{print $2}' | cut -d'/' -f4- | sed 's/\.git//')}"
base="${base:-$(git tag -l | sort -t. -k 1,1n -k 2,2n -k 3,3n | tail -n 1)}"
head="${head:-HEAD}"
api_url="https://api.github.com"

echo "# $repo $base..$head"
echo

# get merged PR's. Better way is to query the API for these, but this is easier
for pr in $(git log --oneline $base..$head | grep "Merge pull request" | awk '{gsub("#",""); print $5}')
do
# frustrated with trying to pull out the right values, fell back to ruby
curl -s "$api_url/repos/$repo/pulls/$pr" | ruby -rjson -e 'pr=JSON.parse(STDIN.read); puts "* #{pr[%q(title)]} [##{pr[%q(number)]}](#{pr[%q(html_url)]}) @#{pr[%q(user)][%q(login)]}"'
curl -s "$api_url/repos/$repo/pulls/$pr" | ruby -rjson -e 'pr=JSON.parse(STDIN.read); puts "* #{pr[%q(title)]} [##{pr[%q(number)]}](#{pr[%q(html_url)]})"'
done

0 comments on commit 3c3e674

Please sign in to comment.