aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/transport/http/common.go
Commit message (Collapse)AuthorAgeFilesLines
* plumbing: Do not swallow http message coming from VCS providers.matej.risek2023-09-051-2/+16
| | | | | | For diagnostics reasons we want to surface error messages coming from VCS providers. That's why we introduce the reason field to Err struct in http package. This field can be used by an end user of the library in order to better understand failures.
* plumbing: http, Fix empty repos on Git v2.41+Paulo Gomes2023-07-011-0/+11
| | | | | | | | | | | | Git v2.41.0 comes with [changes](https://github.com/git/git/commit/933e3a4ee205353d8f093d5dfcd226fa432c4e58) that breaks go-git's assumptions for when detecting empty repositories. Go-git expects a flush instead of the first hash line. Instead, a dummy capabilities^{} with zero-id is returned. The change aims to allow for identifying the object format even when cloning empty repositories. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* plumbing: transport/http, add support for custom proxy URLsSanskar Jaiswal2023-05-041-1/+21
| | | | | | | | | | | | | | Add support for custom HTTP and HTTPS proxies for each session. The tests require server certificate and a matching private key to be able to run a TLS server and test HTTPS proxy functionality. The cert and the key are stored in `plumbing/transport/http/testdata/certs` and were generated using the following command: `openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt` Note: All details were left empty, except for the FQDN for which example.com was used. Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
* plumbing: transport/http, refactor transport to cache underlying transport ↵Sanskar Jaiswal2023-05-041-11/+136
| | | | | | | | | | | | | objects Refactor the in-built http transport to cache the underlying http transport objects mapped to its specific options for each Git transport object. This lets us reuse the transport for a specific set of configurations as recommended. (ref: https://pkg.go.dev/net/http#Transport) If there are no transport specific options provided, the default transport is used. Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
* plumbing: wire up contexts for Transport.AdvertisedReferences (#246)Andrew Suffield2021-03-261-2/+3
| | | | | * plumbing: wire up contexts for Transport.AdvertisedReferences * add more tests for context wiring
* *: migration from gopkg to go modulesMáximo Cuadros2020-03-101-4/+4
|
* Fix typos in comments, variables and function namesOleksandr Redko2019-10-241-1/+1
| | | | Signed-off-by: Oleksandr Redko <oleksandr.red+github@gmail.com>
* Make http.AuthMethod setAuth public. Fixes #1196JACQUES Francois2019-07-281-4/+4
| | | | Signed-off-by: JACQUES Francois <Francois.JACQUES@murex.com>
* http: improve TokenAuth documentationSantiago M. Mola2018-10-311-1/+8
| | | | | | | | | | Users are often confused with TokenAuth, since it might look that it should be used with GitHub's OAuth tokens. But that is not the case. TokenAuth implements HTTP bearer authentication. Most git servers will use HTTP basic authentication (user+passwords) even for OAuth tokens. Signed-off-by: Santiago M. Mola <santi@mola.io>
* plumbing: transport/http, Add missing host/port on redirect. Fixes #820Dave Henderson2018-10-271-0/+13
| | | | Signed-off-by: Dave Henderson <dhenderson@gmail.com>
* plumbing/transport: http, Adds token authentication support [Fixes #858]Eric Billingsley2018-06-081-0/+25
| | | | Signed-off-by: Eric Billingsley <ebilling@babrains.com>
* *: Use CheckClose with named returnsJavi Fontan2018-03-271-3/+3
| | | | | | | | Previously some close errors were losts. This is specially problematic in go-git as lots of work is done here like generating indexes and moving packfiles. Signed-off-by: Javi Fontan <jfontan@gmail.com>
* transport: http, fix services redirecting only info/refsMáximo Cuadros2018-02-141-8/+26
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* Close http.Body reader when neededAntonio Jesus Navarro Perez2017-11-241-1/+3
| | | | If we don't do that, all the goroutines opened by the Body Reader are never closed, causing a 'fatal: morestack on g0' error.
* transport: made public all the fields and standardize AuthMethodMáximo Cuadros2017-11-211-10/+5
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* *: add pointer to the new transport.Endpoint structMáximo Cuadros2017-11-211-8/+8
| | | | Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
* transport: http pushAntonio Jesus Navarro Perez2017-07-041-0/+73
|
* transport: make Endpoint an interface, fixes #362Santiago M. Mola2017-04-271-9/+3
| | | | | * add internal *url.URL implementation for regular URLs. * add internal implementation for SCP-like URLs.
* plumbing: transport, handle 403 in http transportChris Dostert2017-04-101-1/+3
|
* project: move imports from srcd.works to gopkg.inAntonio Jesus Navarro Perez2017-03-071-3/+3
| | | | To be able to fix #261 we will move again to gopkg.in before v4 stable release.
* package plumbing documentation improvements (#248)Máximo Cuadros2017-02-071-1/+1
|
* new srcd.works/go-git.v4 pathMáximo Cuadros2017-01-301-3/+3
|
* transport: remove SetAuth, fixes #206 (#210)Anthony Weems2017-01-171-14/+4
| | | | | * remove SetAuth functions, implement at NewUploadPackSession/NewReceivePackSession level. * propagate transport.Auth from Fetch/Pull/Clone options to the transport API.
* server: add git server implementation (#190)Santiago M. Mola2017-01-041-7/+7
| | | | | | | | | | | | | | | * server: add generic server implementation (transport-independent), both for git-upload-pack and git-receive-pack. * server: move internal functions to internal/common. * cli: add git-receive-pack and git-upload-pack implementations. * format/packfile: add UpdateObjectStorage function, extracted from Remote. * transport: implement tranport RPC-like, only with git-upload-pack and git-receive-pack methods. Client renamed to Transport. * storer: add storer.Storer interface. * protocol/packp: add UploadPackResponse constructor with packfile. * protocol/packp: fix UploadPackResponse encoding, add tests. * protocol/packp/capability: implement All.
* plumbing/transport: allow AdvertisedReferences being called multiple times. ↵Santiago M. Mola2016-12-081-0/+2
| | | | | | | | (#165) * AdvertisedReferences is now part of transport.Session. * It is allowed to be called more than once. * It is allowed to be called before and after FetchPack/SendPack. * Implementations cache its result.
* plumbing/transport: add common tests and fixes. (#136)Santiago M. Mola2016-11-251-5/+10
| | | | | | | | | | | | | | | | | | | * plumbing/transport: add common tests and fixes. * add common test suite for different transport implementations. * fix different behaviour on error handling for ssh and http. fixes issue #123. * support detecting unexisting repositories with SSH + GitHub/Bitbucket (apparently, there is no standard for all SSH servers). * remove ssh.NewClient (only DefaultClient makes sense at the moment). * make ssh.Client and http.Client private. * utils/ioutil: utilities to work with io interfaces. * * transport: test actual objects fetched, not just packfile size. * * fix doc typo. * * improve UploadPackRequest.IsEmpty
* transport: create Client interface (#132)Santiago M. Mola2016-11-231-0/+155
* plumbing: move plumbing/client package to plumbing/transport. * transport: create Client interface. * A Client can instantiate any client transport service. * InstallProtocol installs a Client for a given protocol, instead of just a UploadPackService. * A Client can open a session for fetch-pack or send-pack for a specific Endpoint. * Adapt ssh and http clients to the new client interface. * updated doc