gitea/cmd
a1012112796 3705168837
Add agit flow support in gitea ()
* feature: add agit flow support

ref: https://git-repo.info/en/2020/03/agit-flow-and-git-repo/

example:

```Bash
git checkout -b test
echo "test" >> README.md
git commit -m "test"
git push origin HEAD:refs/for/master -o topic=test
```

Signed-off-by: a1012112796 <1012112796@qq.com>

* fix lint

* simplify code add fix some nits

* update merge help message

* Apply suggestions from code review. Thanks @jiangxin

* add forced-update message

* fix lint

* splite writePktLine

* add refs/for/<target-branch>/<topic-branch> support also

* Add test code add fix api

* fix lint

* fix test

* skip test if git version < 2.29

* try test with git 2.30.1

* fix permission check bug

* fix some nit

* logic implify and test code update

* fix bug

* apply suggestions from code review

* prepare for merge

Signed-off-by: Andrew Thornton <art27@cantab.net>

* fix permission check bug

- test code update
- apply suggestions from code review @zeripath

Signed-off-by: a1012112796 <1012112796@qq.com>

* fix bug when target branch isn't exist

* prevent some special push and fix some nits

* fix lint

* try splite

* Apply suggestions from code review

- fix permission check
- handle user rename

* fix version negotiation

* remane

* fix template

* handle empty repo

* ui: fix  branch link under the title

* fix nits

Co-authored-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
..
admin.go Refactor: Move login out of models ()
admin_auth_ldap.go Refactor: Move login out of models ()
admin_auth_ldap_test.go Refactor: Move login out of models ()
cert.go Add golangci ()
cmd.go Second attempt at preventing zombies ()
convert.go Add --quiet and --verbose to gitea web to control initial logging ()
docs.go Add docs command ()
doctor.go Refactor doctor ()
dump.go Add an abstract json layout to make it's easier to change json library ()
dump_repo.go Add --quiet and --verbose to gitea web to control initial logging ()
embedded.go Retry rename on lock induced failures ()
embedded_stub.go Implement "embedded" command to extract static resources ()
generate.go Add asymmetric JWT signing ()
hook.go Add agit flow support in gitea ()
hook_test.go Add agit flow support in gitea ()
keys.go Second attempt at preventing zombies ()
mailer.go Second attempt at preventing zombies ()
manager.go Second attempt at preventing zombies ()
migrate.go Add --quiet and --verbose to gitea web to control initial logging ()
migrate_storage.go Fix various documentation, user-facing, and source comment typos ()
restore_repo.go Second attempt at preventing zombies ()
serv.go Add agit flow support in gitea ()
web.go Add --quiet and --verbose to gitea web to control initial logging ()
web_graceful.go Move FCGI req.URL.Path fix-up to the FCGI listener ()
web_letsencrypt.go Support HTTP/2 in Let's Encrypt ()