mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 14:31:02 +00:00 
			
		
		
		
	fix(repo): return code 400 instead of 500 for invalid archive type (#7029)
The error handled might be non-nil only when format is bad, which is 400 (Bad Request) Fixes #7026 Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com> Co-authored-by: 0ko <0ko@noreply.codeberg.org> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7029 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Co-authored-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com> Co-committed-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								17db5f3793
							
						
					
				
			
			
				commit
				
					
						6fb069cc50
					
				
			
		
					 2 changed files with 6 additions and 2 deletions
				
			
		|  | @ -474,7 +474,7 @@ func Download(ctx *context.Context) { | |||
| 	uri := ctx.Params("*") | ||||
| 	ext, tp, err := archiver_service.ParseFileName(uri) | ||||
| 	if err != nil { | ||||
| 		ctx.ServerError("ParseFileName", err) | ||||
| 		ctx.NotFound("ParseFileName", err) | ||||
| 		return | ||||
| 	} | ||||
| 	aReq, err := archiver_service.NewRequest(ctx, ctx.Repo.Repository.ID, ctx.Repo.GitRepo, strings.TrimSuffix(uri, ext), tp) | ||||
|  | @ -554,7 +554,7 @@ func InitiateDownload(ctx *context.Context) { | |||
| 	uri := ctx.Params("*") | ||||
| 	ext, tp, err := archiver_service.ParseFileName(uri) | ||||
| 	if err != nil { | ||||
| 		ctx.ServerError("ParseFileName", err) | ||||
| 		ctx.NotFound("ParseFileName", err) | ||||
| 		return | ||||
| 	} | ||||
| 	aReq, err := archiver_service.NewRequest(ctx, ctx.Repo.Repository.ID, ctx.Repo.GitRepo, strings.TrimSuffix(uri, ext), tp) | ||||
|  |  | |||
|  | @ -39,6 +39,10 @@ func TestRepoDownloadArchive(t *testing.T) { | |||
| 	require.NoError(t, err) | ||||
| 	assert.Empty(t, resp.Header().Get("Content-Encoding")) | ||||
| 	assert.Len(t, bs, 320) | ||||
| 
 | ||||
| 	// Verify that unrecognized archive type returns 404 | ||||
| 	req = NewRequest(t, "GET", "/user2/repo1/archive/master.invalid") | ||||
| 	MakeRequest(t, req, http.StatusNotFound) | ||||
| } | ||||
| 
 | ||||
| func TestRepoDownloadArchiveSubdir(t *testing.T) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue