We require all contributors to include a Signed-off-by
line to all commits in pull requests. This
matches what the Ceph upstream project does. For example:
Signed-off-by: Ken Dreyer <[email protected]>
You can manually add your Signed-off-by line to each commit log with the -s
flag (like git commit -s).
Alternatively, you can set up a local Git hook script to add this
Signed-off-by line to all commits automatically.
-
Clone the cephci repository:
git clone https://github.com/red-hat-storage/cephci -
cdinto the Git clone:cd cephci/ -
cdinto the.git/hooks/directory:cd .git/hooks/ -
Create a new
commit-msgshell script:vi commit-msg -
Copy this script into this
commit-msgfile:#!/bin/sh NAME=$(git config user.name) EMAIL=$(git config user.email) if [ -z "$NAME" ]; then echo "empty git config user.name" exit 1 fi if [ -z "$EMAIL" ]; then echo "empty git config user.email" exit 1 fi git interpret-trailers --if-exists doNothing --trailer \ "Signed-off-by: $NAME <$EMAIL>" \ --in-place "$1" -
Make that
commit-msgfile executable:chmod +x commit-msg -
Symlink this script to the
prepare-commit-msgfilename. Git will use both hooks.ln -s commit-msg prepare-commit-msg
Once you have completed these steps, Git will automatically add the
Signed-off-by: line to all of your commits.
If another developer asks you to add a Signed-off-by line to your in-progress
pull request, you can amend your commit to add it.
-
Check out the branch that has your work-in-progress commit:
git checkout <branchname> -
Ensure that the commit at the tip of this branch (your "HEAD" commit) is the one that lacks
Signed-off-byand it's the one you want to edit:git show -
Amend the commit. This will open up your
$EDITOR(eg. vim). If you set up thecommit-msgandprepare-commit-msgGit hooks (above), then you will see a newSigned-off-byline present now in the commit log. Save and quit your editor.git commit --amend -
Force-push your amended commit to your remote branch. (We have to force-push because we're technically rewriting history any time we use
--amend)git push -f
If you have an open pull request, you should see the "DCO bot" show a green checkmark for your pull request.