Fix webhook issues, make repo URLs matched case insensitive

This commit is contained in:
rubenwardy 2020-06-03 16:32:39 +01:00
parent d7977dec84
commit 7f650a619e
3 changed files with 11 additions and 9 deletions

View File

@ -90,9 +90,9 @@ def webhook():
# Get package # Get package
github_url = "github.com/" + json["repository"]["full_name"] github_url = "github.com/" + json["repository"]["full_name"]
package = Package.query.filter(Package.repo.like("%{}%".format(github_url))).first() package = Package.query.filter(Package.repo.ilike("%{}%".format(github_url))).first()
if package is None: if package is None:
return error(400, "Could not find package, did you set the VCS repo in CDB correctly?") return error(400, "Could not find package, did you set the VCS repo in CDB correctly? Expected {}".format(github_url))
# Get all tokens for package # Get all tokens for package
tokens_query = APIToken.query.filter(or_(APIToken.package==package, tokens_query = APIToken.query.filter(or_(APIToken.package==package,

View File

@ -30,9 +30,9 @@ def webhook():
# Get package # Get package
gitlab_url = "gitlab.com/{}/{}".format(json["project"]["namespace"], json["project"]["name"]) gitlab_url = "gitlab.com/{}/{}".format(json["project"]["namespace"], json["project"]["name"])
package = Package.query.filter(Package.repo.like("%{}%".format(gitlab_url))).first() package = Package.query.filter(Package.repo.ilike("%{}%".format(gitlab_url))).first()
if package is None: if package is None:
return error(400, "Unknown package") return error(400, "Could not find package, did you set the VCS repo in CDB correctly? Expected {}".format(gitlab_url))
# Get all tokens for package # Get all tokens for package
secret = request.headers.get("X-Gitlab-Token") secret = request.headers.get("X-Gitlab-Token")

View File

@ -36,9 +36,9 @@ The process is as follows:
### GitHub (manual) ### GitHub (manual)
1. Create an API Token by visiting your profile and clicking "API Tokens: Manage". 1. Create a ContentDB API Token by visiting your profile and clicking "API Tokens: Manage".
2. Copy the access token that was generated. 2. Copy the access token that was generated.
3. Go to the repository's settings > Webhooks > Add Webhook. 3. Go to the GitLab repository's settings > Webhooks > Add Webhook.
4. Set the payload URL to `https://content.minetest.net/github/webhook/` 4. Set the payload URL to `https://content.minetest.net/github/webhook/`
5. Set the content type to JSON. 5. Set the content type to JSON.
6. Set the secret to the access token that you copied. 6. Set the secret to the access token that you copied.
@ -46,18 +46,20 @@ The process is as follows:
* If you want a rolling release, choose "just the push event". * If you want a rolling release, choose "just the push event".
* Or if you want a stable release cycle based on tags, * Or if you want a stable release cycle based on tags,
choose "Let me select" > Branch or tag creation. choose "Let me select" > Branch or tag creation.
8. Create.
### GitLab (manual) ### GitLab (manual)
1. Create an API Token by visiting your profile and clicking "API Tokens: Manage". 1. Create a ContentDB API Token by visiting your profile and clicking "API Tokens: Manage".
2. Copy the access token that was generated. 2. Copy the access token that was generated.
3. Go to the repository's settings > Integrations. 3. Go to the GitLab repository's settings > Webhooks.
4. Set the URL to `https://content.minetest.net/gitlab/webhook/` 4. Set the URL to `https://content.minetest.net/gitlab/webhook/`
6. Set the secret token to the access token that you copied. 6. Set the secret token to the ContentDB access token that you copied.
7. Set the events 7. Set the events
* If you want a rolling release, choose "Push events". * If you want a rolling release, choose "Push events".
* Or if you want a stable release cycle based on tags, * Or if you want a stable release cycle based on tags,
choose "Tag push events". choose "Tag push events".
8. Add webhook.
## Configuring ## Configuring