A GitHub App built with Probot that enforces GPG signatures on pull requests
This GitHub App is no longer being kept up-to-date and is considered deprecated. It is recommended to use GitHub's built-in enforcement of commit signature verification instead.
# Install dependencies
npm install
# Run the bot
npm start
Configure this app on your organizations and repositories. Be sure to enable required status checks if you want to enforce GPG signatures on all pull requests.
See docs/deploy.md if you would like to run your own instance of this plugin.
Git supports signing commits with GPG keys to verify commit authorship beyond the easy-to-forge author field.
GitHub supports verifying GPG signatures on commits and has an excellent series of help articles for creating a GPG key, using it with git
locally, and linking it to a GitHub account.
After installation, this app checks all commits of new (or newly updated) pull requests for valid GPG signatures according to the GitHub API. Note that for the status check to be success
, every contributor of a pull request must:
- set up a GPG key on their local machine
- sign all of their commits in the pull request with that key
- link that key with their GitHub account
Otherwise, the app will set the status to failure
.
If you or any of your contributors use a GitHub-provided noreply
email address to keep a personal email address private, that noreply
address should be used when creating a GPG key. Make sure that git
's config is also using that noreply
address so that GitHub associates the GPG key correctly and validates it.
- Git Tools - Signing Your Work
- GitHub Help: Signing commits with GPG
- GitHub Help: Troubleshooting GPG
- GitHub Blog: GPG signature verification
- GitHub Developer: Preview support for Git signing
- The GNU Privacy Guard
- Setting up Git commit signing on macOS
- @JasonEtco for the lovingly crafted logo
- @probot for the Probot head, which was found on wikimedia.org and is from clipartkid.com, licensed CC BY-SA 4.0