From: Aditya Garg <gargaditya08@live•com>
To: Junio C Hamano <gitster@pobox•com>,
"git@vger•kernel.org" <git@vger•kernel.org>
Cc: Eric Sunshine <sunshine@sunshineco•com>,
"sandals@crustytoothpaste•net" <sandals@crustytoothpaste•net>,
Julian Swagemakers <julian@swagemakers•org>,
Zi Yao <ziyao@disroot•org>, Jeff King <peff@peff•net>,
Ben Knoble <ben.knoble@gmail•com>
Subject: [PATCH v5 2/6] imap-send: add support for OAuth2.0 authentication
Date: Sun, 25 May 2025 18:54:57 +0000 [thread overview]
Message-ID: <20250525185447.29982-3-gargaditya08@live.com> (raw)
In-Reply-To: <20250525185447.29982-1-gargaditya08@live.com>
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 | 46 +++++++-
imap-send.c | 176 +++++++++++++++++++++++++++++--
3 files changed, 214 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..c3a46070ac 100644
--- a/Documentation/git-imap-send.adoc
+++ b/Documentation/git-imap-send.adoc
@@ -102,12 +102,19 @@ 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
---------
+Gmail does not allow using your account 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.
+If you do not want to enable multi-factor authentication, you can use OAuth2.0
+authentication as described below.
+
[NOTE]
You might need to instead use: `folder = "[Google Mail]/Drafts"` if you get an error
that the "Folder doesn't exist".
@@ -116,6 +123,33 @@ that the "Folder doesn't exist".
If your Gmail account is set to another language than English, the name of the "Drafts"
folder will be localized.
+If you want to use OAuth2.0 based authentication, you can specify `OAUTHBEARER`
+or `XOAUTH2` mechanism in your config. In such a case you will have to use an
+OAuth2.0 access token in place of your password.
+
+---------
+[imap]
+ folder = "[Gmail]/Drafts"
+ host = imaps://imap.gmail.com
+ user = user@gmail•com
+ port = 993
+ authmethod = OAUTHBEARER
+---------
+
+Using Outlook's IMAP interface:
+
+Unlike Gmail, Outlook only supports OAuth2.0 based authentication. Also, it
+supports only `XOAUTH2` as the mechanism.
+
+---------
+[imap]
+ folder = "Drafts"
+ host = imaps://outlook.office365.com
+ user = user@outlook•com
+ port = 993
+ authmethod = XOAUTH2
+---------
+
Once the commits are ready to be sent, run the following command:
$ git format-patch --cover-letter -M --stdout origin/master | git imap-send
@@ -124,6 +158,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..04b507fc14 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
};
static const char *cap_list[] = {
@@ -149,6 +151,8 @@ static const char *cap_list[] = {
"NAMESPACE",
"STARTTLS",
"AUTH=CRAM-MD5",
+ "AUTH=OAUTHBEARER",
+ "AUTH=XOAUTH2",
};
#define RESP_OK 0
@@ -885,6 +889,66 @@ static char *cram(const char *challenge_64, const char *user, const char *pass)
return (char *)response_64;
}
+static char *oauthbearer_base64(const char *user, const char *access_token)
+{
+ int raw_len, b64_len;
+ char *raw, *b64;
+
+ /* Compose the OAUTHBEARER string
+ *
+ * "n,a=" {User} ",^Ahost=" {Host} "^Aport=" {Port} "^Aauth=Bearer " {Access Token} "^A^A
+ *
+ * The first part `n,a=" {User} ",` is the gs2 header described in RFC5801.
+ * * gs2-cb-flag `n` -> client does not support CB
+ * * gs2-authzid `a=" {User} "`
+ *
+ * The second part are key value pairs containing host, port and auth as
+ * described in RFC7628.
+ *
+ * https://datatracker.ietf.org/doc/html/rfc5801
+ * https://datatracker.ietf.org/doc/html/rfc7628
+ */
+ raw_len = strlen(user) + strlen(access_token) + 20;
+ raw = xmallocz(raw_len + 1);
+ snprintf(raw, raw_len + 1, "n,a=%s,\001auth=Bearer %s\001\001", user, access_token);
+
+ /* Base64 encode */
+ b64 = xmallocz(ENCODED_SIZE(strlen(raw)));
+ b64_len = EVP_EncodeBlock((unsigned char *)b64, (unsigned char *)raw, strlen(raw));
+ free(raw);
+
+ if (b64_len < 0) {
+ free(b64);
+ return NULL;
+ }
+ return b64;
+}
+
+static char *xoauth2_base64(const char *user, const char *access_token)
+{
+ int raw_len, b64_len;
+ char *raw, *b64;
+
+ /* Compose the XOAUTH2 string
+ * "user=" {User} "^Aauth=Bearer " {Access Token} "^A^A"
+ * https://developers.google.com/workspace/gmail/imap/xoauth2-protocol#initial_client_response
+ */
+ raw_len = strlen(user) + strlen(access_token) + 20;
+ raw = xmallocz(raw_len + 1);
+ snprintf(raw, raw_len + 1, "user=%s\001auth=Bearer %s\001\001", user, access_token);
+
+ /* Base64 encode */
+ b64 = xmallocz(ENCODED_SIZE(strlen(raw)));
+ b64_len = EVP_EncodeBlock((unsigned char *)b64, (unsigned char *)raw, strlen(raw));
+ free(raw);
+
+ if (b64_len < 0) {
+ free(b64);
+ return NULL;
+ }
+ return b64;
+}
+
#else
static char *cram(const char *challenge_64 UNUSED,
@@ -895,6 +959,20 @@ static char *cram(const char *challenge_64 UNUSED,
"you have to build git-imap-send with OpenSSL library.");
}
+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 it's 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 it's support has not been compiled in.");
+}
+
#endif
static int auth_cram_md5(struct imap_store *ctx, const char *prompt)
@@ -913,6 +991,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;
+}
+
static void server_fill_credential(struct imap_server_conf *srvc, struct credential *cred)
{
if (srvc->user && srvc->pass)
@@ -1104,6 +1222,36 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc, const c
fprintf(stderr, "IMAP error: AUTHENTICATE CRAM-MD5 failed\n");
goto bail;
}
+ } 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;
+ }
+ /* OAUTHBEARER */
+
+ memset(&cb, 0, sizeof(cb));
+ cb.cont = auth_oauthbearer;
+ if (imap_exec(ctx, &cb, "AUTHENTICATE OAUTHBEARER") != RESP_OK) {
+ fprintf(stderr, "IMAP error: AUTHENTICATE OAUTHBEARER failed\n");
+ goto bail;
+ }
+ } else if (!strcmp(srvc->auth_method, "XOAUTH2")) {
+ if (!CAP(AUTH_XOAUTH2)) {
+ fprintf(stderr, "You specified "
+ "XOAUTH2 as authentication method, "
+ "but %s doesn't support it.\n", srvc->host);
+ goto bail;
+ }
+ /* XOAUTH2 */
+
+ memset(&cb, 0, sizeof(cb));
+ cb.cont = auth_xoauth2;
+ if (imap_exec(ctx, &cb, "AUTHENTICATE XOAUTH2") != RESP_OK) {
+ fprintf(stderr, "IMAP error: AUTHENTICATE XOAUTH2 failed\n");
+ goto bail;
+ }
} else {
fprintf(stderr, "Unknown authentication method:%s\n", srvc->host);
goto bail;
@@ -1405,7 +1553,11 @@ static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)
server_fill_credential(srvc, cred);
curl_easy_setopt(curl, CURLOPT_USERNAME, srvc->user);
- curl_easy_setopt(curl, CURLOPT_PASSWORD, srvc->pass);
+
+ if (!srvc->auth_method ||
+ strcmp(srvc->auth_method, "XOAUTH2") ||
+ strcmp(srvc->auth_method, "OAUTHBEARER"))
+ curl_easy_setopt(curl, CURLOPT_PASSWORD, srvc->pass);
strbuf_addstr(&path, srvc->use_ssl ? "imaps://" : "imap://");
strbuf_addstr(&path, srvc->host);
@@ -1423,11 +1575,21 @@ static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)
curl_easy_setopt(curl, CURLOPT_PORT, srvc->port);
if (srvc->auth_method) {
- struct strbuf auth = STRBUF_INIT;
- strbuf_addstr(&auth, "AUTH=");
- strbuf_addstr(&auth, srvc->auth_method);
- curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, auth.buf);
- strbuf_release(&auth);
+ if (!strcmp(srvc->auth_method, "XOAUTH2") ||
+ !strcmp(srvc->auth_method, "OAUTHBEARER")) {
+
+ /* While CURLOPT_XOAUTH2_BEARER looks as if it only supports XOAUTH2,
+ * upon debugging, it has been found that it is capable of detecting
+ * the best option out of OAUTHBEARER and XOAUTH2.
+ */
+ curl_easy_setopt(curl, CURLOPT_XOAUTH2_BEARER, srvc->pass);
+ } else {
+ struct strbuf auth = STRBUF_INIT;
+ strbuf_addstr(&auth, "AUTH=");
+ strbuf_addstr(&auth, srvc->auth_method);
+ curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, auth.buf);
+ strbuf_release(&auth);
+ }
}
if (!srvc->use_ssl)
--
2.43.0
next prev parent reply other threads:[~2025-05-25 18:55 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 ` Aditya Garg [this message]
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
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 09/10] imap-send: display the destination mailbox when sending a message Aditya Garg
2025-06-05 8:42 ` [PATCH v13 10/10] imap-send: add ability to list the available folders 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=20250525185447.29982-3-gargaditya08@live.com \
--to=gargaditya08@live$(echo .)com \
--cc=ben.knoble@gmail$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=gitster@pobox$(echo .)com \
--cc=julian@swagemakers$(echo .)org \
--cc=peff@peff$(echo .)net \
--cc=sandals@crustytoothpaste$(echo .)net \
--cc=sunshine@sunshineco$(echo .)com \
--cc=ziyao@disroot$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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