[GITEA] Fix API inconsistencies
- Document the correct content types for Git archives. Add code that actually sets the correct application type for `.zip` and `.tar.gz`. - When an action (POST/PUT/DELETE method) was successful, an 204 status code should be returned instead of status code 200. - Add and adjust integration testing. - Resolves #2180 - Resolves #2181 (cherry picked from commit 6c8c4512b530e966557a5584efbbb757638b3429) (cherry picked from commit 3f74bcb14df99ee75a170813979beb5ce04c8027) (cherry picked from commit 6ed9057fd76b2d5d0dfdb3c663367ae861ab8093)
This commit is contained in:
parent
0b503e5e86
commit
bbe5a881cc
3 changed files with 19 additions and 2 deletions
|
@ -257,7 +257,9 @@ func GetArchive(ctx *context.APIContext) {
|
|||
// ---
|
||||
// summary: Get an archive of a repository
|
||||
// produces:
|
||||
// - application/json
|
||||
// - application/octet-stream
|
||||
// - application/zip
|
||||
// - application/gzip
|
||||
// parameters:
|
||||
// - name: owner
|
||||
// in: path
|
||||
|
@ -337,7 +339,17 @@ func download(ctx *context.APIContext, archiveName string, archiver *repo_model.
|
|||
}
|
||||
defer fr.Close()
|
||||
|
||||
contentType := ""
|
||||
switch archiver.Type {
|
||||
case git.ZIP:
|
||||
contentType = "application/zip"
|
||||
case git.TARGZ:
|
||||
// Per RFC6713.
|
||||
contentType = "application/gzip"
|
||||
}
|
||||
|
||||
ctx.ServeContent(fr, &context.ServeHeaderOptions{
|
||||
ContentType: contentType,
|
||||
Filename: downloadName,
|
||||
LastModified: archiver.CreatedUnix.AsLocalTime(),
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue