Add administrative webhooks (#18510)

* Add administrative webhooks

* Fix error when webhook is deleted before delivery worker runs
This commit is contained in:
Eugen Rochko 2022-06-09 21:57:36 +02:00 committed by GitHub
parent 17ba5e1e61
commit a2871cd747
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 530 additions and 8 deletions

View file

@ -21,6 +21,14 @@ en:
username:
invalid: must contain only letters, numbers and underscores
reserved: is reserved
admin/webhook:
attributes:
url:
invalid: is not a valid URL
doorkeeper/application:
attributes:
website:
invalid: is not a valid URL
status:
attributes:
reblog:

View file

@ -852,6 +852,26 @@ en:
edit_preset: Edit warning preset
empty: You haven't defined any warning presets yet.
title: Manage warning presets
webhooks:
add_new: Add endpoint
delete: Delete
description_html: A <strong>webhook</strong> enables Mastodon to push <strong>real-time notifications</strong> about chosen events to your own application, so your application can <strong>automatically trigger reactions</strong>.
disable: Disable
disabled: Disabled
edit: Edit endpoint
empty: You don't have any webhook endpoints configured yet.
enable: Enable
enabled: Active
enabled_events:
one: 1 enabled event
other: "%{count} enabled events"
events: Events
new: New webhook
rotate_secret: Rotate secret
secret: Signing secret
status: Status
title: Webhooks
webhook: Webhook
admin_mailer:
new_appeal:
actions:
@ -916,7 +936,6 @@ en:
applications:
created: Application successfully created
destroyed: Application successfully deleted
invalid_url: The provided URL is invalid
regenerate_token: Regenerate access token
token_regenerated: Access token successfully regenerated
warning: Be very careful with this data. Never share it with anyone!

View file

@ -91,6 +91,9 @@ en:
name: You can only change the casing of the letters, for example, to make it more readable
user:
chosen_languages: When checked, only posts in selected languages will be displayed in public timelines
webhook:
events: Select events to send
url: Where events will be sent to
labels:
account:
fields:
@ -219,6 +222,9 @@ en:
name: Hashtag
trendable: Allow this hashtag to appear under trends
usable: Allow posts to use this hashtag
webhook:
events: Enabled events
url: Endpoint URL
'no': 'No'
recommended: Recommended
required:

View file

@ -56,6 +56,7 @@ SimpleNavigation::Configuration.run do |navigation|
s.item :rules, safe_join([fa_icon('gavel fw'), t('admin.rules.title')]), admin_rules_path, highlights_on: %r{/admin/rules}
s.item :announcements, safe_join([fa_icon('bullhorn fw'), t('admin.announcements.title')]), admin_announcements_path, highlights_on: %r{/admin/announcements}
s.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis}
s.item :webhooks, safe_join([fa_icon('inbox fw'), t('admin.webhooks.title')]), admin_webhooks_path, highlights_on: %r{/admin/webhooks}
s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? && !whitelist_mode? }, highlights_on: %r{/admin/relays}
s.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }, if: -> { current_user.admin? }
s.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }, if: -> { current_user.admin? }

View file

@ -235,6 +235,17 @@ Rails.application.routes.draw do
resources :rules
resources :webhooks do
member do
post :enable
post :disable
end
resource :secret, only: [], controller: 'webhooks/secrets' do
post :rotate
end
end
resources :reports, only: [:index, :show] do
resources :actions, only: [:create], controller: 'reports/actions'