[Intel-gfx] [maintainer-tools PATCH] dim: Check for required tags before pushing a branch
Imre Deak
imre.deak at intel.com
Wed Mar 2 15:23:42 UTC 2016
Check if the committer's and author's Signed-off-by line and at least
one Reviewed-by line exists in each commit to be pushed.
Signed-off-by: Imre Deak <imre.deak at intel.com>
---
dim | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/dim b/dim
index 1addd6f..b951fb4 100755
--- a/dim
+++ b/dim
@@ -361,6 +361,37 @@ function dim_nightly_forget
git rerere forget
}
+function assert_one_commit_tag
+{
+ local commit_message="$1"
+ local tag="$2"
+
+ if ! echo "$commit_message" | grep -q "^$tag"; then
+ echo "Tag '$tag' missing from $commit"
+ return 1
+ fi
+
+}
+
+function assert_all_commit_tags
+{
+ local branch=$1
+ local new_commits=$(git rev-list $DIM_DRM_INTEL_REMOTE/$branch..$branch)
+
+ local commit
+ for commit in $new_commits; do
+ local commit_message=$(git show -s --format=%B $commit)
+ local committer_email=$(git show -s --format="%cn <%ce>" $commit)
+ local author_email=$(git show -s --format="%an <%ae>" $commit)
+
+ assert_one_commit_tag "$commit_message" "Signed-off-by: $author_email"
+ assert_one_commit_tag "$commit_message" "Signed-off-by: $committer_email"
+ assert_one_commit_tag "$commit_message" "Reviewed-by: .\+ <.\+ at .\+>"
+ done
+
+ return 0
+}
+
# push branch $1, rebuild nightly. the rest of the arguments are passed to git
# push.
function dim_push_branch
@@ -374,6 +405,7 @@ function dim_push_branch
shift
assert_branch $branch
+ assert_all_commit_tags $branch
git push $DRY_RUN $DIM_DRM_INTEL_REMOTE $branch "$@"
--
2.5.0
More information about the Intel-gfx
mailing list