credential: let helpers tell us to quit
authorJeff King <peff@peff.net>
Thu, 4 Dec 2014 03:46:48 +0000 (22:46 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 4 Dec 2014 18:11:12 +0000 (10:11 -0800)
commit59b386526a6cdd0289cdf35dd8038ae1bdfd630f
tree75207446ba795af1d774a889f3b62487ccec224c
parent7fa1365c54c28b3cd9375539f381b54061a1880d
credential: let helpers tell us to quit

When we are trying to fill a credential, we loop over the
set of defined credential-helpers, then fall back to running
askpass, and then finally prompt on the terminal. Helpers
which cannot find a credential are free to tell us nothing,
but they cannot currently ask us to stop prompting.

This patch lets them provide a "quit" attribute, which asks
us to stop the process entirely (avoiding running more
helpers, as well as the askpass/terminal prompt).

This has a few possible uses:

  1. A helper which prompts the user itself (e.g., in a
     dialog) can provide a "cancel" button to the user to
     stop further prompts.

  2. Some helpers may know that prompting cannot possibly
     work. For example, if their role is to broker a ticket
     from an external auth system and that auth system
     cannot be contacted, there is no point in continuing
     (we need a ticket to authenticate, and the user cannot
     provide one by typing it in).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/technical/api-credentials.txt
credential.c
credential.h
t/t0300-credentials.sh