Skip to content
Agentmart
Submit a tool

git-commit-signing

Configure or troubleshoot repository Git signing with GPG, SSH, or S/MIME and the correct work/personal identity.

Skill by GuicedEE

IndexedApache-2.0★ 5
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/guicedee-git-commit-signing

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Configure or troubleshoot repository Git signing with GPG, SSH, or S/MIME and the correct work/personal identity.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Shell scripts

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/git-commit-signing

What's inside

Skill name
git-commit-signing
Description
Configure or troubleshoot repository Git signing with GPG, SSH, or S/MIME and the correct work/personal identity.
License
Apache-2.0
Instructions
168 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Files (8)

  • plugin.json · .claude-plugin/
  • LICENSE.txt
  • SKILL.md
  • apm.yml
  • signing-methods.md · references/
  • configure_signing.ps1 · scripts/
  • configure_signing.sh · scripts/
  • verify_signing.sh · scripts/

SKILL.md (first lines)

# Git Commit Signing

Set up and manage cryptographic commit signing with the right identity for every repository.

## Quick Start

1) **Detect context** — determine the repository remote, associated identity, and preferred signing method.
2) **Configure identity** — set `user.name` and `user.email` at the repo level (not global) to avoid cross-contamination.
3) **Configure signing** — choose GPG, SSH, or S/MIME and point git at the correct key.
4) **Verify** — make a test signed commit or tag and confirm it verifies cleanly.

## Workflow

### 1) Identify the repository context

```bash
# Show current repo remote + identity
git remote -v
git config user.name
git config user.email
git config commit.gpgsign
git config gpg.format
```

Determine from the remote URL whether this is a **personal**, **work**, or **open-source** project and select the matching identity.

### 2) Configure user identity (per-repo)

Always set identity at the **local** (repo) level to prevent leaking the wrong email:

```bash
git config --local user.name  "Your Name"
git config --local user.email "you@example.com"
```

### 3) Enable commit signing

#### Option A — GPG signing (default, widest platform support)

```bash
# List available GPG keys
gpg --list-secret-keys --keyid-format=long

# Configure git to use GPG
git config --local gpg.format openpgp
git config --local user.signingkey <KEY-ID>
git config --local commit.gpgsign true
git config --local tag.gpgsign true

# (Optional) tell git where gpg lives
git config --local gpg.program "gpg"          # Linux/macOS
git config --local gpg.program "gpg.exe"      # Windows — or full path
```

#### Option B — SSH signing (simple, no extra tooling if you already use SSH keys)

```bash
# List available SSH keys
ls -la ~/.ssh/*.pub

# Configure git to use SSH signing
git config --local gpg.format ssh
git config --local user.signingkey ~/.ssh/id_ed25519.pub   # path to your PUBLIC key
git config --local commit.gpgsign true
git config --local tag.gpgsign true

# (Recommended) set allowed-signers for local verification
echo "you@example.com $(cat ~/.ssh/id_ed25519.pub)" >> ~/.config/git/allowed_signers
git config --local gpg.ssh.allowedSignersFile ~/.config/git/allowed_signers
```

#### Option C — S/MIME signing (corporate PKI environments)

```bash
git config --local gpg.format x509
git config --local user.signingkey <CERTIFICATE-ID>
git config --local commit.gpgsign true
git config --local tag.gpgsign true
```

### 4) Verify the configuration

```bash
# Create a signed test commit
echo "test" >> .git/signing-test && git add .git/signing-test
git commit --allow-empty -S -m "chore: test commit signing"

# Verify the signature
git log --show-signature -1

# Clean up
git reset --soft HEAD~1
```

### 5) Multi-identity management with includeIf

For developers who contribute to many repos under different identities, use **conditional includes** in `~/.gitconfig`:

```gitconfig
# ~/.gitconfig  (global)
[user]
    name = Default Name
    email = default@example.com

# Work repos live under ~/work/
[includeIf "gitdir:~/work/"]
    path = ~/.gitconfig-work

# Personal repos live under ~/personal/
[includeIf "gitdir:~/personal/"]
    path = ~/.gitconfig-personal
```

```gitconfig
# ~/.gitconfig-work
[user]
    name = Work Name
    email = you@company.com
    signingkey = <WORK-KEY-ID>

From GuicedEE/ai-rules, Apache-2.0.

More from GuicedEE/ai-rules

Signals

Stars
5
Forks
0
Open issues
0
Last commit (this folder)
Oct 14, 2026 (14 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from GuicedEE

Cite this page

git-commit-signing skill. Agent Mart. https://agentmart.dev/skills/guicedee-git-commit-signing (last updated 2026-10-24)