46 lines
1.2 KiB
Python
Executable File
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())
|