Webhook

This section describes how to add webhooks for auto rendering to a repository.

The system supports Git as VCS (Version Control System), and the following hosts:

Approval

In order to render documentation, the TYPO3 Documentation Team needs to approve each new extension when requesting rendering for the first time.

In order to approve an extension, the following things need to apply:

  1. The extension needs to be published in TER under the same extension key as claimed by composer.json.
  2. The Git Repository is referenced from TER detail view page.

This is necessary to prevent misuse of the infrastructure and extension names.

In case the approval takes too long, request the approval within the Slack channel #typo3-documentation. Registration for Slack is available at my.typo3.org.

Foreign setups

In some cases one might use a different host than the one mentioned above. Or the file structure does not match the structure of an TYPO3 extension.

In such cases a mirror to one of the supported hosts must be setup. Otherwise it is not possible to enable documentation rendering on docs.typo3.org.

How webhooks work

If it's your first time working with webhooks, take a look at GitHub developer. The configuration below triggers rendering only on push events.

In order to test the integration, a push to main branch or documentation-draft branch can be used, see Supported branches.

Legacy webhook

If the repository already had a hook, this is considered deprecated. A compatibility layer is still in place, but will be removed in the future.

GitHub

Add auto rendering for a repository via GitHub webhook in five steps:

  1. Go to "Settings" tab within the repository

  2. Go to "Webhooks" section within the repository settings

  3. Add webhook

  4. Fill in webhook configuration

    1. Configure URL https://docs-hook.typo3.org for field "Payload URL".
    2. Select application/json as "Content type".
    3. Enable "SSL verification".
    4. Select Just the push event. for "Which events would you like to trigger this webhook?".
    5. Enable "Active".
    6. Click on "Add webhook"
  5. Webhook was added

    GitHub should show a notice that creation of webhook was successful.

  6. Trigger webhook and visit to check request

    Visit intercept.typo3.com and check "Recent actions" (scroll down). The repository should have created a "Docs hook ping from github repository".

    For the documentation to be rendered, the hook needs to be triggered: Either push to the branch main. Or push to a new branch documentation-draft.

Bitbucket cloud

Add auto rendering for a repository via Bitbucket webhook in five steps:

  1. Go to "Settings" section within the repository

  2. Go to "Webhooks" section within the repository settings

  3. Add webhook

  4. Fill in webhook configuration

    1. Choose a title for this hook: for example "TYPO3 Docs".
    2. Fill URL field with https://docs-hook.typo3.org.
    3. Enable "Active" Status.
    4. Select Repository push for "Triggers".
    5. Click on "Save"
  5. Webhook was added

    Bitbucket should show a notice, which disappears after some seconds, that creation of webhook was successful. Also the webhook should be shown in the list.

  6. Trigger webhook and visit to check request

    Visit intercept.typo3.com and check "Recent actions" (scroll down).

    For the documentation to be rendered, the hook needs to be triggered: Either push to the branch main. Or push to a new branch documentation-draft.

GitLab cloud and GitLab self-hosted

Add auto rendering for a repository via GitLab webhook in four steps:

  1. Go to "Integrations" section within the repository

  2. Add webhook by filling in webhook configuration

    1. Fill URL field with https://docs-hook.typo3.org.
    2. Select Push events and Tag push events for "Trigger".
    3. Click on "Add webhook"
  3. Webhook was added

    The webhook should be shown in the list (scroll down).

  4. Trigger webhook and visit to check request

    Visit intercept.typo3.com and check "Recent actions" (scroll down).

    For the documentation to be rendered, the hook needs to be triggered: Either push to the branch main. Or push to a new branch documentation-draft.