GithubVerify 0.2.0

dotnet tool install --global GithubVerify --version 0.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local GithubVerify --version 0.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=GithubVerify&version=0.2.0
                    
nuke :add-package GithubVerify --version 0.2.0
                    

GithubVerify

A .NET CLI tool to help you configure and verify SSH-based commit signing for GitHub.
Built with ❤️ by The Standard Organization, a coalition of the Good-Hearted Engineers.

Repository: https://github.com/hassanhabib/GithubVerify


✨ Features

  • ✅ Check if Git commit signing is enabled and uses SSH
  • 🔐 Generate SSH keys and configure Git signing
  • 🔍 Verify that your latest commit is signed and valid
  • ♻️ Reset the SSH commit signing configuration safely

🛠 Requirements


🚀 Getting Started

Clone and Build

git clone https://github.com/hassanhabib/GithubVerify.git
cd GithubVerify
dotnet build

Run

dotnet run --project GithubVerify.csproj [command] [username] [email]

Or, if compiled:

dotnet GithubVerify.dll [command] [username] [email]

⚙️ Commands

Command Description
check Check if Git commit signing is enabled and using SSH
setup Generate SSH key, configure Git to sign commits using SSH
verify Verify that the latest Git commit is signed correctly
reset Reset the SSH signing configuration (removes keys and Git config changes)

📘 Examples

Check commit signing status

dotnet GithubVerify.dll check

Setup SSH commit signing

dotnet GithubVerify.dll setup hassan hassan@example.com

Verify the latest commit signature

dotnet GithubVerify.dll verify

Reset all Git + SSH signing configuration

dotnet GithubVerify.dll reset

🔐 What setup Does

  • Generates id_ed25519 key in ~/.ssh if missing
  • Creates .gnupg/allowed_signers file with your SSH public key
  • Updates your global Git configuration with:
    • gpg.format = ssh
    • user.signingkey = ~/.ssh/id_ed25519.pub
    • commit.gpgsign = true
    • gpg.ssh.allowedSignersFile = ~/.gnupg/allowed_signers
  • Instructs you to upload your public key to GitHub

🚨 Reset Behavior

The reset command will:

  • Unset Git configuration values related to SSH commit signing
  • Delete the id_ed25519 and id_ed25519.pub files from ~/.ssh
  • Delete the allowed_signers file from ~/.gnupg

⚠️ This is irreversible. Use only if you want to fully reset your signing configuration.


🔑 Upload Your Public Key

After running setup, you must upload your public key to GitHub:

cat ~/.ssh/id_ed25519.pub

Then go to: https://github.com/settings/ssh


🧑‍💻 Developed By

Hassan Habib


📄 License

The Standard Software License Copyright © The Standard Organization
See LICENSE for full text.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.2.0 224 7/14/2025
0.1.0 147 7/13/2025

This is a beta release