diff --git a/tools/lint-all b/tools/lint-all index 1b63f78d7d..91e8989a0a 100755 --- a/tools/lint-all +++ b/tools/lint-all @@ -575,6 +575,7 @@ def build_custom_checkers(by_lang): "docs/migration-renumbering.md", "docs/readme-symlink.md", "README.md", + "zerver/webhooks/trello/doc.md", } for fn in by_lang['md']: max_length = None diff --git a/zerver/webhooks/trello/doc.html b/zerver/webhooks/trello/doc.html deleted file mode 100644 index 535d9b40cf..0000000000 --- a/zerver/webhooks/trello/doc.html +++ /dev/null @@ -1,92 +0,0 @@ -

- This webhook integration for Trello is the recommended way to - integrate with Trello, and should support all the features of - the legacy Trello cron-based - integration. -

- -

- First, create the stream you'd like to use for Trello notifications, - and subscribe all interested parties to this stream. We recommend the - name trello. -

- -

- Your webhook URL is:
- {{ external_api_uri_subdomain }}/v1/external/trello?api_key=abcdefgh&stream=trello
- where api_key is the API key of your Zulip bot, - and stream is the stream name you want the notifications sent to. -

- -

- Trello doesn't support creating webhooks on their website; you - have to do it using their API. So before you create a webhook, - you'll need to follow the steps below to get from Trello - an APPLICATION_KEY, and a UserToken, and to fetch - the board's idModel. -

- -

- To generate the APPLICATION_KEY, open this URL in your web browser:
- https://trello.com/1/appkey/generate. -

- -

- To generate a read access token, fill in and open this URL in the browser while logged into your Trello account: - https://trello.com/1/authorize?key=<APPLICATION_KEY>&name=Issue+Manager&expiration=never&response_type=token&scope=read
- You will receive your UserToken. Note it. -

- -

- Within the the board URL, you can find the TRELLO_BOARD_SHORT_ID. - The Trello URL format is:
- https://trello.com/b/TRELLO_BOARD_SHORT_ID/boardName. -

- -

- Now you have the APPLICATION_KEY, UserToken and TRELLO_BOARD_SHORT_ID.
- Construct this URL and open it in your web browser:
- https://api.trello.com/1/board/<TRELLO_BOARD_SHORT_ID>?key=<APPLICATION_KEY>&token=<UserToken>
- You'll receive some JSON. Within that, find the id value. That's your idModel; note it. -

- -

- Now you have all the ingredients you need. To actually create the - Trello webhook, you will need to send an HTTP POST - request to the trello API webhook endpoint - (https://api.trello.com/1/tokens/<UserToken>/webhooks/?key=<APPLICATION_KEY>) - with the following data: -

-
{
-    "description": "Webhook for Zulip integration",
-    "callbackURL": "<URL_TO_ZULIP_WEBHOOK_FROM_SECOND_STEP>",
-    "idModel": "<ID_MODEL>",
-}
-
- -

You can do this using the curl program as follows:

-
curl 'https://api.trello.com/1/tokens/<UserToken>/webhooks/?key=<APPLICATION_KEY>'
--H 'Content-Type: application/json' -H 'Accept: application/json'
---data-binary $'{\n  "description": "Webhook for Zulip integration",\n  "callbackURL": "<URL_TO_ZULIP_WEBHOOK_FROM_SECOND_STEP>",\n  "idModel": "<ID_MODEL>"\n}'
---compressed
-
-

- The response from Trello should look like:
-

-
{
-    "id": "<WEBHOOK_ID>",
-    "description": "Webhook for Zulip integration",
-    "idModel": "<ID_MODEL>",
-    "callbackURL": "<URL_TO_ZULIP_WEBHOOK_FROM_SECOND_STEP>",
-    "active": true
-}
-
-

- Congratulations! You've created a webhook and your integration is live. -

- -

- When you make changes in on this board in Trello, you will - receive Zulip notifications like this: -

-

diff --git a/zerver/webhooks/trello/doc.md b/zerver/webhooks/trello/doc.md new file mode 100644 index 0000000000..c32e438a05 --- /dev/null +++ b/zerver/webhooks/trello/doc.md @@ -0,0 +1,76 @@ +This webhook integration for Trello is the recommended way to +integrate with Trello, and should support all the features of +the [legacy Trello cron-based integration](#trello-plugin). + +First, create the stream you'd like to use for Trello notifications, +and subscribe all interested parties to this stream. We recommend the +name `trello`. + +Your webhook URL is: +`{{ external_api_uri_subdomain }}/v1/external/trello?api_key=abcdefgh&stream=trello` +where `api_key` is the API key of your Zulip bot, +and `stream` is the stream name you want the notifications sent to. + +Trello doesn't support creating webhooks on their website; you +have to do it using their API. So before you create a webhook, +you'll need to follow the steps below to get from Trello +an **APPLICATION_KEY**, and a **UserToken**, and to fetch +the board's **idModel**. + +To generate the **APPLICATION_KEY**, open this URL in your web browser: +`https://trello.com/1/appkey/generate`. + +To generate a read access token, fill in and open this URL in the browser while logged into your Trello account: +`https://trello.com/1/authorize?key=&name=Issue+Manager&expiration=never&response_type=token&scope=read` +You will receive your **UserToken**. Note it. + +Within the the board URL, you can find the **TRELLO_BOARD_SHORT_ID**. +The Trello URL format is: +`https://trello.com/b/TRELLO_BOARD_SHORT_ID/boardName`. + +Now you have the **APPLICATION_KEY**, **UserToken** and **TRELLO_BOARD_SHORT_ID**. +Construct this URL and open it in your web browser: +`https://api.trello.com/1/board/?key=&token=` +You'll receive some JSON. Within that, find the **id** value. That's your **idModel**; note it. + +Now you have all the ingredients you need. To actually create the +Trello webhook, you will need to send an `HTTP POST` +request to the trello API webhook endpoint +(`https://api.trello.com/1/tokens//webhooks/?key=`) +with the following data: + +``` +{ +"description": "Webhook for Zulip integration", +"callbackURL": "", +"idModel": "", +} +``` + +You can do this using the `curl` program as follows: +``` +curl 'https://api.trello.com/1/tokens//webhooks/?key=' +-H 'Content-Type: application/json' -H 'Accept: application/json' +--data-binary $'{\n "description": "Webhook for Zulip integration",\n "callbackURL": "",\n "idModel": ""\n}' +--compressed +``` + +The response from Trello should look like: + +``` +{ +"id": "", +"description": "Webhook for Zulip integration", +"idModel": "", +"callbackURL": "", +"active": true +} +``` + +Congratulations! You've created a webhook and your integration is live. + + +When you make changes in on this board in Trello, you will +receive Zulip notifications like this: + +![](/static/images/integrations/trello/001.png)