-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Docs: Split email notifications and webhook notifications into separate howtos #10396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 5 commits
20c7e66
5ddd445
fea3fc6
e60ca66
33b3b9c
8df4c44
1454899
3368ed9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
How to setup email notifications | ||
================================ | ||
|
||
In this brief guide, | ||
you can learn how to setup a simple build notification via email. | ||
|
||
Read the Docs allows you to configure emails that will be notified on failing builds. | ||
This makes sure that you are aware of failures happening in an otherwise automated process. | ||
|
||
.. seealso:: | ||
|
||
:doc:`/guides/build/webhooks` | ||
How to use webhooks to be notified about builds on popular platforms like Slack and Discord. | ||
|
||
:doc:`/pull-requests` | ||
Configure automated feedback and documentation site previews for your pull requests. | ||
|
||
|
||
Email notifications | ||
------------------- | ||
|
||
Follow these steps to add an email address to be notified about build failures: | ||
|
||
* Go to :menuselection:`Admin --> Notifications` in your project. | ||
* Fill in the **Email** field under the **New Email Notifications** heading | ||
* Press :guilabel:`Add` and the email is saved and will be displayed in the list of **Existing notifications**. | ||
|
||
The newly added email address will be notified once a build fails. | ||
|
||
|
||
.. note:: | ||
|
||
We don't send email notifications on :doc:`builds from pull requests </pull-requests>`. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,28 @@ | ||
How to setup build notifications and webhooks | ||
============================================= | ||
How to setup build status webhooks | ||
================================== | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess we should be systematic about calling the feature "build status webhooks" since that's how it is right now. If we're gonna do anything more drastic, I think it should include the Dashboard terminology, so I would just save that for later.. |
||
|
||
In this guide, you can learn how to setup a number of build notification mechanisms. | ||
Build notifications can alert you when your builds fail so you can take immediate action. | ||
In this guide, | ||
you can learn how to setup build notifications via webhooks. | ||
|
||
.. note:: | ||
Read the Docs can notify external :term:`webhooks <webhook>` when builds are triggered, successful or failed. | ||
In that way, | ||
you can receive build notifications in your own monitoring channels and be alerted you when your builds fail so you can take immediate action. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is new
benjaoming marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Currently we don't send notifications or trigger :term:`webhooks <webhook>` | ||
on :doc:`builds from pull requests </pull-requests>`. | ||
.. seealso:: | ||
|
||
:doc:`/guides/build/email-notifications` | ||
Setup basic email notifications for build failures. | ||
|
||
.. tip:: | ||
:doc:`/pull-requests` | ||
Similarly to build notifications, you can also configure automated feedback for your pull requests. | ||
|
||
|
||
.. contents:: Contents | ||
:local: | ||
|
||
|
||
Email notifications | ||
------------------- | ||
|
||
Read the Docs allows you to configure emails that can be sent on failing builds. | ||
This makes sure you know when your builds have failed. | ||
|
||
Take these steps to enable build notifications using email: | ||
Configure automated feedback and documentation site previews for your pull requests. | ||
|
||
* Go to :guilabel:`Admin` > :guilabel:`Notifications` in your project. | ||
* Fill in the **Email** field under the **New Email Notifications** heading | ||
* Submit the form | ||
|
||
You should now get notified by email when your builds fail! | ||
|
||
Build status webhooks | ||
--------------------- | ||
|
||
Read the Docs can also send webhooks when builds are triggered, successful or failed. | ||
|
||
Take these steps to enable build notifications using a webhook: | ||
|
||
* Go to :guilabel:`Admin` > :guilabel:`Webhooks` in your project. | ||
* Go to :menuselection:`Admin --> Webhooks` in your project. | ||
* Fill in the **URL** field and select what events will trigger the webhook | ||
* Modify the payload or leave the default (see below) | ||
* Click on :guilabel:`Save` | ||
|
@@ -79,6 +61,11 @@ you will see the server response, the webhook request, and the payload. | |
|
||
Activity of a webhook | ||
|
||
.. note:: | ||
|
||
We don't trigger :term:`webhooks <webhook>` on :doc:`builds from pull requests </pull-requests>`. | ||
|
||
|
||
Custom payload examples | ||
~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
|
@@ -93,81 +80,81 @@ and in the following section you will find all the available variables. | |
|
||
Custom payload | ||
|
||
Slack | ||
+++++ | ||
|
||
.. code-block:: json | ||
|
||
{ | ||
"attachments": [ | ||
{ | ||
"color": "#db3238", | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "*Read the Docs build failed*" | ||
.. tabs:: | ||
|
||
.. tab:: Slack | ||
|
||
.. code-block:: json | ||
|
||
{ | ||
"attachments": [ | ||
{ | ||
"color": "#db3238", | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "*Read the Docs build failed*" | ||
} | ||
}, | ||
{ | ||
"type": "section", | ||
"fields": [ | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Project*: <{{ project.url }}|{{ project.name }}>" | ||
}, | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Version*: {{ version.name }} ({{ build.commit }})" | ||
}, | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Build*: <{{ build.url }}|{{ build.id }}>" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
}, | ||
{ | ||
"type": "section", | ||
"fields": [ | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Project*: <{{ project.url }}|{{ project.name }}>" | ||
}, | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Version*: {{ version.name }} ({{ build.commit }})" | ||
}, | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Build*: <{{ build.url }}|{{ build.id }}>" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
|
||
More information on `the Slack Incoming Webhooks documentation <https://api.slack.com/messaging/webhooks>`_. | ||
|
||
Discord | ||
+++++++ | ||
|
||
.. code-block:: json | ||
|
||
{ | ||
"username": "Read the Docs", | ||
"content": "Read the Docs build failed", | ||
"embeds": [ | ||
{ | ||
"title": "Build logs", | ||
"url": "{{ build.url }}", | ||
"color": 15258703, | ||
"fields": [ | ||
{ | ||
"name": "*Project*", | ||
"value": "{{ project.url }}", | ||
"inline": true | ||
}, | ||
{ | ||
"name": "*Version*", | ||
"value": "{{ version.name }} ({{ build.commit }})", | ||
"inline": true | ||
}, | ||
{ | ||
"name": "*Build*", | ||
"value": "{{ build.url }}" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
|
||
More information on `the Slack Incoming Webhooks documentation <https://api.slack.com/messaging/webhooks>`_. | ||
|
||
.. tab:: Discord | ||
|
||
.. code-block:: json | ||
|
||
{ | ||
"username": "Read the Docs", | ||
"content": "Read the Docs build failed", | ||
"embeds": [ | ||
{ | ||
"title": "Build logs", | ||
"url": "{{ build.url }}", | ||
"color": 15258703, | ||
"fields": [ | ||
{ | ||
"name": "*Project*", | ||
"value": "{{ project.url }}", | ||
"inline": true | ||
}, | ||
{ | ||
"name": "*Version*", | ||
"value": "{{ version.name }} ({{ build.commit }})", | ||
"inline": true | ||
}, | ||
{ | ||
"name": "*Build*", | ||
"value": "{{ build.url }}" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
|
||
More information on `the Discord webhooks documentation <https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks>`_. | ||
More information on `the Discord webhooks documentation <https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks>`_. | ||
|
||
Variable substitutions reference | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
@@ -213,7 +200,7 @@ Variable substitutions reference | |
Version name. | ||
|
||
Validating the payload | ||
~~~~~~~~~~~~~~~~~~~~~~ | ||
---------------------- | ||
|
||
After you add a new webhook, Read the Docs will generate a secret key for it | ||
and uses it to generate a hash signature (HMAC-SHA256) for each payload | ||
|
@@ -255,7 +242,7 @@ like this: | |
) | ||
|
||
Legacy webhooks | ||
~~~~~~~~~~~~~~~ | ||
--------------- | ||
|
||
Webhooks created before the custom payloads functionality was added to Read the Docs | ||
send a payload with the following structure: | ||
|
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ericholscher
re: naming is hard
I changed the feature page to have this title instead. I think it's clearer than the previous one.
I think we should try to use:
Oh yes, and of course we also say "build status webhooks" 🙃 Not on the website, it just says "webhooks" :)
We could remove "build status webhooks" and say "build notifications via webhooks" or "notification webhooks". It's not any big thing, though, anything containing the word "webhook" is bound to be a bit technical :)