How do I sign my commits?

Configure the key in Git; the toggle in the commit panel follows it.

Innesta signs with whatever key git is configured to use, GPG or SSH. There is no key to set up inside the app — set it up for Git and Innesta follows:

git config --global user.signingkey <key>
git config --global gpg.format ssh      # for an SSH key
git config --global commit.gpgSign true

The Sign commit toggle in the commit panel starts in the state commit.gpgSign implies, and can be changed per commit. It governs amend and manual Merge Branch and Rebase Branch as well, and a revert opens its own box in the same state.

Two cases follow their own rule, so a history is not signed in patches:

  • a rebase Innesta started keeps the choice made when it began;
  • a rebase or cherry-pick started elsewhere keeps the policy Git was given.

When it fails

Innesta distinguishes the reasons rather than reporting one failure: no OpenPGP key, an SSH key that cannot be reached, pinentry not responding, SSH signing not configured, and a GPG home directory whose permissions Git refuses to use. The complete Git output stays on screen and can be copied.

The last of those has a one-line fix that is not obvious from the message: chmod 700 ~/.gnupg.