Demo of a GitHub App using Python 3.7, gidgethub and aiohttp.
Other dependencies: pyjwt and cryptography.
See requirements.txt.
When the command line script is run, the GitHub App will open an issue in my repo: Mariatta/strange-relationship <https://github.com/mariatta/strange-relationship>
_.
Example issue created by the GitHub App: https://github.com/Mariatta/strange-relationship/issues/144
-
Create a GitHub App (https://github.com/settings/apps/new)
Give it the necessary permission. I gave "read & write" access to Issues.
-
Have a user install the app.
-
Record the App ID. It can be found in the App's settings under "About" heading.
-
Generate a private key for the app. (https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#generating-a-private-key)
-
Install the dependencies, preferably using a virtual environment. For example::
$ python3.7 -m venv venv $ source venv/bin/activate $ python -m pip install -U pip $ python -m pip install -r requirements.txt
-
Create the environment variable
GH_APP_ID
. (obtained from GitHub App Creation step 3 ). For example::$ export GH_APP_ID=1235
-
Create the environment variable
PEM_FILE_PATH
, that is the path to the private key file (downloaded in GitHub App Creation step 4). For example::$ export PEM_FILE_PATH=./my-app.2018-11-11.private-key.pem
-
Run the command line script::
$ python main.py