gitea/cmd
wxiaoguang 580e21dd2e
Refactor LFS SSH and internal routers (#32473)
Gitea instance keeps reporting a lot of errors like "LFS SSH transfer connection denied, pure SSH protocol is disabled". When starting debugging the problem, there are more problems found. Try to address most of them:

* avoid unnecessary server side error logs (change `fail()` to not log them)
* figure out the broken tests/user2/lfs.git (added comments)
* avoid `migratePushMirrors` failure when a repository doesn't exist (ignore them)
* avoid "Authorization" (internal&lfs) header conflicts, remove the tricky "swapAuth" and use "X-Gitea-Internal-Auth"
* make internal token comparing constant time (it wasn't a serous problem because in a real world it's nearly impossible to timing-attack the token, but good to fix and backport)
* avoid duplicate routers (introduce AddOwnerRepoGitLFSRoutes)
* avoid "internal (private)" routes using session/web context (they should use private context)
* fix incorrect "path" usages (use "filepath")
* fix incorrect mocked route point handling (need to check func nil correctly)
* split some tests from "git general tests" to "git misc tests" (to keep "git_general_test.go" simple)

Still no correct result for Git LFS SSH tests. So the code is kept there
(`tests/integration/git_lfs_ssh_test.go`) and a FIXME explains the details.
2024-11-12 02:38:22 +00:00
..
actions.go
admin_auth_ldap_test.go
admin_auth_ldap.go
admin_auth_oauth.go
admin_auth_stmp.go
admin_auth.go
admin_regenerate.go
admin_user_change_password.go
admin_user_create_test.go
admin_user_create.go
admin_user_delete.go
admin_user_generate_access_token.go
admin_user_list.go
admin_user_must_change_password.go
admin_user.go
admin.go
cert.go
cmd.go
docs.go
doctor_convert.go
doctor_test.go
doctor.go
dump_repo.go
dump.go
embedded.go
generate.go
hook_test.go
hook.go
keys.go
mailer.go
main_test.go
main.go
manager_logging.go
manager.go
migrate_storage_test.go
migrate_storage.go
migrate.go
restore_repo.go
serv.go
web_acme.go
web_graceful.go
web_https.go
web.go