mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-17 04:40:43 +01:00
83 lines
2.5 KiB
Bash
Executable File
83 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# This script "validates" a PR from a git PoV. We check that best
|
|
# practices are kept which most importantly means we try to detect
|
|
# fixup commits. These should not be part of a PR and squashed into
|
|
# the main commit.
|
|
# Copyright (C) 2019 by Rainer Gerhards
|
|
exitcode=0;
|
|
git log --oneline HEAD...origin/master >gitlog
|
|
if head -1 gitlog | grep -q "Merge " gitlog; then
|
|
printf 'This looks like a github merge branch. Removing first commit:\n'
|
|
head -1 gitlog
|
|
sed -i '1d' gitlog
|
|
fi
|
|
printf '%d commits in feature branch:\n' $(wc -l < gitlog)
|
|
cat gitlog
|
|
printf '\n'
|
|
|
|
if ! tests/CI/check_commit_text.py gitlog; then
|
|
cat >&2 <<- EOF
|
|
|
|
There are problems with the commit titles. Please fix them, ammend your
|
|
commit via "git commit --amend" and force-push the fixed branch via
|
|
"git push -f".
|
|
|
|
EOF
|
|
cat <<- EOF
|
|
For more info, please see
|
|
https://rainer.gerhards.net/2019/03/howto-great-pull-request.html#descriptive_commit_message
|
|
|
|
EOF
|
|
exitcode=1
|
|
fi
|
|
|
|
if [ $(wc -l < gitlog) -ge 3 ]; then
|
|
cat >&2 <<- EOF
|
|
This feature branch contains quite some commits. Consider squashing them.
|
|
|
|
Note: you can use
|
|
$ git commit -a --amend
|
|
to apply changes to a previous commit. No new commit will be created if
|
|
done so.
|
|
|
|
You possibly wonder why this CI check complains. See
|
|
https://rainer.gerhards.net/2019/03/squash-your-pull-requests.html
|
|
|
|
for the reasons and ways to fix the problems. It also describes what
|
|
happens if you do/want/can not fix the problems found by this check.
|
|
|
|
EOF
|
|
cat <<- EOF
|
|
For more info, please see
|
|
https://rainer.gerhards.net/2019/03/howto-great-pull-request.html#onecommit_featurepr
|
|
|
|
EOF
|
|
exitcode=1
|
|
fi
|
|
if grep -q "Merge " gitlog; then
|
|
grep "Merge " gitlog
|
|
cat >&2 <<- EOF
|
|
This feature branch contains merge commits. This almost always indicates that it
|
|
contains unwanted merges where a rebase should have been applied.
|
|
Please consider squashing the branch and/or rebasing it to current master.
|
|
|
|
You possibly wonder why this CI check complains. See
|
|
https://rainer.gerhards.net/2019/03/squash-your-pull-requests.html
|
|
|
|
for the reasons and ways to fix the problems. It also describes what
|
|
happens if you do/want/can not fix the problems found by this check.
|
|
|
|
EOF
|
|
exitcode=1
|
|
fi
|
|
|
|
if [ "$exitcode" != "0" ]; then
|
|
cat >&2 <<- EOF
|
|
======================================================================
|
|
General advise on best practices for rsyslog pull requests:
|
|
https://rainer.gerhards.net/2019/03/howto-great-pull-request.html
|
|
======================================================================
|
|
EOF
|
|
fi
|
|
exit $exitcode
|