#!/usr/bin/env bash # Disallow pull requests to `fireice-uk/xmr-stak` branch `master` # # - merging from `dev` or `release-...` located within our reposetory is allowed # - merging to `master` within a fork is allowed # - pull request to `dev` are allowed from everywhere # # See: https://docs.travis-ci.com/user/environment-variables/ # https://developer.github.com/v3/pulls/#get-a-single-pull-request # # # return 0 = OK, else false # if [ "$TRAVIS" != "true" ] ; then echo "Not in travis, so I have nothing to do :)" else xmrstak_slug="fireice-uk/xmr-stak" # check only pull requests to `master` if [ "$TRAVIS_EVENT_TYPE" == "pull_request" ] && [ "$TRAVIS_BRANCH" == "master" ] ; then # allow pull requests to forks if [ "$TRAVIS_REPO_SLUG" == "$xmrstak_slug" ] ; then echo "$TRAVIS_PULL_REQUEST_BRANCH" | grep -q "^dev$" comingFromDev=$? echo "$TRAVIS_PULL_REQUEST_BRANCH" | grep -q "^release-" comingFromRelease=$? # check origin if [[ "$TRAVIS_PULL_REQUEST_SLUG" != "$xmrstak_slug" || ( $comingFromDev -ne 0 && $comingFromRelease -ne 0 ) ]] ; then # the PR came from a fork owned by the first part of the slug pr_author=$(echo "$TRAVIS_PULL_REQUEST_SLUG" | awk -F "/" '{print $1}') pr_branch=$TRAVIS_PULL_REQUEST_BRANCH echo "" echo "Pull request opened to wrong branch!" echo "" echo "Pul requests need to go to our 'dev' branch but your pull-request from '"$TRAVIS_PULL_REQUEST_SLUG"' was" echo "sent to 'master' which is only updated by our maintainers for new stable releases." echo "" echo "Please re-open your pull-request against our 'dev' branch:" echo " https://github.com/fireice-uk/xmr-stak/compare/dev...$pr_author:$pr_branch?expand=1" echo "" echo "For further information, please see:" echo " https://github.com/fireice-uk/xmr-stak/blob/dev/CONTRIBUTING.md" exit 1 fi fi fi fi