2020-01-25 01:44:46 +01:00
|
|
|
title: Creating Releases using Webhooks
|
|
|
|
|
|
|
|
## What does this mean?
|
|
|
|
|
2020-01-25 03:30:42 +01:00
|
|
|
A webhook is a notification from one service to another. Put simply, a webhook
|
|
|
|
is used to notify ContentDB that the git repository has changed.
|
|
|
|
|
2020-01-25 01:44:46 +01:00
|
|
|
ContentDB offers the ability to automatically create releases using webhooks
|
|
|
|
from either Github or Gitlab. If you're not using either of those services,
|
|
|
|
you can also use the [API](../api) to create releases.
|
|
|
|
|
2021-01-29 23:50:18 +01:00
|
|
|
ContentDB also offers the ability to poll a Git repo and check for updates
|
|
|
|
without any web hooks, this is limited to once a day.
|
2021-01-30 16:09:31 +01:00
|
|
|
See [Git Update Detection](/help/update_config/).
|
2021-01-29 23:50:18 +01:00
|
|
|
|
2020-01-25 01:44:46 +01:00
|
|
|
The process is as follows:
|
|
|
|
|
2021-01-26 17:22:13 +01:00
|
|
|
1. The user creates an API Token and a webhook to use it.
|
2020-01-25 01:44:46 +01:00
|
|
|
2. The user pushes a commit to the git host (Gitlab or Github).
|
|
|
|
3. The git host posts a webhook notification to ContentDB, using the API token assigned to it.
|
2020-01-25 03:30:42 +01:00
|
|
|
4. ContentDB checks the API token and issues a new release.
|
2020-01-25 01:44:46 +01:00
|
|
|
|
2021-02-05 16:29:44 +01:00
|
|
|
<p class="alert alert-warning">
|
|
|
|
"New commit" or "push" based webhooks are currently broken as they don't check the branch name.
|
|
|
|
This means that releases will be created for pushes to non-default branches.
|
|
|
|
</p>
|
|
|
|
|
2020-01-25 01:44:46 +01:00
|
|
|
## Setting up
|
|
|
|
|
2021-01-26 17:22:13 +01:00
|
|
|
### GitHub
|
2020-01-25 01:44:46 +01:00
|
|
|
|
2020-06-03 17:41:06 +02:00
|
|
|
1. Create a ContentDB API Token at [Profile > API Tokens: Manage](/user/tokens/).
|
2020-01-25 01:44:46 +01:00
|
|
|
2. Copy the access token that was generated.
|
2020-06-03 17:32:39 +02:00
|
|
|
3. Go to the GitLab repository's settings > Webhooks > Add Webhook.
|
2020-01-25 01:44:46 +01:00
|
|
|
4. Set the payload URL to `https://content.minetest.net/github/webhook/`
|
|
|
|
5. Set the content type to JSON.
|
|
|
|
6. Set the secret to the access token that you copied.
|
|
|
|
7. Set the events
|
|
|
|
* If you want a rolling release, choose "just the push event".
|
|
|
|
* Or if you want a stable release cycle based on tags,
|
2020-01-30 22:39:51 +01:00
|
|
|
choose "Let me select" > Branch or tag creation.
|
2020-06-03 17:32:39 +02:00
|
|
|
8. Create.
|
2020-01-25 01:44:46 +01:00
|
|
|
|
2021-01-26 17:22:13 +01:00
|
|
|
### GitLab
|
2020-01-25 01:44:46 +01:00
|
|
|
|
2020-06-03 17:41:06 +02:00
|
|
|
1. Create a ContentDB API Token at [Profile > API Tokens: Manage](/user/tokens/).
|
2020-01-25 01:44:46 +01:00
|
|
|
2. Copy the access token that was generated.
|
2020-06-03 17:32:39 +02:00
|
|
|
3. Go to the GitLab repository's settings > Webhooks.
|
2020-01-25 01:44:46 +01:00
|
|
|
4. Set the URL to `https://content.minetest.net/gitlab/webhook/`
|
2020-06-03 17:32:39 +02:00
|
|
|
6. Set the secret token to the ContentDB access token that you copied.
|
2020-01-25 01:44:46 +01:00
|
|
|
7. Set the events
|
|
|
|
* If you want a rolling release, choose "Push events".
|
|
|
|
* Or if you want a stable release cycle based on tags,
|
|
|
|
choose "Tag push events".
|
2020-06-03 17:32:39 +02:00
|
|
|
8. Add webhook.
|
2020-01-25 01:44:46 +01:00
|
|
|
|
2021-02-05 16:29:44 +01:00
|
|
|
## Configuring Release Creation
|
2020-01-25 01:44:46 +01:00
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
See the [Package Configuration and Releases Guide](/help/package_config/) for
|
|
|
|
documentation on configuring the release creation.
|
2021-02-05 16:29:44 +01:00
|
|
|
|
|
|
|
From the Git repository, you can set the min/max Minetest versions, which files are included,
|
|
|
|
and update the package meta.
|