docs: Move integration docs to /api.

This commit is contained in:
derAnfaenger 2017-11-16 17:36:52 +01:00 committed by Tim Abbott
parent 06b57e8512
commit 73915a9631
13 changed files with 47 additions and 41 deletions

View File

@ -31,8 +31,8 @@ needs doing:
[desktop app](https://github.com/zulip/zulip-electron).
* Building out our
[Python API and bots](https://github.com/zulip/python-zulip-api) framework.
* [Writing an integration](https://zulip.readthedocs.io/en/latest/tutorials/integration-guide.html).
* Improving our [user](https://chat.zulip.org/help/) or
* [Writing an integration](https://zulipchat.com/api/integration-guide).
* Improving our [user](https://zulipchat.com/help/) or
[developer](https://zulip.readthedocs.io/en/latest/) documentation.
* [Reviewing code](https://zulip.readthedocs.io/en/latest/contributing/code-reviewing.html)
and manually testing pull requests.

View File

@ -25,7 +25,8 @@ paths will be familiar to Django developers.
* `zerver/views/*.py` Most [Django views](https://docs.djangoproject.com/en/1.8/topics/http/views/).
* `zerver/webhooks/` Webhook views and tests for [Zulip webhook integrations](../tutorials/integration-guide.html).
* `zerver/webhooks/` Webhook views and tests for [Zulip webhook integrations](
https://zulipchat.com/api/integration-guide).
* `zerver/tornado/views.py` Tornado views.

View File

@ -35,4 +35,4 @@ object as `request.client`.
In most integrations, `request.client` is then passed to
`check_send_stream_message`, where it is used to keep track of which client
sent the message (which in turn is used by analytics). For more
information, see [the webhook walkthrough](../tutorials/webhook-walkthrough.html).
information, see [the webhook walkthrough](https://zulipchat.com/api/webhook-walkthrough).

View File

@ -177,7 +177,7 @@ you basically have to solve these problems:
Zulip actually supports a bunch of integrations out-of-the-box that
perform as **World Readers**.
The [three different integration models](../tutorials/integration-guide.html#types-of-integrations)
The [three different integration models](https://zulipchat.com/api/integration-guide#types-of-integrations)
basically differ in where they perform the main functions of a
**World Reader**.

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -15,11 +15,11 @@ On this page you'll find:
* Details about writing [Python script and plugin
integrations](#python-script-and-plugin-integrations).
* A guide to
[documenting your integration](integration-docs-guide.html) is on a
[documenting your integration](integration-docs-guide) is on a
separate page.
A detailed walkthrough of a simple "Hello World" integration can be
found in the [webhook walkthrough](../tutorials/webhook-walkthrough.html).
found in the [webhook walkthrough](webhook-walkthrough).
Contributions to this guide are very welcome, so if you run into any
issues following these instructions or come up with any tips or tools
@ -99,7 +99,7 @@ New Zulip webhook integrations can take just a few hours to write,
including tests and documentation, if you use the right process.
**For detailed instructions, check out the ["Hello World" webhook walkthrough](
../tutorials/webhook-walkthrough.html)**.
webhook-walkthrough)**.
For a quick guide, read on.
@ -130,8 +130,8 @@ For a quick guide, read on.
test-backend zerver/webhooks/pagerduty/
```
See [this guide](../testing/testing.html) for more details on the Zulip test
runner.
See [this guide](https://zulip.readthedocs.io/en/latest/testing/testing.html)
for more details on the Zulip test runner.
* Once you've gotten your webhook working and passing a test, capture
payloads for the other common types of posts the service's webhook
@ -142,7 +142,7 @@ For a quick guide, read on.
the service.
* Finally, write documentation for the integration; there's a
[detailed guide](integration-docs-guide.html).
[detailed guide](integration-docs-guide).
### Files that need to be created
@ -152,22 +152,24 @@ for a webhook named 'MyWebHook'.
* `static/images/integrations/logos/mywebhook.svg`: An image to represent
your integration in the user interface. Generally this should be the logo of the
platform/server/product you are integrating. See [Documenting your
integration](integration-docs-guide.html) for details.
integration](integration-docs-guide) for details.
* `static/images/integrations/mywebbook/001.svg`: A screen capture of your
integration for use in the user interface. You can add as many images as needed
to effectively document your webhook integration. See [Documenting your
integration](integration-docs-guide.html) for details.
integration](integration-docs-guide) for details.
* `zerver/webhooks/mywebhook/fixtures/messagetype.json`: Sample json payload data
used by tests. Add one fixture file per type of message supported by your
integration. See [Testing and writing tests](../testing/testing.html) for details.
integration. See [Testing and writing tests](
https://zulip.readthedocs.io/en/latest/testing/testing.html) for details.
* `zerver/webhooks/mywebhook/__init__.py`: Empty file that is obligatory
part of every python package. Remember to `git add` it.
* `zerver/webhooks/mywebhook/view.py`: Includes the main webhook integration
function including any needed helper functions.
* `zerver/webhooks/mywebhook/tests.py`: Add tests for your
webbook. See [Testing and writing tests](../testing/testing.html) for details.
webbook. See [Testing and writing tests](
https://zulip.readthedocs.io/en/latest/testing/testing.html) for details.
* `zerver/webhooks/mywebhook/doc.html`: Add end-user documentation. See
[Documenting your integration](integration-docs-guide.html) for details.
[Documenting your integration](integration-docs-guide) for details.
### Files that need to be updated

View File

@ -6,14 +6,14 @@
## Integrations
* [Overview](https://zulip.readthedocs.io/en/latest/tutorials/integration-guide.html)
* [Overview](/api/integration-guide)
* [Existing integrations](/integrations)
## Writing webhook integrations
* [Overview](https://zulip.readthedocs.io/en/latest/tutorials/integration-guide.html#webhook-integrations)
* [Walkthrough](https://zulip.readthedocs.io/en/latest/tutorials/webhook-walkthrough.html)
* [Documenting integrations](https://zulip.readthedocs.io/en/latest/tutorials/integration-docs-guide.html)
* [Overview](/api/integration-guide#webhook-integrations)
* [Walkthrough](/api/webhook-walkthrough)
* [Documenting integrations](/api/integration-docs-guide)
## Interactive bots (experimental)

View File

@ -40,7 +40,7 @@ for each distinct message condition your webhook supports. You'll also need a
corresponding fixture for each of these tests. Depending on the type of data
the 3rd party service sends, your fixture may contain JSON, URL encoded text, or
some other kind of data. See [Step 4: Create tests](#step-4-create-tests) or
[Testing](../testing/testing.html) for further details.
[Testing](https://zulip.readthedocs.io/en/latest/testing/testing.html) for further details.
## Step 1: Initialize your webhook python package
@ -94,7 +94,8 @@ The above code imports the required functions and defines the main webhook
function `api_helloworld_webhook`, decorating it with `api_key_only_webhook_view` and
`has_request_variables`. The `has_request_variables` decorator allows you to
access request variables with `REQ()`. You can find more about `REQ` and request
variables in [Writing views](writing-views.html#request-variables).
variables in [Writing views](
https://zulip.readthedocs.io/en/latest/tutorials/writing-views.html#request-variables).
You must pass the name of your webhook to the `api_key_only_webhook_view`
decorator so your webhook can access the `user_profile` and `request.client`
@ -124,8 +125,8 @@ it must exist before a message can be created in it. (See
[Step 4: Create tests](#step-4-create-tests) for how to handle this in tests.)
The line that begins `# type` is a mypy type annotation. See [this
page](../contributing/mypy.html) for details about how to properly annotate your webhook
functions.
page](https://zulip.readthedocs.io/en/latest/contributing/mypy.html) for details about
how to properly annotate your webhook functions.
In the body of the function we define the body of the message as `Hello! I am
happy to be here! :smile:`. The `:smile:` indicates an emoji. Then we append a
@ -204,7 +205,7 @@ After which you should see:
Using either method will create a message in Zulip:
![Image of Hello World webhook message](../images/helloworld-webhook.png)
<img class="screenshot" src="/static/images/api/helloworld-webhook.png" />
## Step 4: Create tests
@ -332,7 +333,7 @@ The Hello World webhook will use the `test` stream, which is
created by default in the Zulip dev environment. If you are running
Zulip in production, you should make sure that this stream exists.
Next, on your {{ ../subsystems/settings.html|safe }}, create a Hello World bot.
Next, on your {{ settings_html|safe }}, create a Hello World bot.
Construct the URL for the Hello World bot using the API key and
stream name:
@ -362,7 +363,7 @@ Markdown/Jinja2 framework that includes macros for common instructions in
Zulip's webhooks/integrations documentation.
See
[our guide on documenting an integration](integration-docs-guide.html)
[our guide on documenting an integration](integration-docs-guide)
for further details, including how to easily create the message
screenshot.
@ -373,11 +374,14 @@ available in the Zulip product, follow these steps to prepare your pull
request:
1. Run tests including linters and ensure you have addressed any issues they
report. See [Testing](../testing/testing.html) and [Linters](../testing/linters.html) for details.
2. Read through [Code styles and conventions](../contributing/code-style.html) and take a look
report. See [Testing](https://zulip.readthedocs.io/en/latest/testing/testing.html)
and [Linters](https://zulip.readthedocs.io/en/latest/testing/linters.html) for details.
2. Read through [Code styles and conventions](
https://zulip.readthedocs.io/en/latest/contributing/code-style.html) and take a look
through your code to double-check that you've followed Zulip's guidelines.
3. Take a look at your git history to ensure your commits have been clear and
logical (see [Version Control](../contributing/version-control.html) for tips). If not,
logical (see [Version Control](
https://zulip.readthedocs.io/en/latest/contributing/version-control.html) for tips). If not,
consider revising them with `git rebase --interactive`. For most webhooks,
you'll want to squash your changes into a single commit and include a good,
clear commit message.
@ -386,10 +390,11 @@ request:
If you would like feedback on your integration as you go, feel free to post a
message on the [public Zulip instance](https://chat.zulip.org/#narrow/stream/bots).
You can also create a [`[WIP]` pull request](../overview/contributing.html#working-on-an-issue)
while you are still working on your integration. See the
[Git guide](../contributing/git-guide.html#create-a-pull-request) for more on Zulip's pull
request process.
You can also create a [`[WIP]` pull request](
https://zulip.readthedocs.io/en/latest/overview/contributing.html#working-on-an-issue) while you
are still working on your integration. See the
[Git guide](https://zulip.readthedocs.io/en/latest/contributing/git-guide.html#create-a-pull-request)
for more on Zulip's pull request process.
## Advanced topics

View File

@ -4,9 +4,7 @@ Zulip's API supports a few different ways of integrating with a
third-party service.
* **Incoming webhook integrations**, for when you just want notifications from
a tool to be sent into Zulip. See the
[integrations guide](
https://zulip.readthedocs.io/en/latest/tutorials/integration-guide.html?highlight=integrations).
a tool to be sent into Zulip. See the [integrations guide](integration-guide).
* **Interactive bots**, for when you want the tool to react to
messages in Zulip.

View File

@ -139,7 +139,7 @@ you use! A few recommendations:
GitHub or wiki page with a nice badge.
- [Automatically linkify](/help/add-a-custom-linkification-filter)
issue numbers and commit IDs.
- [Write custom integrations](https://zulip.readthedocs.io/en/latest/tutorials/integration-guide.html)
- [Write custom integrations](https://zulipchat.com/api/integration-guide)
for your communitys unique tools.
- If your users primarily speak a language other than English,
[set a default language for your organization](/help/change-the-default-language-for-your-organization).

View File

@ -108,7 +108,7 @@
</a>
{% endif %}
{% endfor %}
<a href="https://zulip.readthedocs.io/en/latest/tutorials/integration-guide.html">
<a href="https://zulipchat.com/api/integration-guide">
<div class="integration-lozenge integration-create-your-own">
<div class="integration-logo">
<i class="icon-vector-plus"></i>

View File

@ -664,8 +664,6 @@ def build_custom_checkers(by_lang):
markdown_docs_length_exclude = {
# Has some example Vagrant output that's very long
"docs/development/setup-vagrant.md",
# Has some example code that could perhaps be wrapped
"docs/tutorials/webhook-walkthrough.md",
# Have wide output in code blocks
"docs/subsystems/logging.md",
"docs/migration-renumbering.md",
@ -674,6 +672,8 @@ def build_custom_checkers(by_lang):
"zerver/webhooks/trello/doc.md",
# Has a very long configuration line
"templates/zerver/integrations/perforce.md",
# Has some example code that could perhaps be wrapped
"templates/zerver/api/webhook-walkthrough.md",
}
for fn in by_lang['md']:
max_length = None