#!/bin/sh set -e # github pr helper # push current branch to ORIGIN(remote) and create a PR toward UPSTREAM(remote) # UPSTREAM must be a https github url if [ -n "$PROXY_HOST" ] && [ -n "$PROXY_PORT" ]; then export HTTP_PROXY=http://$PROXY_HOST:$PROXY_PORT echo HTTP_PROXY=$HTTP_PROXY echo HTTPS_PROXY=$HTTP_PROXY fi BRANCH=$(git branch --show-current) # UPSTREAM_BRANCH=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} | awk -F/ '{print $2}') UPSTREAM_BRANCH=$(HTTPS_PROXY=$HTTP_PROXY git remote show upstream | grep -oP 'HEAD branch: \K\w+') ORIGIN_NAME=${1:-origin} ORIGIN_URL=$(git remote get-url $ORIGIN_NAME) case "$ORIGIN_URL" in git@github.com:*) ORIGIN_ORG=$(printf "$ORIGIN_URL" | sed -E 's#^.+:([^/]+).+$#\1#') # ORIGIN=$(printf "$ORIGIN_URL" | grep -oP 'git@github.com:\K.+(?=\.git$)') ;; esac UPSTREAM_URL=$(git remote get-url upstream) UPSTREAM_URL=$(echo "$UPSTREAM_URL" | sed 's/.git$//') echo ORIGIN_ORG: $ORIGIN_ORG echo UPSTREAM_URL: $UPSTREAM_URL git push -f -u $ORIGIN_NAME $BRANCH x-open "$UPSTREAM_URL/compare/$UPSTREAM_BRANCH...$ORIGIN_ORG:$BRANCH?expand=1" sleep 2 command -v awesome-client && awesome-client ' local awful = require("awful") awful.client.urgent.jumpto() '