From: Junio C Hamano <gitster@pobox.com>
To: Aditya Garg <gargaditya08@live.com>
Cc: "git@vger.kernel.org" <git@vger.kernel.org>,
Eric Sunshine <sunshine@sunshineco.com>,
Zi Yao <ziyao@disroot.org>,
"brian m . carlson" <sandals@crustytoothpaste.net>,
Jeff King <peff@peff.net>, Ben Knoble <ben.knoble@gmail.com>,
Phillip Wood <phillip.wood123@gmail.com>
Subject: Re: [PATCH v11 2/9] imap-send: add support for OAuth2.0 authentication
Date: Sun, 01 Jun 2025 17:13:12 -0700 [thread overview]
Message-ID: <xmqqtt4zvw4n.fsf@gitster.g> (raw)
In-Reply-To: <20250601083821.2440110-3-gargaditya08@live.com> (Aditya Garg's message of "Sun, 1 Jun 2025 08:38:51 +0000")
Aditya Garg <gargaditya08@live.com> writes:
> OAuth2.0 is a new way of authentication supported by various email providers
> these days. OAUTHBEARER and XOAUTH2 are the two most common mechanisms used
> for OAuth2.0. OAUTHBEARER is described in RFC5801[1] and RFC7628[2], whereas
> XOAUTH2 is Google's proprietary mechanism (See [3]).
>
> [1]: https://datatracker.ietf.org/doc/html/rfc5801
> [2]: https://datatracker.ietf.org/doc/html/rfc7628
> [3]: https://developers.google.com/workspace/gmail/imap/xoauth2-protocol#initial_client_response
>
> Signed-off-by: Aditya Garg <gargaditya08@live.com>
> ---
> Documentation/config/imap.adoc | 5 +-
> Documentation/git-imap-send.adoc | 47 +++++++-
> imap-send.c | 179 +++++++++++++++++++++++++++++--
> 3 files changed, 218 insertions(+), 13 deletions(-)
>
> diff --git a/Documentation/config/imap.adoc b/Documentation/config/imap.adoc
> index 3d28f72643..fef6487293 100644
> --- a/Documentation/config/imap.adoc
> +++ b/Documentation/config/imap.adoc
> @@ -40,5 +40,6 @@ imap.authMethod::
> Specify the authentication method for authenticating with the IMAP server.
> If Git was built with the NO_CURL option, or if your curl version is older
> than 7.34.0, or if you're running git-imap-send with the `--no-curl`
> - option, the only supported method is 'CRAM-MD5'. If this is not set
> - then 'git imap-send' uses the basic IMAP plaintext LOGIN command.
> + option, the only supported methods are 'CRAM-MD5', 'OAUTHBEARER' and
> + 'XOAUTH2'. If this is not set then `git imap-send` uses the basic IMAP
> + plaintext LOGIN command.
> diff --git a/Documentation/git-imap-send.adoc b/Documentation/git-imap-send.adoc
> index 26ccf4e433..08ecb1e829 100644
> --- a/Documentation/git-imap-send.adoc
> +++ b/Documentation/git-imap-send.adoc
> @@ -102,12 +102,18 @@ Using Gmail's IMAP interface:
>
> ---------
> [imap]
> - folder = "[Gmail]/Drafts"
> - host = imaps://imap.gmail.com
> - user = user@gmail.com
> - port = 993
> + folder = "[Gmail]/Drafts"
> + host = imaps://imap.gmail.com
> + user = user@gmail.com
> + port = 993
Nice to see such an attention to the detail here.
> ---------
>
> +Gmail does not allow using your regular password for `git imap-send`.
> +If you have multi-factor authentication set up on your Gmail account, you can generate
> +an app-specific password for use with `git imap-send`.
> +Visit https://security.google.com/settings/security/apppasswords to create it.
> +Alternatively, use OAuth2.0 authentication as described below.
The new lines added by this part of the documentation tends to be
overly long but with minor rewrapping you can stay under 75 columns
or so without too much effort.
> +If you want to use OAuth2.0 based authentication, you can specify `OAUTHBEARER`
> +or `XOAUTH2` mechanism in your config. It is more secure than using app-specific
> +passwords, and also does not enforce the need of having multi-factor authentication.
> +You will have to use an OAuth2.0 access token in place of your password when using this
Ditto.
> @@ -124,6 +159,10 @@ Just make sure to disable line wrapping in the email client (Gmail's web
> interface will wrap lines no matter what, so you need to use a real
> IMAP client).
>
> +In case you are using OAuth2.0 authentication, it is easier to use credential
> +helpers to generate tokens. Credential helpers suggested in
> +linkgit:git-send-email[1] can be used for `git imap-send` as well.
> +
> CAUTION
> -------
> It is still your responsibility to make sure that the email message
> diff --git a/imap-send.c b/imap-send.c
> index 37f94a37e8..4f3a1fb5b1 100644
> --- a/imap-send.c
> +++ b/imap-send.c
> @@ -139,7 +139,9 @@ enum CAPABILITY {
> LITERALPLUS,
> NAMESPACE,
> STARTTLS,
> - AUTH_CRAM_MD5
> + AUTH_CRAM_MD5,
> + AUTH_OAUTHBEARER,
> + AUTH_XOAUTH2
> };
These days, we allow and encourage ending the last member of an enum
with a trailing comma (cf. Documentation/CodingGuidelines) to reduce
future patch noise, just like you did ...
> static const char *cap_list[] = {
> @@ -149,6 +151,8 @@ static const char *cap_list[] = {
> "NAMESPACE",
> "STARTTLS",
> "AUTH=CRAM-MD5",
> + "AUTH=OAUTHBEARER",
> + "AUTH=XOAUTH2",
> };
... here for an array initializer elements.
> +static char *oauthbearer_base64(const char *user UNUSED,
> + const char *access_token UNUSED)
> +{
> + die("You are trying to use OAUTHBEARER authenticate method "
> + "with OpenSSL library, but its support has not been compiled in.");
> +}
> +
> +static char *xoauth2_base64(const char *user UNUSED,
> + const char *access_token UNUSED)
> +{
> + die("You are trying to use XOAUTH2 authenticate method "
> + "with OpenSSL library, but its support has not been compiled in.");
> +}
> +
> #endif
Let's keep a mental note that the lowest layer of the auth_*
function can die() for the methods that are not supported.
> static int auth_cram_md5(struct imap_store *ctx, const char *prompt)
> @@ -913,6 +993,46 @@ static int auth_cram_md5(struct imap_store *ctx, const char *prompt)
> return 0;
> }
>
> +static int auth_oauthbearer(struct imap_store *ctx, const char *prompt UNUSED)
> +{
> + int ret;
> + char *b64;
> +
> + b64 = oauthbearer_base64(ctx->cfg->user, ctx->cfg->pass);
> + if (!b64)
> + return error("OAUTHBEARER: base64 encoding failed");
> +
> + /* Send the base64-encoded response */
> + ret = socket_write(&ctx->imap->buf.sock, b64, strlen(b64));
> + if (ret != (int)strlen(b64)) {
> + free(b64);
> + return error("IMAP error: sending OAUTHBEARER response failed");
> + }
> +
> + free(b64);
> + return 0;
> +}
> +
> +static int auth_xoauth2(struct imap_store *ctx, const char *prompt UNUSED)
> +{
> + int ret;
> + char *b64;
> +
> + b64 = xoauth2_base64(ctx->cfg->user, ctx->cfg->pass);
> + if (!b64)
> + return error("XOAUTH2: base64 encoding failed");
> +
> + /* Send the base64-encoded response */
> + ret = socket_write(&ctx->imap->buf.sock, b64, strlen(b64));
> + if (ret != (int)strlen(b64)) {
> + free(b64);
> + return error("IMAP error: sending XOAUTH2 response failed");
> + }
> +
> + free(b64);
> + return 0;
> +}
It feels very strange to see auth_xoauth2() defined unconditionally
and leave xoauth2_base64() to die when built without OpenSSL.
Exactly the same comment applies to auth_oauthbearer() vs
oauthbearer_base64(), and auth_cram_md5() vs cram().
The reason why it looks strange to me is that I suspect that we'd
end up with an inconsistent behaviour like we see below.
For example, here, when we at runtime detect that ...
> + } else if (!strcmp(srvc->auth_method, "OAUTHBEARER")) {
> + if (!CAP(AUTH_OAUTHBEARER)) {
> + fprintf(stderr, "You specified "
> + "OAUTHBEARER as authentication method, "
> + "but %s doesn't support it.\n", srvc->host);
> + goto bail;
... the other end of the connection does not support the method the
end user specified, we gracefully fail like so, but we do not even
bother detecting at runtime that _we_ do not support the method the
end user specified, until ...
> + }
> + /* OAUTHBEARER */
> +
> + memset(&cb, 0, sizeof(cb));
> + cb.cont = auth_oauthbearer;
... this callback function, which is a stub when we do not support
the method, gets called ...
> + if (imap_exec(ctx, &cb, "AUTHENTICATE OAUTHBEARER") != RESP_OK) {
... here inside imap_exec(). It is probably no use that the
imap_exec() call is prepared to catch an error, as the unimplemented
method would call die() as we saw above.
> + fprintf(stderr, "IMAP error: AUTHENTICATE OAUTHBEARER failed\n");
> + goto bail;
> + }
Instead of making the lowest level helpers like cram(),
oauthbearer_base64(), and xoauth2_base64() conditionally be stubs
that die(), wouldn't it make more sense to conditionally define
helpers one lebel higher, i.e. those you stuff in cb.cont, only when
the user permits Git to be linked with OpenSSL, e.g.
#ifdef OpenSSL
static int auth_oauthbearer(struct imap_store *ctx, const char *p UNUSED)
{
...
}
#else /* !OpenSSL */
#define auth_oauthbearer NULL
#endif
and then write this part of the code more like this?
} else if (!strcmp(srvc->auth_method, "OAUTHBEARER")) {
if (!CAP(AUTH_OAUTHBEARER)) {
... the other side does not support ...
goto bail;
}
if (!auth_oauthbearer) {
... we do not support ...
goto bail;
}
memset(&cb, 0, sizeof(cb));
cb.cont = auth_oauthbearer;
if (imap_exec(ctx, &cb, ...) != RESP_OK) {
... we both support but we failed ...
goto bail;
}
Exactly the same comments appli to other methods.
Including "CRAM-MD5", that is. That one may have been iffy before
you started touching this file, but it is not a good excuse for
adding two similarly bad code in the patch series.
next prev parent reply other threads:[~2025-06-02 0:13 UTC|newest]
Thread overview: 248+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-22 17:27 [PATCH 0/2] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-22 17:27 ` [PATCH 1/2] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-22 18:00 ` Eric Sunshine
2025-05-22 18:04 ` Aditya Garg
2025-05-22 18:21 ` Aditya Garg
2025-05-22 18:25 ` Eric Sunshine
2025-05-22 18:28 ` Aditya Garg
2025-05-22 18:31 ` Jeff King
2025-05-22 18:33 ` Eric Sunshine
2025-05-24 16:28 ` Ben Knoble
2025-05-24 16:30 ` Aditya Garg
2025-05-24 16:32 ` Ben Knoble
2025-05-22 19:30 ` Aditya Garg
2025-05-22 19:32 ` Eric Sunshine
2025-05-22 19:40 ` Aditya Garg
2025-05-22 19:02 ` Junio C Hamano
2025-05-22 19:04 ` Aditya Garg
2025-05-22 18:29 ` Jeff King
2025-05-22 18:31 ` Aditya Garg
2025-05-22 17:27 ` [PATCH 2/2] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-22 19:45 ` brian m. carlson
2025-05-22 19:49 ` Aditya Garg
2025-05-22 19:49 ` [PATCH v2 0/3] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-22 19:49 ` [PATCH v2 1/3] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-22 23:27 ` Junio C Hamano
2025-05-22 19:49 ` [PATCH v2 2/3] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-22 19:49 ` [PATCH v2 3/3] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-23 3:58 ` [PATCH v3 0/3] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-23 3:58 ` [PATCH v3 1/3] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-23 3:58 ` [PATCH v3 2/3] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-23 3:58 ` [PATCH v3 3/3] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-23 12:14 ` [PATCH v4 0/4] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-23 12:14 ` [PATCH v4 1/4] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-23 12:14 ` [PATCH v4 2/4] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-23 12:14 ` [PATCH v4 3/4] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-05-23 12:14 ` [PATCH v4 4/4] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-25 18:54 ` [PATCH v5 0/6] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-25 18:54 ` [PATCH v5 1/6] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-25 18:54 ` [PATCH v5 2/6] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-25 18:54 ` [PATCH v5 3/6] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-05-25 18:55 ` [PATCH v5 4/6] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-25 18:55 ` [PATCH v5 5/6] imap-send: enable specifying the folder using the command line Aditya Garg
2025-05-25 18:55 ` [PATCH v5 6/6] imap-send: enable user to choose between libcurl and openssl using the config Aditya Garg
2025-05-25 20:34 ` [PATCH v5 0/6] imap-send: make it usable again and add OAuth2.0 support Eric Sunshine
2025-05-26 9:06 ` Aditya Garg
2025-05-28 7:38 ` [PATCH v6 " Aditya Garg
2025-05-28 7:38 ` [PATCH v6 1/6] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-28 7:38 ` [PATCH v6 2/6] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-28 7:38 ` [PATCH v6 3/6] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-05-28 7:38 ` [PATCH v6 4/6] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-28 7:38 ` [PATCH v6 5/6] imap-send: enable specifying the folder using the command line Aditya Garg
2025-05-28 7:38 ` [PATCH v6 6/6] imap-send: enable user to choose between libcurl and openssl using the config Aditya Garg
2025-05-28 17:17 ` [PATCH v7 0/9] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-28 17:17 ` [PATCH v7 1/9] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-28 17:17 ` [PATCH v7 2/9] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-28 17:17 ` [PATCH v7 3/9] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-05-28 17:17 ` [PATCH v7 4/9] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-28 17:17 ` [PATCH v7 5/9] imap-send: enable specifying the folder using the command line Aditya Garg
2025-05-28 17:17 ` [PATCH v7 6/9] imap-send: enable user to choose between libcurl and openssl using the config Aditya Garg
2025-05-29 13:58 ` Phillip Wood
2025-05-29 14:09 ` Aditya Garg
2025-05-29 16:25 ` Junio C Hamano
2025-05-29 16:28 ` Aditya Garg
2025-05-28 17:17 ` [PATCH v7 7/9] imap-send: fix numerous spelling and grammar mistakes in logs Aditya Garg
2025-05-28 17:17 ` [PATCH v7 8/9] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-05-28 17:17 ` [PATCH v7 9/9] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-05-29 16:21 ` [PATCH v8 0/9] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-29 16:21 ` [PATCH v8 1/9] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-29 16:21 ` [PATCH v8 2/9] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-29 16:21 ` [PATCH v8 3/9] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-05-29 16:21 ` [PATCH v8 4/9] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-29 16:21 ` [PATCH v8 5/9] imap-send: enable specifying the folder using the command line Aditya Garg
2025-05-29 16:21 ` [PATCH v8 6/9] imap-send: fix numerous spelling and grammar mistakes in logs Aditya Garg
2025-05-29 16:21 ` [PATCH v8 7/9] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-05-29 16:21 ` [PATCH v8 8/9] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-05-29 16:21 ` [PATCH v8 9/9] imap-send: add ability to list the available folders Aditya Garg
2025-05-30 17:32 ` [PATCH v9 0/9] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-05-30 17:32 ` [PATCH v9 1/9] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-05-30 17:32 ` [PATCH v9 2/9] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-05-30 20:51 ` Eric Sunshine
2025-05-30 21:12 ` Junio C Hamano
2025-05-31 9:06 ` Aditya Garg
2025-05-30 17:32 ` [PATCH v9 3/9] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-05-30 17:32 ` [PATCH v9 4/9] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-05-30 17:32 ` [PATCH v9 5/9] imap-send: enable specifying the folder using the command line Aditya Garg
2025-05-31 0:45 ` Junio C Hamano
2025-05-31 9:16 ` Aditya Garg
2025-06-01 2:40 ` Junio C Hamano
2025-06-01 4:41 ` Aditya Garg
2025-05-30 17:32 ` [PATCH v9 6/9] imap-send: fix numerous spelling and grammar mistakes in logs Aditya Garg
2025-05-30 17:32 ` [PATCH v9 7/9] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-05-30 17:32 ` [PATCH v9 8/9] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-05-30 17:32 ` [PATCH v9 9/9] imap-send: add ability to list the available folders Aditya Garg
2025-06-01 7:10 ` [PATCH v10 0/9] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-01 7:10 ` [PATCH v10 1/9] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-01 7:10 ` [PATCH v10 2/9] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-01 7:10 ` [PATCH v10 3/9] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-01 7:10 ` [PATCH v10 4/9] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-01 7:10 ` [PATCH v10 5/9] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-01 7:10 ` [PATCH v10 6/9] imap-send: fix numerous spelling and grammar mistakes in logs Aditya Garg
2025-06-01 7:28 ` Eric Sunshine
2025-06-01 7:30 ` Aditya Garg
2025-06-01 7:32 ` Aditya Garg
2025-06-01 7:10 ` [PATCH v10 7/9] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-01 7:10 ` [PATCH v10 8/9] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-01 7:10 ` [PATCH v10 9/9] imap-send: add ability to list the available folders Aditya Garg
2025-06-01 8:38 ` [PATCH v11 0/9] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-01 8:38 ` [PATCH v11 1/9] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-01 8:38 ` [PATCH v11 2/9] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-02 0:13 ` Junio C Hamano [this message]
2025-06-01 8:38 ` [PATCH v11 3/9] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-02 0:27 ` Junio C Hamano
2025-06-02 4:01 ` Aditya Garg
2025-06-01 8:38 ` [PATCH v11 4/9] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-01 8:38 ` [PATCH v11 5/9] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-02 0:39 ` Junio C Hamano
2025-06-02 3:45 ` Aditya Garg
2025-06-01 8:38 ` [PATCH v11 6/9] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-02 0:42 ` Junio C Hamano
2025-06-02 3:41 ` Aditya Garg
2025-06-01 8:38 ` [PATCH v11 7/9] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-01 8:38 ` [PATCH v11 8/9] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-02 0:43 ` Junio C Hamano
2025-06-01 8:38 ` [PATCH v11 9/9] imap-send: add ability to list the available folders Aditya Garg
2025-06-02 10:59 ` [PATCH v12 00/10] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-02 10:59 ` [PATCH v12 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-02 10:59 ` [PATCH v12 02/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-05 8:00 ` Jeff King
2025-06-05 8:12 ` Aditya Garg
2025-06-05 16:08 ` Junio C Hamano
2025-06-05 16:17 ` Aditya Garg
2025-06-05 16:28 ` Junio C Hamano
2025-06-05 22:50 ` Jeff King
2025-06-02 10:59 ` [PATCH v12 03/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-02 10:59 ` [PATCH v12 04/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-02 10:59 ` [PATCH v12 05/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-02 10:59 ` [PATCH v12 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-02 10:59 ` [PATCH v12 07/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-02 10:59 ` [PATCH v12 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-02 10:59 ` [PATCH v12 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-02 10:59 ` [PATCH v12 10/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-05 8:42 ` [PATCH v13 00/10] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-05 8:42 ` [PATCH v13 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-05 8:42 ` [PATCH v13 02/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-05 16:33 ` Junio C Hamano
2025-06-05 17:16 ` Aditya Garg
2025-06-05 18:48 ` Junio C Hamano
2025-06-06 3:28 ` Aditya Garg
2025-06-06 4:04 ` Aditya Garg
2025-06-06 4:35 ` Junio C Hamano
2025-06-06 4:40 ` Aditya Garg
2025-06-05 8:42 ` [PATCH v13 03/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-05 8:42 ` [PATCH v13 04/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-05 8:42 ` [PATCH v13 05/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-05 8:42 ` [PATCH v13 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-05 8:42 ` [PATCH v13 07/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-05 8:42 ` [PATCH v13 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-05 8:42 ` [PATCH v13 10/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-05 8:42 ` [PATCH v13 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-06 20:06 ` [PATCH v14 00/10] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-06 20:06 ` [PATCH v14 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-06 20:06 ` [PATCH v14 02/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-06 20:06 ` [PATCH v14 03/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-06 20:06 ` [PATCH v14 04/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-06 20:06 ` [PATCH v14 05/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-07 15:32 ` Junio C Hamano
2025-06-07 17:13 ` Aditya Garg
2025-06-08 4:20 ` Junio C Hamano
2025-06-08 7:54 ` Aditya Garg
2025-06-08 10:56 ` Aditya Garg
2025-06-06 20:06 ` [PATCH v14 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-06 20:06 ` [PATCH v14 07/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-06 20:06 ` [PATCH v14 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-06 20:06 ` [PATCH v14 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-06 20:06 ` [PATCH v14 10/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-08 10:55 ` [PATCH v15 00/10] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-08 10:55 ` [PATCH v15 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-08 10:55 ` [PATCH v15 02/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-08 10:55 ` [PATCH v15 03/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-08 10:55 ` [PATCH v15 04/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-08 10:55 ` [PATCH v15 05/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-08 10:55 ` [PATCH v15 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-08 10:55 ` [PATCH v15 07/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-08 10:55 ` [PATCH v15 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-08 10:55 ` [PATCH v15 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-08 10:55 ` [PATCH v15 10/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-08 20:50 ` [PATCH v15 00/10] imap-send: make it usable again and add OAuth2.0 support Junio C Hamano
2025-06-09 4:31 ` Aditya Garg
2025-06-09 7:23 ` Aditya Garg
2025-06-09 7:20 ` [PATCH v16 " Aditya Garg
2025-06-09 7:20 ` [PATCH v16 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-09 7:20 ` [PATCH v16 02/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-09 7:20 ` [PATCH v16 03/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-09 19:15 ` Junio C Hamano
2025-06-09 19:20 ` Aditya Garg
2025-06-09 7:20 ` [PATCH v16 04/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-09 7:20 ` [PATCH v16 05/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-09 7:20 ` [PATCH v16 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-09 18:33 ` Junio C Hamano
2025-06-09 7:20 ` [PATCH v16 07/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-09 18:42 ` Junio C Hamano
2025-06-09 7:20 ` [PATCH v16 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-09 18:55 ` Junio C Hamano
2025-06-09 19:02 ` Aditya Garg
2025-06-09 20:14 ` Junio C Hamano
2025-06-09 7:20 ` [PATCH v16 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-09 18:57 ` Junio C Hamano
2025-06-09 19:05 ` Aditya Garg
2025-06-09 7:20 ` [PATCH v16 10/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-09 15:41 ` [PATCH v17 00/10] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-09 15:41 ` [PATCH v17 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-09 15:41 ` [PATCH v17 02/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-09 15:41 ` [PATCH v17 03/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-09 15:41 ` [PATCH v17 04/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-09 15:41 ` [PATCH v17 05/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-09 15:41 ` [PATCH v17 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-09 15:41 ` [PATCH v17 07/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-09 15:41 ` [PATCH v17 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-09 15:41 ` [PATCH v17 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-09 15:41 ` [PATCH v17 10/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-09 20:22 ` [PATCH v18 00/10] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-09 20:22 ` [PATCH v18 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-09 20:22 ` [PATCH v18 02/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-09 20:22 ` [PATCH v18 03/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-09 20:22 ` [PATCH v18 04/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-17 10:27 ` Phillip Wood
2025-06-20 5:16 ` Aditya Garg
2025-06-20 7:00 ` Aditya Garg
2025-06-09 20:22 ` [PATCH v18 05/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-09 20:22 ` [PATCH v18 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-09 20:22 ` [PATCH v18 07/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-09 20:22 ` [PATCH v18 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-09 20:22 ` [PATCH v18 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-09 20:22 ` [PATCH v18 10/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-20 6:40 ` [PATCH v19 00/10] imap-send: make it usable again and add OAuth2.0 support Aditya Garg
2025-06-20 6:40 ` [PATCH v19 01/10] imap-send: fix bug causing cfg->folder being set to NULL Aditya Garg
2025-06-20 6:40 ` [PATCH v19 02/10] imap-send: fix memory leak in case auth_cram_md5 fails Aditya Garg
2025-06-20 6:40 ` [PATCH v19 03/10] imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL Aditya Garg
2025-06-20 6:40 ` [PATCH v19 04/10] imap-send: add support for OAuth2.0 authentication Aditya Garg
2025-06-20 6:40 ` [PATCH v19 05/10] imap-send: add PLAIN authentication method to OpenSSL Aditya Garg
2025-06-20 6:40 ` [PATCH v19 06/10] imap-send: enable specifying the folder using the command line Aditya Garg
2025-06-20 6:40 ` [PATCH v19 07/10] imap-send: add ability to list the available folders Aditya Garg
2025-06-20 6:40 ` [PATCH v19 08/10] imap-send: display port alongwith host when git credential is invoked Aditya Garg
2025-06-20 6:40 ` [PATCH v19 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-20 6:40 ` [PATCH v19 10/10] imap-send: fix minor mistakes in the logs Aditya Garg
2025-06-20 15:50 ` [PATCH v19 00/10] imap-send: make it usable again and add OAuth2.0 support Junio C Hamano
2025-06-23 9:09 ` Phillip Wood
2025-06-23 16:27 ` Junio C Hamano
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqtt4zvw4n.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=ben.knoble@gmail.com \
--cc=gargaditya08@live.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=phillip.wood123@gmail.com \
--cc=sandals@crustytoothpaste.net \
--cc=sunshine@sunshineco.com \
--cc=ziyao@disroot.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.
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 NNTP newsgroup(s).