Fix #31185 (cherry picked from commit e25d6960b5749fbf7f88ebb6b27878c0459817da)
This commit is contained in:
		
							parent
							
								
									41bea7c23a
								
							
						
					
					
						commit
						baad8337f9
					
				
					 8 changed files with 16 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -211,7 +211,7 @@ func createRequest(ctx context.Context, method, url string, headers map[string]s
 | 
			
		|||
	for key, value := range headers {
 | 
			
		||||
		req.Header.Set(key, value)
 | 
			
		||||
	}
 | 
			
		||||
	req.Header.Set("Accept", MediaType)
 | 
			
		||||
	req.Header.Set("Accept", AcceptHeader)
 | 
			
		||||
 | 
			
		||||
	return req, nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -251,6 +251,6 @@ func handleErrorResponse(resp *http.Response) error {
 | 
			
		|||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Trace("ErrorResponse: %v", er)
 | 
			
		||||
	log.Trace("ErrorResponse(%v): %v", resp.Status, er)
 | 
			
		||||
	return errors.New(er.Message)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -155,7 +155,7 @@ func TestHTTPClientDownload(t *testing.T) {
 | 
			
		|||
	hc := &http.Client{Transport: RoundTripFunc(func(req *http.Request) *http.Response {
 | 
			
		||||
		assert.Equal(t, "POST", req.Method)
 | 
			
		||||
		assert.Equal(t, MediaType, req.Header.Get("Content-type"))
 | 
			
		||||
		assert.Equal(t, MediaType, req.Header.Get("Accept"))
 | 
			
		||||
		assert.Equal(t, AcceptHeader, req.Header.Get("Accept"))
 | 
			
		||||
 | 
			
		||||
		var batchRequest BatchRequest
 | 
			
		||||
		err := json.NewDecoder(req.Body).Decode(&batchRequest)
 | 
			
		||||
| 
						 | 
				
			
			@ -263,7 +263,7 @@ func TestHTTPClientUpload(t *testing.T) {
 | 
			
		|||
	hc := &http.Client{Transport: RoundTripFunc(func(req *http.Request) *http.Response {
 | 
			
		||||
		assert.Equal(t, "POST", req.Method)
 | 
			
		||||
		assert.Equal(t, MediaType, req.Header.Get("Content-type"))
 | 
			
		||||
		assert.Equal(t, MediaType, req.Header.Get("Accept"))
 | 
			
		||||
		assert.Equal(t, AcceptHeader, req.Header.Get("Accept"))
 | 
			
		||||
 | 
			
		||||
		var batchRequest BatchRequest
 | 
			
		||||
		err := json.NewDecoder(req.Body).Decode(&batchRequest)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,8 @@ import (
 | 
			
		|||
const (
 | 
			
		||||
	// MediaType contains the media type for LFS server requests
 | 
			
		||||
	MediaType = "application/vnd.git-lfs+json"
 | 
			
		||||
	// Some LFS servers offer content with other types, so fallback to '*/*' if application/vnd.git-lfs+json cannot be served
 | 
			
		||||
	AcceptHeader = "application/vnd.git-lfs+json;q=0.9, */*;q=0.8"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// BatchRequest contains multiple requests processed in one batch operation.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,6 +37,7 @@ func (a *BasicTransferAdapter) Download(ctx context.Context, l *Link) (io.ReadCl
 | 
			
		|||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	log.Debug("Download Request: %+v", req)
 | 
			
		||||
	resp, err := performRequest(ctx, a.client, req)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ func TestBasicTransferAdapter(t *testing.T) {
 | 
			
		|||
	p := Pointer{Oid: "b5a2c96250612366ea272ffac6d9744aaf4b45aacd96aa7cfcb931ee3b558259", Size: 5}
 | 
			
		||||
 | 
			
		||||
	roundTripHandler := func(req *http.Request) *http.Response {
 | 
			
		||||
		assert.Equal(t, MediaType, req.Header.Get("Accept"))
 | 
			
		||||
		assert.Equal(t, AcceptHeader, req.Header.Get("Accept"))
 | 
			
		||||
		assert.Equal(t, "test-value", req.Header.Get("test-header"))
 | 
			
		||||
 | 
			
		||||
		url := req.URL.String()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -477,7 +477,7 @@ func buildObjectResponse(rc *requestContext, pointer lfs_module.Pointer, downloa
 | 
			
		|||
			}
 | 
			
		||||
 | 
			
		||||
			// This is only needed to workaround https://github.com/git-lfs/git-lfs/issues/3662
 | 
			
		||||
			verifyHeader["Accept"] = lfs_module.MediaType
 | 
			
		||||
			verifyHeader["Accept"] = lfs_module.AcceptHeader
 | 
			
		||||
 | 
			
		||||
			rep.Actions["verify"] = &lfs_module.Link{Href: rc.VerifyLink(pointer), Header: verifyHeader}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,7 +105,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
 | 
			
		|||
	for _, test := range tests {
 | 
			
		||||
		session := loginUser(t, test.user.Name)
 | 
			
		||||
		req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/%s.git/info/lfs/locks", test.repo.FullName()), map[string]string{"path": test.path})
 | 
			
		||||
		req.Header.Set("Accept", lfs.MediaType)
 | 
			
		||||
		req.Header.Set("Accept", lfs.AcceptHeader)
 | 
			
		||||
		req.Header.Set("Content-Type", lfs.MediaType)
 | 
			
		||||
		resp := session.MakeRequest(t, req, test.httpResult)
 | 
			
		||||
		if len(test.addTime) > 0 {
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +123,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
 | 
			
		|||
	for _, test := range resultsTests {
 | 
			
		||||
		session := loginUser(t, test.user.Name)
 | 
			
		||||
		req := NewRequestf(t, "GET", "/%s.git/info/lfs/locks", test.repo.FullName())
 | 
			
		||||
		req.Header.Set("Accept", lfs.MediaType)
 | 
			
		||||
		req.Header.Set("Accept", lfs.AcceptHeader)
 | 
			
		||||
		resp := session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
		var lfsLocks api.LFSLockList
 | 
			
		||||
		DecodeJSON(t, resp, &lfsLocks)
 | 
			
		||||
| 
						 | 
				
			
			@ -135,7 +135,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/%s.git/info/lfs/locks/verify", test.repo.FullName()), map[string]string{})
 | 
			
		||||
		req.Header.Set("Accept", lfs.MediaType)
 | 
			
		||||
		req.Header.Set("Accept", lfs.AcceptHeader)
 | 
			
		||||
		req.Header.Set("Content-Type", lfs.MediaType)
 | 
			
		||||
		resp = session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
		var lfsLocksVerify api.LFSLockListVerify
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +159,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
 | 
			
		|||
	for _, test := range deleteTests {
 | 
			
		||||
		session := loginUser(t, test.user.Name)
 | 
			
		||||
		req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/%s.git/info/lfs/locks/%s/unlock", test.repo.FullName(), test.lockID), map[string]string{})
 | 
			
		||||
		req.Header.Set("Accept", lfs.MediaType)
 | 
			
		||||
		req.Header.Set("Accept", lfs.AcceptHeader)
 | 
			
		||||
		req.Header.Set("Content-Type", lfs.MediaType)
 | 
			
		||||
		resp := session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
		var lfsLockRep api.LFSLockResponse
 | 
			
		||||
| 
						 | 
				
			
			@ -172,7 +172,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
 | 
			
		|||
	for _, test := range resultsTests {
 | 
			
		||||
		session := loginUser(t, test.user.Name)
 | 
			
		||||
		req := NewRequestf(t, "GET", "/%s.git/info/lfs/locks", test.repo.FullName())
 | 
			
		||||
		req.Header.Set("Accept", lfs.MediaType)
 | 
			
		||||
		req.Header.Set("Accept", lfs.AcceptHeader)
 | 
			
		||||
		resp := session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
		var lfsLocks api.LFSLockList
 | 
			
		||||
		DecodeJSON(t, resp, &lfsLocks)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -85,7 +85,7 @@ func TestAPILFSBatch(t *testing.T) {
 | 
			
		|||
 | 
			
		||||
	newRequest := func(t testing.TB, br *lfs.BatchRequest) *RequestWrapper {
 | 
			
		||||
		return NewRequestWithJSON(t, "POST", "/user2/lfs-batch-repo.git/info/lfs/objects/batch", br).
 | 
			
		||||
			SetHeader("Accept", lfs.MediaType).
 | 
			
		||||
			SetHeader("Accept", lfs.AcceptHeader).
 | 
			
		||||
			SetHeader("Content-Type", lfs.MediaType)
 | 
			
		||||
	}
 | 
			
		||||
	decodeResponse := func(t *testing.T, b *bytes.Buffer) *lfs.BatchResponse {
 | 
			
		||||
| 
						 | 
				
			
			@ -448,7 +448,7 @@ func TestAPILFSVerify(t *testing.T) {
 | 
			
		|||
 | 
			
		||||
	newRequest := func(t testing.TB, p *lfs.Pointer) *RequestWrapper {
 | 
			
		||||
		return NewRequestWithJSON(t, "POST", "/user2/lfs-verify-repo.git/info/lfs/verify", p).
 | 
			
		||||
			SetHeader("Accept", lfs.MediaType).
 | 
			
		||||
			SetHeader("Accept", lfs.AcceptHeader).
 | 
			
		||||
			SetHeader("Content-Type", lfs.MediaType)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue