Scripts
All scripts are located in the scripts/ directory.
Script openapi.py
The main script to sync PyGithub classes with the Github OpenAPI spec.
Run scripts/openapi.py --help or scripts/openapi.py COMMAND --help for help:
usage: openapi.py [-h] [--dry-run] [--exit-code] [--verbose] {fetch,index,suggest,apply,create} ...
Applies OpenAPI spec to PyGithub GithubObject classes
positional arguments:
{fetch,index,suggest,apply,create}
options:
-h, --help show this help message and exit
--dry-run Show prospect changes and do not modify any files (default: False)
--exit-code Indicate changes via non-zeor exit code (default: False)
--verbose Provide more information (default: False)
See Github OpenAPI for details.
Script sort_class.py
The scripts/openapi.py script works best when attributes and methods are sorted.
This script applies that order to all / to specific classes:
usage: sort_class.py [-h] [--dry-run] index_filename class_name [class_name ...]
Sorts methods of GithubObject classes, also sorts attributes in _initAttributes and _useAttributes
positional arguments:
index_filename Path of index file
class_name GithubObject class to sort, e.g. HookDelivery or github.HookDelivery.HookDeliverySummary
options:
-h, --help show this help message and exit
--dry-run show prospect changes and do not modify the file
See Github OpenAPI for details.
Script get-openapi-path.sh
Quickly extract a specific Github API path from the OpenAPI spec. See Get an OpenAPI API path.
This script requires jq to be installed.
Script get-openapi-schema.sh
Quickly extract a specific OpenAPI schema from the spec. See Get an OpenAPI schema.
This script requires jq to be installed.
Script openapi-update-classes.sh
An umbrella script that syncs all / specific classes with the OpenAPI spec.
Invoke the script:
./scripts/openapi-update-classes.sh [--create-classes] [--branch BRANCH] [--branch-prefix BRANCH_PREFIX] [CLASS_NAME ...]
The script puts all changes into either a single branch (--branch BRANCH),
or one branch per PyGithub class (--branch-prefix BRANCH_PREFIX prefixes branches
with BRANCH_PREFIX, default is openapi/update).
With --create-classes, the script creates new PyGithub classes for any schema returned by an attribute
that is not yet implemented by a PyGithub class.
Script prepare-for-update-assertions.py
Prepares a test method to be called with scripts/update-assertions.sh.
Run scripts/update-assertions.sh --help for help:
usage: prepare-for-update-assertions.py [-h] [--dry-run] [--exit-code] filename function
Removes newlines from all statements in a specific function of one test file
positional arguments:
filename Path of test file
function Name of the test function
options:
-h, --help show this help message and exit
--dry-run Show prospect changes and do not modify the file
--exit-code Indicate changes via non-zero exit code
See Updating assertions for details.
Script update-assertions.sh
Updates all assertions’ expected values with actual values. This is useful to mass-update assertions when actual data changed for tests.
Invoke the script:
./scripts/update-assertions.sh TEST_FILE TEST_METHOD
See Updating assertions for details.
Script prepare_release.sh
Script to prepare a release.
Script fix_headers.py
Updates the licence header of all files. This is used as part of the release process.