You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Peter Gardfjäll
4562d40fce
fix hard-coded timeout and error panic in API archive download endpoint ( #20925 )
...
* fix hard-coded timeout and error panic in API archive download endpoint
This commit updates the `GET /api/v1/repos/{owner}/{repo}/archive/{archive}`
endpoint which prior to this PR had a couple of issues.
1. The endpoint had a hard-coded 20s timeout for the archiver to complete after
which a 500 (Internal Server Error) was returned to client. For a scripted
API client there was no clear way of telling that the operation timed out and
that it should retry.
2. Whenever the timeout _did occur_, the code used to panic. This was caused by
the API endpoint "delegating" to the same call path as the web, which uses a
slightly different way of reporting errors (HTML rather than JSON for
example).
More specifically, `api/v1/repo/file.go#GetArchive` just called through to
`web/repo/repo.go#Download`, which expects the `Context` to have a `Render`
field set, but which is `nil` for API calls. Hence, a `nil` pointer error.
The code addresses (1) by dropping the hard-coded timeout. Instead, any
timeout/cancelation on the incoming `Context` is used.
The code addresses (2) by updating the API endpoint to use a separate call path
for the API-triggered archive download. This avoids producing HTML-errors on
errors (it now produces JSON errors).
Signed-off-by: Peter Gardfjäll <peter.gardfjall.work@gmail.com>
2 years ago
..
activity.go
Move some files into models' sub packages ( #20262 )
2 years ago
attachment.go
Move some repository related code into sub package ( #19711 )
3 years ago
blame.go
Switch Unicode Escaping to a VSCode-like system ( #19990 )
2 years ago
branch.go
Add more linters to improve code readability ( #19989 )
3 years ago
cherry_pick.go
Remove `RequireHighlightJS` field, update plantuml example. ( #19615 )
3 years ago
commit.go
Move some code into models/git ( #19879 )
3 years ago
compare.go
Move some files into models' sub packages ( #20262 )
2 years ago
download.go
Slightly simplify LastCommitCache ( #20444 )
2 years ago
editor.go
Move some files into models' sub packages ( #20262 )
2 years ago
editor_test.go
Add more linters to improve code readability ( #19989 )
3 years ago
find.go
Feature: Find files in repo ( #15028 )
3 years ago
http.go
Use request timeout for git service rpc ( #20689 )
2 years ago
http_test.go
…
issue.go
Move some files into models' sub packages ( #20262 )
2 years ago
issue_content_history.go
Make better use of i18n ( #20096 )
3 years ago
issue_dependency.go
Move issues related files into models/issues ( #19931 )
3 years ago
issue_label.go
Move issues related files into models/issues ( #19931 )
3 years ago
issue_label_test.go
Move issues related files into models/issues ( #19931 )
3 years ago
issue_lock.go
Move issues related files into models/issues ( #19931 )
3 years ago
issue_stopwatch.go
Stop spurious APIFormat stopwatches logs ( #20008 )
3 years ago
issue_test.go
Move issues related files into models/issues ( #19931 )
3 years ago
issue_timetrack.go
Move issues related files into models/issues ( #19931 )
3 years ago
issue_watch.go
Move issues related files into models/issues ( #19931 )
3 years ago
lfs.go
Switch Unicode Escaping to a VSCode-like system ( #19990 )
2 years ago
main_test.go
Use a struct as test options ( #19393 )
3 years ago
middlewares.go
Renamed ctx.User to ctx.Doer. ( #19161 )
3 years ago
migrate.go
Unify repo settings & show better error ( #19828 )
3 years ago
milestone.go
Move milestone to models/issues/ ( #19278 )
3 years ago
packages.go
Show hint to link package to repo when viewing empty repo package list ( #20504 )
2 years ago
patch.go
Remove `RequireHighlightJS` field, update plantuml example. ( #19615 )
3 years ago
projects.go
Check if project has the same repository id with issue when assign project to issue ( #20133 )
3 years ago
projects_test.go
Decouple unit test code from business code ( #17623 )
3 years ago
pull.go
Move some files into models' sub packages ( #20262 )
2 years ago
pull_review.go
Dismiss prior pull reviews if done via web in review dismiss ( #20197 )
2 years ago
release.go
Move some files into models' sub packages ( #20262 )
2 years ago
release_test.go
Move some files into models' sub packages ( #20262 )
2 years ago
render.go
Allow render HTML with css/js external links ( #19017 )
3 years ago
repo.go
fix hard-coded timeout and error panic in API archive download endpoint ( #20925 )
2 years ago
search.go
Remove `RequireHighlightJS` field, update plantuml example. ( #19615 )
3 years ago
setting.go
Move some files into models' sub packages ( #20262 )
2 years ago
setting_protected_branch.go
Move some code into models/git ( #19879 )
3 years ago
settings_test.go
Move access and repo permission to models/perm/access ( #19350 )
3 years ago
tag.go
Move some code into models/git ( #19879 )
3 years ago
topic.go
Renamed ctx.User to ctx.Doer. ( #19161 )
3 years ago
treelist.go
Feature: Find files in repo ( #15028 )
3 years ago
view.go
Move some files into models' sub packages ( #20262 )
2 years ago
view_test.go
Support localized README ( #20508 )
2 years ago
webhook.go
refactor webhook *EditPost ( #20780 )
2 years ago
wiki.go
Move some files into models' sub packages ( #20262 )
2 years ago
wiki_test.go
Make git.OpenRepository accept Context ( #19260 )
3 years ago