Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,19 @@ jobs:
--output-dir "/tmp/device-driver-candidates/$id"
done

# The sign-off certifies authored content, so this asks it of the commits that
# carry some, and skips merge commits.
#
# A pull request that falls behind main has to be brought up to date before it
# can merge, and the merge commit GitHub's "Update branch" button writes has no
# Signed-off-by trailer. Counting it made a stale pull request unmergeable
# until someone force-pushed a trailer onto a commit they did not write, which
# nobody can do on a fork this repository cannot push to. That deadlocked #65
# and, before it, a0d5d73 on the same branch.
#
# The trade-off is that a conflict resolved inside a merge commit is content
# this check no longer sees. That is the same line the upstream DCO app draws,
# and the reviewable content still arrives on the authored commits either side.
dco:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
Expand All @@ -122,7 +135,11 @@ jobs:
echo "Missing Signed-off-by: $commit" >&2
missing=1
fi
done < <(git rev-list "$BASE_SHA..$HEAD_SHA")
done < <(git rev-list --no-merges "$BASE_SHA..$HEAD_SHA")
if [ "$missing" -ne 0 ]; then
echo "Sign off with 'git commit -s', or add the trailer to the commits above" >&2
echo "with 'git rebase --signoff $BASE_SHA' and force-push." >&2
fi
exit "$missing"

history-secret-scan:
Expand Down