summaryrefslogtreecommitdiffstats
path: root/templates/webhook/new
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
committerDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
commitdd136858f1ea40ad3c94191d647487fa4f31926c (patch)
tree58fec94a7b2a12510c9664b21793f1ed560c6518 /templates/webhook/new
parentInitial commit. (diff)
downloadforgejo-dd136858f1ea40ad3c94191d647487fa4f31926c.tar.xz
forgejo-dd136858f1ea40ad3c94191d647487fa4f31926c.zip
Adding upstream version 9.0.0.upstream/9.0.0upstreamdebian
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'templates/webhook/new')
-rw-r--r--templates/webhook/new/dingtalk.tmpl9
-rw-r--r--templates/webhook/new/discord.tmpl17
-rw-r--r--templates/webhook/new/feishu.tmpl10
-rw-r--r--templates/webhook/new/forgejo.tmpl38
-rw-r--r--templates/webhook/new/gitea.tmpl38
-rw-r--r--templates/webhook/new/gogs.tmpl26
-rw-r--r--templates/webhook/new/matrix.tmpl32
-rw-r--r--templates/webhook/new/msteams.tmpl9
-rw-r--r--templates/webhook/new/packagist.tmpl17
-rw-r--r--templates/webhook/new/slack.tmpl26
-rw-r--r--templates/webhook/new/sourcehut_builds.tmpl39
-rw-r--r--templates/webhook/new/telegram.tmpl17
-rw-r--r--templates/webhook/new/wechatwork.tmpl9
13 files changed, 287 insertions, 0 deletions
diff --git a/templates/webhook/new/dingtalk.tmpl b/templates/webhook/new/dingtalk.tmpl
new file mode 100644
index 0000000..e805ead
--- /dev/null
+++ b/templates/webhook/new/dingtalk.tmpl
@@ -0,0 +1,9 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://dingtalk.com" (ctx.Locale.Tr "repo.settings.web_hook_name_dingtalk")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "dingtalk/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/discord.tmpl b/templates/webhook/new/discord.tmpl
new file mode 100644
index 0000000..455a96c
--- /dev/null
+++ b/templates/webhook/new/discord.tmpl
@@ -0,0 +1,17 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://discord.com" (ctx.Locale.Tr "repo.settings.web_hook_name_discord")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "discord/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="username">{{ctx.Locale.Tr "repo.settings.discord_username"}}</label>
+ <input id="username" name="username" value="{{.HookMetadata.Username}}" autofocus required placeholder="Forgejo">
+ </div>
+ <div class="field">
+ <label for="icon_url">{{ctx.Locale.Tr "repo.settings.discord_icon_url"}}</label>
+ <input id="icon_url" name="icon_url" value="{{.HookMetadata.IconURL}}" placeholder="https://example.com/assets/img/logo.svg">
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/feishu.tmpl b/templates/webhook/new/feishu.tmpl
new file mode 100644
index 0000000..10c2827
--- /dev/null
+++ b/templates/webhook/new/feishu.tmpl
@@ -0,0 +1,10 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://feishu.cn" (ctx.Locale.Tr "repo.settings.web_hook_name_feishu_only")}}</p>
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://larksuite.com" (ctx.Locale.Tr "repo.settings.web_hook_name_larksuite_only")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "feishu/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/forgejo.tmpl b/templates/webhook/new/forgejo.tmpl
new file mode 100644
index 0000000..cdb3334
--- /dev/null
+++ b/templates/webhook/new/forgejo.tmpl
@@ -0,0 +1,38 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://forgejo.org/docs/latest/user/webhooks/" (ctx.Locale.Tr "repo.settings.web_hook_name_forgejo")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "forgejo/new"}}" method="post">
+ {{template "base/disable_form_autofill"}}
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ <div class="field">
+ <label>{{ctx.Locale.Tr "repo.settings.http_method"}}</label>
+ <div class="ui selection dropdown">
+ <input type="hidden" id="http_method" name="http_method" value="{{if .Webhook.HTTPMethod}}{{.Webhook.HTTPMethod}}{{else}}POST{{end}}">
+ <div class="default text"></div>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu">
+ <div class="item" data-value="POST">POST</div>
+ <div class="item" data-value="GET">GET</div>
+ </div>
+ </div>
+ </div>
+ <div class="field">
+ <label>{{ctx.Locale.Tr "repo.settings.content_type"}}</label>
+ <div class="ui selection dropdown">
+ <input type="hidden" id="content_type" name="content_type" value="{{if .Webhook.ContentType}}{{.Webhook.ContentType}}{{else}}1{{end}}">
+ <div class="default text"></div>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu">
+ <div class="item" data-value="1">application/json</div>
+ <div class="item" data-value="2">application/x-www-form-urlencoded</div>
+ </div>
+ </div>
+ </div>
+ <div class="field {{if .Err_Secret}}error{{end}}">
+ <label for="secret">{{ctx.Locale.Tr "repo.settings.secret"}}</label>
+ <input id="secret" name="secret" type="password" value="{{.Webhook.Secret}}" autocomplete="off">
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/gitea.tmpl b/templates/webhook/new/gitea.tmpl
new file mode 100644
index 0000000..3926370
--- /dev/null
+++ b/templates/webhook/new/gitea.tmpl
@@ -0,0 +1,38 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://forgejo.org/docs/latest/user/webhooks/" (ctx.Locale.Tr "repo.settings.web_hook_name_gitea")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "gitea/new"}}" method="post">
+ {{template "base/disable_form_autofill"}}
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ <div class="field">
+ <label>{{ctx.Locale.Tr "repo.settings.http_method"}}</label>
+ <div class="ui selection dropdown">
+ <input type="hidden" id="http_method" name="http_method" value="{{if .Webhook.HTTPMethod}}{{.Webhook.HTTPMethod}}{{else}}POST{{end}}">
+ <div class="default text"></div>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu">
+ <div class="item" data-value="POST">POST</div>
+ <div class="item" data-value="GET">GET</div>
+ </div>
+ </div>
+ </div>
+ <div class="field">
+ <label>{{ctx.Locale.Tr "repo.settings.content_type"}}</label>
+ <div class="ui selection dropdown">
+ <input type="hidden" id="content_type" name="content_type" value="{{if .Webhook.ContentType}}{{.Webhook.ContentType}}{{else}}1{{end}}">
+ <div class="default text"></div>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu">
+ <div class="item" data-value="1">application/json</div>
+ <div class="item" data-value="2">application/x-www-form-urlencoded</div>
+ </div>
+ </div>
+ </div>
+ <div class="field {{if .Err_Secret}}error{{end}}">
+ <label for="secret">{{ctx.Locale.Tr "repo.settings.secret"}}</label>
+ <input id="secret" name="secret" type="password" value="{{.Webhook.Secret}}" autocomplete="off">
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/gogs.tmpl b/templates/webhook/new/gogs.tmpl
new file mode 100644
index 0000000..5b6cd72
--- /dev/null
+++ b/templates/webhook/new/gogs.tmpl
@@ -0,0 +1,26 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://forgejo.org/docs/latest/user/webhooks/" (ctx.Locale.Tr "repo.settings.web_hook_name_gogs")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "gogs/new"}}" method="post">
+ {{template "base/disable_form_autofill"}}
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ <div class="field">
+ <label>{{ctx.Locale.Tr "repo.settings.content_type"}}</label>
+ <div class="ui selection dropdown">
+ <input type="hidden" id="content_type" name="content_type" value="{{if .Webhook.ContentType}}{{.Webhook.ContentType}}{{else}}1{{end}}">
+ <div class="default text"></div>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu">
+ <div class="item" data-value="1">application/json</div>
+ <div class="item" data-value="2">application/x-www-form-urlencoded</div>
+ </div>
+ </div>
+ </div>
+ <div class="field {{if .Err_Secret}}error{{end}}">
+ <label for="secret">{{ctx.Locale.Tr "repo.settings.secret"}}</label>
+ <input id="secret" name="secret" type="password" value="{{.Webhook.Secret}}" autocomplete="off">
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/matrix.tmpl b/templates/webhook/new/matrix.tmpl
new file mode 100644
index 0000000..920180d
--- /dev/null
+++ b/templates/webhook/new/matrix.tmpl
@@ -0,0 +1,32 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://matrix.org/" (ctx.Locale.Tr "repo.settings.web_hook_name_matrix")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "matrix/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_HomeserverURL}}error{{end}}">
+ <label for="homeserver_url">{{ctx.Locale.Tr "repo.settings.matrix.homeserver_url"}}</label>
+ <input id="homeserver_url" name="homeserver_url" type="url" value="{{.HookMetadata.HomeserverURL}}" autofocus required>
+ </div>
+ <!-- Access Token -->
+ <div class="field required {{if .Err_AccessToken}}error{{end}}">
+ <label for="access_token">{{ctx.Locale.Tr "form.AccessToken"}}</label>
+ <input id="access_token" name="access_token" type="password" value="{{.Webhook.HeaderAuthorizationTrimPrefix "Bearer "}}" required>
+ <span class="help">{{ctx.Locale.Tr "repo.settings.matrix.access_token_helper"}}</span>
+ </div>
+ <div class="required field {{if .Err_Room}}error{{end}}">
+ <label for="room_id">{{ctx.Locale.Tr "repo.settings.matrix.room_id"}}</label>
+ <input id="room_id" name="room_id" type="text" value="{{.HookMetadata.Room}}" placeholder="!opaque_id:domain" pattern="^!.+:.+$" maxlength="255" required>
+ <span class="help">{{ctx.Locale.Tr "repo.settings.matrix.room_id_helper" ("<code>!opaque_id:example.org</code>"|SafeHTML)}}</span>
+ </div>
+ <div class="field">
+ <label>{{ctx.Locale.Tr "repo.settings.matrix.message_type"}}</label>
+ <div class="ui selection dropdown">
+ <input type="hidden" id="message_type" name="message_type" value="{{if .HookMetadata.MessageType}}{{.HookMetadata.MessageType}}{{else}}1{{end}}">
+ <div class="default text"></div>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu">
+ <div class="item" data-value="1">m.notice</div>
+ <div class="item" data-value="2">m.text</div>
+ </div>
+ </div>
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/msteams.tmpl b/templates/webhook/new/msteams.tmpl
new file mode 100644
index 0000000..535d0fc
--- /dev/null
+++ b/templates/webhook/new/msteams.tmpl
@@ -0,0 +1,9 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://teams.microsoft.com" (ctx.Locale.Tr "repo.settings.web_hook_name_msteams")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "msteams/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/packagist.tmpl b/templates/webhook/new/packagist.tmpl
new file mode 100644
index 0000000..04240bb
--- /dev/null
+++ b/templates/webhook/new/packagist.tmpl
@@ -0,0 +1,17 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://packagist.org" (ctx.Locale.Tr "repo.settings.web_hook_name_packagist")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "packagist/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_Username}}error{{end}}">
+ <label for="username">{{ctx.Locale.Tr "repo.settings.packagist_username"}}</label>
+ <input id="username" name="username" value="{{.HookMetadata.Username}}" placeholder="Forgejo" autofocus required>
+ </div>
+ <div class="required field {{if .Err_APIToken}}error{{end}}">
+ <label for="api_token">{{ctx.Locale.Tr "repo.settings.packagist_api_token"}}</label>
+ <input id="api_token" name="api_token" value="{{.HookMetadata.APIToken}}" placeholder="X5F_tZ-Wj3c1vqaU2Rky" required>
+ </div>
+ <div class="required field {{if .Err_PackageURL}}error{{end}}">
+ <label for="package_url">{{ctx.Locale.Tr "repo.settings.packagist_package_url"}}</label>
+ <input id="package_url" name="package_url" value="{{.HookMetadata.PackageURL}}" placeholder="https://packagist.org/packages/laravel/framework" required>
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/slack.tmpl b/templates/webhook/new/slack.tmpl
new file mode 100644
index 0000000..cfaeb41
--- /dev/null
+++ b/templates/webhook/new/slack.tmpl
@@ -0,0 +1,26 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://slack.com" (ctx.Locale.Tr "repo.settings.web_hook_name_slack")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "slack/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ <div class="required field {{if .Err_Channel}}error{{end}}">
+ <label for="channel">{{ctx.Locale.Tr "repo.settings.slack_channel"}}</label>
+ <input id="channel" name="channel" value="{{.HookMetadata.Channel}}" placeholder="#general" required>
+ </div>
+
+ <div class="field">
+ <label for="username">{{ctx.Locale.Tr "repo.settings.slack_username"}}</label>
+ <input id="username" name="username" value="{{.HookMetadata.Username}}" placeholder="Forgejo">
+ </div>
+ <div class="field">
+ <label for="icon_url">{{ctx.Locale.Tr "repo.settings.slack_icon_url"}}</label>
+ <input id="icon_url" name="icon_url" value="{{.HookMetadata.IconURL}}" placeholder="https://example.com/img/favicon.png">
+ </div>
+ <div class="field">
+ <label for="color">{{ctx.Locale.Tr "repo.settings.slack_color"}}</label>
+ <input id="color" name="color" value="{{.HookMetadata.Color}}" placeholder="#dd4b39, good, warning, danger">
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/sourcehut_builds.tmpl b/templates/webhook/new/sourcehut_builds.tmpl
new file mode 100644
index 0000000..3bcbe1b
--- /dev/null
+++ b/templates/webhook/new/sourcehut_builds.tmpl
@@ -0,0 +1,39 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://sourcehut.org/" (ctx.Locale.Tr "repo.settings.web_hook_name_sourcehut_builds")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "sourcehut_builds/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.graphql_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{or .Webhook.URL "https://builds.sr.ht/query"}}" autofocus required>
+ </div>
+ <div class="required field {{if .Err_ManifestPath}}error{{end}}">
+ <label for="manifest_path">{{ctx.Locale.Tr "repo.settings.sourcehut_builds.manifest_path"}}</label>
+ <input id="manifest_path" name="manifest_path" type="text" value="{{or .HookMetadata.ManifestPath ".build.yml"}}" required>
+ </div>
+ <div class="field">
+ <label>{{ctx.Locale.Tr "repo.settings.sourcehut_builds.visibility"}}</label>
+ <div class="ui selection dropdown">
+ <input type="hidden" id="visibility" name="visibility" value="{{if .HookMetadata.Visibility}}{{.HookMetadata.Visibility}}{{else}}PRIVATE{{end}}">
+ <div class="default text"></div>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu">
+ <div class="item" data-value="PUBLIC">PUBLIC</div>
+ <div class="item" data-value="UNLISTED">UNLISTED</div>
+ <div class="item" data-value="PRIVATE">PRIVATE</div>
+ </div>
+ </div>
+ </div>
+ <div class="field">
+ <div class="ui checkbox">
+ <input name="secrets" type="checkbox" {{if .HookMetadata.Secrets}}checked{{end}}>
+ <label>{{ctx.Locale.Tr "repo.settings.sourcehut_builds.secrets"}}</label>
+ <span class="help">{{ctx.Locale.Tr "repo.settings.sourcehut_builds.secrets_helper"}}</span>
+ </div>
+ </div>
+ <!-- Access Token -->
+ <div class="field required {{if .Err_AccessToken}}error{{end}}">
+ <label for="access_token">{{ctx.Locale.Tr "form.AccessToken"}}</label>
+ <input id="access_token" name="access_token" type="password" value="{{.Webhook.HeaderAuthorizationTrimPrefix "Bearer "}}" required>
+ <span class="help">{{ctx.Locale.Tr "repo.settings.sourcehut_builds.access_token_helper" "https://meta.sr.ht/oauth2/personal-token?grants=builds.sr.ht/JOBS:RW" "https://meta.sr.ht/oauth2/personal-token?grants=builds.sr.ht/JOBS:RW+builds.sr.ht/SECRETS:RO"}}</span>
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/telegram.tmpl b/templates/webhook/new/telegram.tmpl
new file mode 100644
index 0000000..3627dff
--- /dev/null
+++ b/templates/webhook/new/telegram.tmpl
@@ -0,0 +1,17 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://core.telegram.org/bots" (ctx.Locale.Tr "repo.settings.web_hook_name_telegram")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "telegram/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_BotToken}}error{{end}}">
+ <label for="bot_token">{{ctx.Locale.Tr "repo.settings.bot_token"}}</label>
+ <input id="bot_token" name="bot_token" type="text" value="{{.HookMetadata.BotToken}}" autofocus required>
+ </div>
+ <div class="required field {{if .Err_ChatID}}error{{end}}">
+ <label for="chat_id">{{ctx.Locale.Tr "repo.settings.chat_id"}}</label>
+ <input id="chat_id" name="chat_id" type="text" value="{{.HookMetadata.ChatID}}" required>
+ </div>
+ <div class="field {{if .Err_ThreadID}}error{{end}}">
+ <label for="thread_id">{{ctx.Locale.Tr "repo.settings.thread_id"}}</label>
+ <input id="thread_id" name="thread_id" type="text" value="{{.HookMetadata.ThreadID}}">
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>
diff --git a/templates/webhook/new/wechatwork.tmpl b/templates/webhook/new/wechatwork.tmpl
new file mode 100644
index 0000000..ae9d36a
--- /dev/null
+++ b/templates/webhook/new/wechatwork.tmpl
@@ -0,0 +1,9 @@
+<p>{{ctx.Locale.Tr "repo.settings.add_web_hook_desc" "https://work.weixin.qq.com" (ctx.Locale.Tr "repo.settings.web_hook_name_wechatwork")}}</p>
+<form class="ui form" action="{{.BaseLink}}/{{or .Webhook.ID "wechatwork/new"}}" method="post">
+ {{.CsrfTokenHtml}}
+ <div class="required field {{if .Err_PayloadURL}}error{{end}}">
+ <label for="payload_url">{{ctx.Locale.Tr "repo.settings.payload_url"}}</label>
+ <input id="payload_url" name="payload_url" type="url" value="{{.Webhook.URL}}" autofocus required>
+ </div>
+ {{template "webhook/shared-settings" .}}
+</form>