Subject: [PATCH 0/7] Flags and config to sign pushes by default

From: Dave Borowitz <[email-masked]>
Date: Thu, 13 Aug 2015 15:00:44 -0400

Remembering to pass --signed to git push on every push is extra typing that is
easy to forget, and just leads to annoyance if the remote has a hook that makes
signed pushes required. Add a config option push.gpgSign, analogous to
commit.gpgSign, allowing users to set this flag by default.

Since --signed push will simply fail on any remote that does not advertise a
push cert nonce, actually setting this to true is not very useful (except for
the super-paranoid who would never want to push to a server that does not
support signed pushes). So, add a third state to this boolean, "if-possible",
to sign the push if and only if supported by the server. To keep parity between
the config and command line options, add a --signed-if-possible flag to git
push as well.

The "if-possible" name and weird tri-state boolean is basically a straw man,
and I am happy to change if someone has a clearer suggestion.

Dave Borowitz (7):
  Documentation/git-push.txt: Document when --signed may fail
  Documentation/git-send-pack.txt: Flow long synopsis line
  Documentation/git-send-pack.txt: Document --signed
  gitremote-helpers.txt: Document pushcert option
  transport: Remove git_transport_options.push_cert
  Support signing pushes iff the server supports it
  Add a config option push.gpgSign for default signed pushes

 Documentation/config.txt            |  8 ++++++++
 Documentation/git-push.txt          | 11 +++++++++--
 Documentation/git-send-pack.txt     | 17 ++++++++++++++++-
 Documentation/gitremote-helpers.txt |  3 +++
 builtin/push.c                      | 26 +++++++++++++++++++++++++-
 builtin/send-pack.c                 | 33 +++++++++++++++++++++++++++++++--
 remote-curl.c                       | 14 ++++++++++----
 send-pack.c                         | 18 +++++++++++++++---
 send-pack.h                         |  8 +++++++-
 transport-helper.c                  | 34 +++++++++++++++++-----------------
 transport.c                         | 11 +++++++----
 transport.h                         |  6 +++---
 12 files changed, 151 insertions(+), 38 deletions(-)

-- 
2.5.0.276.gf5e568e