--- /dev/null
+name: DCO Check (Developer Certificate of Origin)
+
+on:
+ pull_request:
+ types: [opened, synchronize, reopened]
+
+jobs:
+ check-dco:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ with:
+ fetch-depth: 0
+ - name: Check DCO
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GH_REPO: ${{ github.repository }}
+ run: |
+ echo "Checking DCO for PR #${{ github.event.pull_request.number }}"
+ commits=$(gh pr view ${{ github.event.pull_request.number }} --json commits --jq '.commits[].oid')
+ for commit in $commits
+ do
+ if ! git log --format='%B' -n 1 $commit | grep -q "Signed-off-by:"; then
+ echo "Commit $commit is missing Signed-off-by line"
+ exit 1
+ fi
+ done
+ echo "All commits have Signed-off-by lines"