mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2026-07-24 17:49:42 +03:00
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Commits](https://github.com/actions/checkout/compare/v5...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.3 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
52 lines
1.7 KiB
YAML
52 lines
1.7 KiB
YAML
name: check-commit-signed
|
|
|
|
on:
|
|
pull_request:
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
check-commit-signed:
|
|
permissions:
|
|
contents: read
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
fetch-depth: 0 # we need full history for commit verification
|
|
persist-credentials: false
|
|
|
|
- name: Check commit signatures
|
|
run: |
|
|
if [ "${{ github.event_name }}" != "pull_request" ]; then
|
|
echo "Not a PR event, skipping signature check"
|
|
exit 0
|
|
fi
|
|
|
|
RANGE="${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}"
|
|
echo "Checking commits in PR range: $RANGE"
|
|
|
|
if [ -z "$(git rev-list $RANGE)" ]; then
|
|
echo "No new commits in this PR, skipping signature check"
|
|
exit 0
|
|
fi
|
|
|
|
# Check raw commit objects for a "gpgsig" header as a fast early signal for
|
|
# contributors. Both GPG and SSH signatures use this header.
|
|
# This avoids relying on %G? which returns N for SSH commits.
|
|
# This check is not a security enforcement — unsigned commits cannot be merged
|
|
# anyway due to the GitHub repository merge policy.
|
|
unsigned=""
|
|
for sha in $(git rev-list $RANGE); do
|
|
if ! git cat-file commit "$sha" | grep -q "^gpgsig"; then
|
|
unsigned="$unsigned $sha"
|
|
fi
|
|
done
|
|
if [ -n "$unsigned" ]; then
|
|
echo "Found unsigned commits:"
|
|
echo "$unsigned"
|
|
exit 1
|
|
fi
|
|
|
|
echo "All commits in PR are signed (GPG or SSH)" |