gitea/services/webhook
Jason Song 174213530d
Fix `Permission` in API returned repository struct ()
The old code generates `structs.Repository.Permissions` with only
`access.Permission.AccessMode`, however, it should check the units too,
or the value could be incorrect. For example,
`structs.Repository.Permissions.Push` could be false even the doer has
write access to code unit.

Should fix
https://github.com/renovatebot/renovate/issues/14059#issuecomment-1047961128
(Not reported by it, I just found it when I was looking into this bug)

---

Review tips:

The major changes are
- `modules/structs/repo.go`
https://github.com/go-gitea/gitea/pull/25388/files#diff-870406f6857117f8b03611c43fca0ab9ed6d6e76a2d0069a7c1f17e8fa9092f7
- `services/convert/repository.go`
https://github.com/go-gitea/gitea/pull/25388/files#diff-7736f6d2ae894c9edb7729a80ab89aa183b888a26a811a0c1fdebd18726a7101

And other changes are passive.
..
deliver.go Improve queue and logger context ()
deliver_test.go Restructure `webhook` module ()
dingtalk.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()
dingtalk_test.go Restructure `webhook` module ()
discord.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()
discord_test.go Restructure `webhook` module ()
feishu.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()
feishu_test.go Restructure `webhook` module ()
general.go Restructure `webhook` module ()
general_test.go Implement FSFE REUSE for golang files ()
main_test.go Merge setting.InitXXX into one function with options ()
matrix.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()
matrix_test.go Restructure `webhook` module ()
msteams.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()
msteams_test.go Restructure `webhook` module ()
notifier.go Fix `Permission` in API returned repository struct ()
packagist.go Restructure `webhook` module ()
packagist_test.go Restructure `webhook` module ()
payloader.go New webhook trigger for receiving Pull Request review requests ()
slack.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()
slack_test.go Restructure `webhook` module ()
telegram.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()
telegram_test.go Restructure `webhook` module ()
webhook.go Rewrite queue ()
webhook_test.go Restructure `webhook` module ()
wechatwork.go Use the type RefName for all the needed places and fix pull mirror sync bugs ()