diff --git a/bin/git-pull-request b/bin/git-pull-request new file mode 100755 index 0000000..d760f1a --- /dev/null +++ b/bin/git-pull-request @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# +# Echo and exit +# + +abort() { + echo $@ + exit 1 +} + +# +# Produce json with , <body>, and <head> +# + +json() { + cat <<EOF +{ + "title": "$1", + "body": "$2", + "head": "$3", + "base": "master" +} +EOF +} + +# user + +user=$(git config --global user.email) +test -z "$user" && abort "git config user.email required" + +# branch + +branch=$1 +test -z "$branch" && abort "<branch> required" + +# lame hack to get project + +project=$(git config remote.origin.url | sed 's/^.*://' | sed 's/\.git$//') + +# prompt + +echo +echo " create pull-request for $project '$branch'" +echo +printf " title: " && read title +printf " body: " && read body +echo + +# create pull request + +body=$(json $title $body $branch) +curl -u "$user" https://api.github.com/repos/$project/pulls -d $body +