1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
qTox/merge-pr.sh
Anthony Bilinski fe9d83d881
chore(tools): allow merging PR to whatever branch is checked out
Useful for either dev testing or merging PRs to dev branches. Also stop
updating local repo state beyond merging the PR.
2019-10-09 23:16:33 -07:00

68 lines
1.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Copyright © 2016 Zetok Zalbavar <zetok@openmailbox.org>
# Copyright © 2019 by The qTox Project Contributors
#
# This file is part of qTox, a Qt-based graphical interface for Tox.
# qTox is libre software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# qTox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with qTox. If not, see <http://www.gnu.org/licenses/>
# Script for merging pull requests. Works only when there are no merge
# conflicts. Assumes that working dir is a qTox git repo.
#
# Requires SSH key that github accepts and GPG set to sign merge commits.
# usage:
# ./$script $pr_number $optional_message
#
#
# $pr_number number of the PR as shown on GH
# $optional_message message that is going to be put in merge commit,
# before the appended shortlog.
#
set -e -o pipefail
readonly PR="${1###}"
# make sure to add newlines to the message, otherwise merge message
# will not look well
if [[ ! -z $2 ]]
then
readonly OPT_MSG="
$2
"
fi
source_functions() {
local fns_file="tools/lib/PR_bash.source"
source $fns_file
}
main() {
local remote_name="upstream"
local merge_branch="merge"
local base_branch # because assigning on the same line will break error code parsing.. http://www.tldp.org/LDP/abs/html/localvar.html
base_branch=$(git symbolic-ref HEAD --short)
source_functions
exit_if_not_pr $PR
add_remote
get_sources
merge git merge -S \
&& after_merge_msg $merge_branch \
|| after_merge_failure_msg $merge_branch
}
main