summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2016-04-27 14:20:37 +0200
committerJunio C Hamano <gitster@pobox.com>2016-04-27 14:02:33 -0700
commit8cb01e2fd3a50b6d0893dfb066183f16a3c7a355 (patch)
treef4c60954733e0eca23c2ef00c72169fc61932170 /Documentation
parent90f7b16b3adc78d4bbabbd426fb69aa78c714f71 (diff)
downloadgit-8cb01e2fd3a50b6d0893dfb066183f16a3c7a355.tar.gz
http: support sending custom HTTP headers
We introduce a way to send custom HTTP headers with all requests. This allows us, for example, to send an extra token from build agents for temporary access to private repositories. (This is the use case that triggered this patch.) This feature can be used like this: git -c http.extraheader='Secret: sssh!' fetch $URL $REF Note that `curl_easy_setopt(..., CURLOPT_HTTPHEADER, ...)` takes only a single list, overriding any previous call. This means we have to collect _all_ of the headers we want to use into a single list, and feed it to cURL in one shot. Since we already unconditionally set a "pragma" header when initializing the curl handles, we can add our new headers to that list. For callers which override the default header list (like probe_rpc), we provide `http_copy_default_headers()` so they can do the same trick. Big thanks to Jeff King and Junio Hamano for their outstanding help and patient reviews. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/config.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 2cd6bdd7d2..091d3411c1 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1654,6 +1654,12 @@ http.emptyAuth::
a username in the URL, as libcurl normally requires a username for
authentication.
+http.extraHeader::
+ Pass an additional HTTP header when communicating with a server. If
+ more than one such entry exists, all of them are added as extra
+ headers. To allow overriding the settings inherited from the system
+ config, an empty value will reset the extra headers to the empty list.
+
http.cookieFile::
File containing previously stored cookie lines which should be used
in the Git http session, if they match the server. The file format