gitea/routers/private
wxiaoguang b9a97ccd0e
Refactor web route ()
The old code is unnecessarily complex, and has many misuses.

Old code "wraps" a lot, wrap wrap wrap, it's difficult to understand
which kind of handler is used.

The new code uses a general approach, we do not need to write all kinds
of handlers into the "wrapper", do not need to wrap them again and
again.

New code, there are only 2 concepts:

1. HandlerProvider: `func (h any) (handlerProvider func (next)
http.Handler)`, it can be used as middleware
2. Use HandlerProvider to get the final HandlerFunc, and use it for
`r.Get()`


And we can decouple the route package from context package (see the
TODO).

# FAQ

## Is `reflect` safe?

Yes, all handlers are checked during startup, see the `preCheckHandler`
comment. If any handler is wrong, developers could know it in the first
time.

## Does `reflect` affect performance?

No. https://github.com/go-gitea/gitea/pull/24080#discussion_r1164825901

1. This reflect code only runs for each web handler call, handler is far
more slower: 10ms-50ms
2. The reflect is pretty fast (comparing to other code): 0.000265ms
3. XORM has more reflect operations already
..
actions.go add CLI command to register runner tokens ()
default_branch.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
hook_post_receive.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
hook_pre_receive.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
hook_proc_receive.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
hook_verification.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
internal.go Refactor web route ()
internal_repo.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
key.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
mail.go Prevent multiple `To` recipients ()
manager.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
manager_process.go Implement FSFE REUSE for golang files ()
manager_unix.go Implement FSFE REUSE for golang files ()
manager_windows.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
restore_repo.go Implement FSFE REUSE for golang files ()
serv.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" ()
ssh_log.go Refactor the setting to make unit test easier ()