git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: "D. Ben Knoble" <ben.knoble@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: send-email and credential
Date: Mon, 12 Aug 2019 18:18:29 -0400	[thread overview]
Message-ID: <20190812221828.GA16666@sigill.intra.peff.net> (raw)
In-Reply-To: <CALnO6CDFQA_QmR_2tczPNJiymfUxt8LUiF0HOvKJKreB_HmNuQ@mail.gmail.com>

On Mon, Aug 12, 2019 at 06:00:14PM -0400, D. Ben Knoble wrote:

> I spent a frustrating hour today hoping to setup git-send-email with
> my gmail account. I've been able to confirm the following:
> 
> 1. git credential works
> 
>     # git config credential.helper
>     osxkeychain
>     # git credential fill <<EOF
>     protocol=smtp
>     host=smtp.gmail.com
>     EOF
> 
> outputs the correct username and password for my gmail account.
> 
> 2. I (believe) I setup gitconfig properly:
> 
>     # git config --get-regexp sendemail
>     sendemail.smtpserver smtp.gmail.com
>     sendemail.smtpuser ben.knoble@gmail.com
>     sendemail.smtpencryption tls
>     sendemail.smtpserverport 587
>     sendemail.multiedit true
>     sendemail.annotate true
> 
> The strange behavior I'm seeing is that git-send-email
> 
> - prompted me via macOS for keychain access (expected). This happened
> twice in a row, during one command invocation.
> - prompted me at the terminal for my gmail password (shudders)
> - stopped prompting me for messages send after that (all within the 15
> minutes of the first two)
> 
> Can anyone confirm/explain what's going on? I've never tried to use
> git-credential or git-send-email before, so I'm new to those (but
> experienced in git).

I don't think the saved password you're showing in step 1 is being
triggered, because Git will send "smtp.gmail.com:587" as the host field.
Try this:

  git \
    -c credential.helper='!exec >/tmp/credential.log 2>&1; cat; echo' \
    send-email ...

which will log the helper request. It probably has:

  host=smtp.gmail.com:587

I don't remember the specifics of how osxkeychain works, but it probably
pulls the port out of that and passes it to the OS keychain code, which
then treats it as a separate service.

So the rest of the behavior makes sense, then, I think:

  1. macOS had to unlock your keychain to check for the entry

  2. finding nothing, Git prompted you for the password

  3. Git then wrote the password to keychain after it was used
     successfully (maybe prompting another keychain password request? I
     don't know how it works), after which it should work without a
     password.

-Peff

  reply	other threads:[~2019-08-12 22:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-12 22:00 send-email and credential D. Ben Knoble
2019-08-12 22:18 ` Jeff King [this message]
2019-08-12 22:25   ` D. Ben Knoble

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190812221828.GA16666@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=ben.knoble@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).