forgejo/modules
Aaron F 3963625b6e
Webhook for Wiki changes (#20219)
Add support for triggering webhook notifications on wiki changes.

This PR contains frontend and backend for webhook notifications on wiki actions (create a new page, rename a page, edit a page and delete a page). The frontend got a new checkbox under the Custom Event -> Repository Events section. There is only one checkbox for create/edit/rename/delete actions, because it makes no sense to separate it and others like releases or packages follow the same schema.

![image](https://user-images.githubusercontent.com/121972/177018803-26851196-831f-4fde-9a4c-9e639b0e0d6b.png)

The actions itself are separated, so that different notifications will be executed (with the "action" field). All the webhook receivers implement the new interface method (Wiki) and the corresponding tests.

When implementing this, I encounter a little bug on editing a wiki page. Creating and editing a wiki page is technically the same action and will be handled by the ```updateWikiPage``` function. But the function need to know if it is a new wiki page or just a change. This distinction is done by the ```action``` parameter, but this will not be sent by the frontend (on form submit). This PR will fix this by adding the ```action``` parameter with the values ```_new``` or ```_edit```, which will be used by the ```updateWikiPage``` function.

I've done integration tests with matrix and gitea (http).

![image](https://user-images.githubusercontent.com/121972/177018795-eb5cdc01-9ba3-483e-a6b7-ed0e313a71fb.png)

Fix #16457

Signed-off-by: Aaron Fischer <mail@aaron-fischer.net>
2022-09-04 20:54:23 +01:00
..
activitypub Refactor AssertExistsAndLoadBean to use generics (#20797) 2022-08-16 10:22:25 +08:00
analyze Simplify IsVendor (#19626) 2022-05-06 10:12:30 +01:00
appstate Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
auth Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
avatar Go 1.19 format (#20758) 2022-08-30 21:15:45 -05:00
base Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
cache Update go-chi/cache to utilize Ping() (#19719) 2022-05-15 20:43:27 +02:00
charset Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
container Move reaction to models/issues/ (#19264) 2022-03-31 17:20:39 +08:00
context Support Issue forms and PR forms (#20987) 2022-09-02 15:58:49 +08:00
convert Fix 500 on time tracking in timeline API (#21052) 2022-09-04 15:01:23 +01:00
csv Go 1.19 format (#20758) 2022-08-30 21:15:45 -05:00
doctor Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
emoji Go 1.19 format (#20758) 2022-08-30 21:15:45 -05:00
eventsource Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
generate Use base32 for 2FA scratch token (#18384) 2022-01-26 12:10:10 +08:00
git test: use T.TempDir to create temporary test directory (#21043) 2022-09-04 16:14:53 +01:00
gitgraph Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
graceful Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
hcaptcha
highlight Rework file highlight rendering and fix yaml copy-paste (#19967) 2022-07-30 21:17:43 +02:00
hostmatcher Add proxy host into allow list (#20798) 2022-08-16 20:15:54 -04:00
httpcache Add Cache-Control header to html and api responses, add no-transform (#20432) 2022-07-23 14:38:03 +08:00
httplib refactor httplib (#18338) 2022-01-19 19:31:39 -05:00
indexer test: use T.TempDir to create temporary test directory (#21043) 2022-09-04 16:14:53 +01:00
issue/template Support Issue forms and PR forms (#20987) 2022-09-02 15:58:49 +08:00
json Refactor legacy unknwon/com package, improve golangci lint (#19284) 2022-04-01 16:47:50 +08:00
lfs Removed some vestigial code related to Range bounds checks (#20312) 2022-07-28 11:04:36 +08:00
log test: use T.TempDir to create temporary test directory (#21043) 2022-09-04 16:14:53 +01:00
markup Kd/ci playwright go test (#20123) 2022-09-02 15:18:23 -04:00
mcaptcha Add support mCaptcha as captcha provider (#20458) 2022-08-10 15:20:10 +02:00
metrics Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
migration Add more checks in migration code (#21011) 2022-09-04 13:47:56 +03:00
mirror Implement sync push mirror on commit (#19411) 2022-07-08 20:45:12 +01:00
nosql fix broken insecureskipverify handling in rediss connection uris (#20967) 2022-08-29 16:38:49 +02:00
notification Webhook for Wiki changes (#20219) 2022-09-04 20:54:23 +01:00
options Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
packages Add support for Vagrant packages (#20930) 2022-08-29 15:04:45 +08:00
paginator Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2022-04-03 17:46:48 +08:00
password
pprof Go 1.19 format (#20758) 2022-08-30 21:15:45 -05:00
private Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
process Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
proxy Return nil proxy function if proxy not enabled (#16742) 2021-08-19 16:41:20 -04:00
proxyprotocol Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
public Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
queue test: use T.TempDir to create temporary test directory (#21043) 2022-09-04 16:14:53 +01:00
recaptcha refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
references Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
regexplru Custom regexp external issues (#17624) 2022-06-10 13:39:53 +08:00
repository Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
secret Use CryptoRandomBytes instead of CryptoRandomString (#18439) 2022-02-04 18:03:15 +01:00
session format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
setting Only show relevant repositories on explore page (#19361) 2022-08-25 20:38:41 +02:00
sitemap Add sitemap support (#18407) 2022-06-25 19:06:01 +02:00
ssh Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
storage Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
structs Webhook for Wiki changes (#20219) 2022-09-04 20:54:23 +01:00
svg Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
sync Use queue instead of memory queue in webhook send service (#19390) 2022-04-25 20:03:01 +02:00
templates Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
test Refactor AssertExistsAndLoadBean to use generics (#20797) 2022-08-16 10:22:25 +08:00
timeutil Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
translation Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
typesniffer Rework raw file http header logic (#20484) 2022-07-29 17:26:55 +02:00
updatechecker format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
upload Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
uri Prevent NPE if gitea uploader fails to open url (#18080) 2021-12-23 16:27:33 +00:00
user
util Go 1.19 format (#20758) 2022-08-30 21:15:45 -05:00
validation Add more checks in migration code (#21011) 2022-09-04 13:47:56 +03:00
watcher Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
web refactor webhook *NewPost (#20729) 2022-08-11 17:48:23 +02:00