Files
tryton/.gitlab-scripts/trigger-readthedocs.py
T

46 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python
#
# Requires $RTD_CONFIG to point to a file providing the webhook data for each
# package. The file is in Python cfg file format.
# Each section defines on package. Example::
#
# [modules/party]
# url: https://readthedocs.org/api/v2/webhook/modules-party/12345/
# token: 93afe1ce2d1107597f69774009964990c0643dad
import configparser
import sys
from argparse import ArgumentParser
from urllib import request
from urllib.parse import urlencode
parser = ArgumentParser()
parser.add_argument('--config', '-c', required=True)
parser.add_argument('--package', '-p', required=True)
parser.add_argument('--branches', '-b', nargs='*')
args = parser.parse_args()
cfg = configparser.ConfigParser()
cfg.read(args.config)
url = cfg.get(args.package, 'url')
token = cfg.get(args.package, 'token')
if not url:
sys.exit(f"Missing url for {args.package!r}")
elif not token:
sys.exit(f"Missing token for {args.package!r}")
data = [
('token', token),
*(('branches', branch) for branch in args.branches),
]
req = request.Request(
url,
data=urlencode(data).encode(),
headers={
'User-Agent': 'python-urllib/%s' % request.__version__,
})
with request.urlopen(req) as resp:
print(resp.read())