Use authenticated API call for github API for better rate limits

This commit is contained in:
Jay Berkenbilt 2022-12-31 15:05:48 -05:00
parent 3f567ae02d
commit 234e323743
3 changed files with 24 additions and 10 deletions

View File

@ -26,7 +26,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: 'Run pre-build steps'
run: build-scripts/prebuild
run: build-scripts/prebuild ${{ secrets.GITHUB_TOKEN }}
- name: 'Upload documentation for later build steps'
uses: actions/upload-artifact@v3
with:

View File

@ -30,16 +30,23 @@ src_name = 'qpdf-external-libs-src.zip'
dir_name = 'external-libs-dist'
os.makedirs(dir_name, exist_ok=True)
github_headers = {
'content-type': 'application/json',
}
try:
token = sys.argv[1]
github_headers['authorization'] = f'Bearer {token}'
except IndexError:
print('WARNING: unauthenticated call to github API'
' will be subject to more stringent rate limits.')
r = requests.get(
'https://api.github.com/repos/qpdf/external-libs/releases')
'https://api.github.com/repos/qpdf/external-libs/releases',
headers=github_headers)
if r.status_code >= 400:
exit(f'GitHub API call returned status {r.status_code}: {r.text}')
releases = json.loads(r.text)
# Help diagnose occasional failure where some releases don't have
# 'prerelease'. I've never seen this in attempts to reproduce.
print("---- github API output for external-libs releaes ----")
print(json.dumps(releases, indent=2, separators=(',', ': ')))
print("--------")
by_tag = sorted(
[(r['tag_name'], r) for r in releases
if r['prerelease'] is False],

View File

@ -1,6 +1,13 @@
#!/bin/bash
set -e
cd $(dirname $0)/..
token=$1
if [ "$token" = "" ]; then
echo 1>&2 "Usage: $0 github-token"
exit 2
fi
if ! ./generate_auto_job --check; then
cat 1>&2 <<EOF
@ -18,4 +25,4 @@ EOF
exit 2
fi
build-scripts/build-doc
build-scripts/download-external-libs
build-scripts/download-external-libs $token