[libcamera-devel] [PATCH] utils: hooks: pre-push: Catch commits without committer's SoB
Kieran Bingham
kieran.bingham at ideasonboard.com
Wed Apr 29 16:32:03 CEST 2020
Hi Laurent,
On 26/04/2020 23:23, Laurent Pinchart wrote:
> Improve the pre-push git hook script to reject commits without the
> committer's Signed-off-by line.
>
I see Niklas has some concerns about the potential pipe errors here, but
as I've reviewed the patch that goes on top of this, I figure I should
add this here too:
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
I wonder when this will get turned into an extended python script ;-)
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> utils/hooks/pre-push | 31 +++++++++++++++++++++++++++----
> 1 file changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/utils/hooks/pre-push b/utils/hooks/pre-push
> index 34906ddee5ed..0eb8f5ce193d 100755
> --- a/utils/hooks/pre-push
> +++ b/utils/hooks/pre-push
> @@ -32,12 +32,35 @@ do
> range="$remote_sha..$local_sha"
> fi
>
> + #
> # Find invalid commits.
> - commit=$(git rev-list -n 1 --grep '^---' "$range")
> - if [ -n "$commit" ]
> + #
> + errors=0
> + for commit in $(git rev-list "$range")
> + do
> + msg=$(git cat-file commit "$commit")
> +
> + # 1. The commit message shall not contain a local changelog.
> + if echo "$msg" | grep -q '^--- *$'
> + then
> + echo >&2 "Found local changelog in commit $commit"
> + errors=$((errors+1))
> + fi
> +
> + # 2. The commit message shall have a Signed-off-by line
> + # corresponding the committer.
> + committer=$(echo "$msg" | grep '^committer ' | head -1 | \
> + cut -d ' ' -f 2- | rev | cut -d ' ' -f 3- | rev)
> + if ! echo "$msg" | grep -F -q "Signed-off-by: ${committer}"
> + then
> + echo >&2 "Missing committer Signed-off-by in commit $commit"
> + errors=$((errors+1))
> + fi
> + done
> +
> + if [ $errors != 0 ]
> then
> - echo >&2 "Found local changelog in $local_ref, not pushing"
> - echo >&2 "Check commit $commit"
> + echo >&2 "Found $errors errors in $local_ref, not pushing"
> exit 1
> fi
> done
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list