This code is run as an AWS lambda that acts as a webhook for Github Pull Request Events. It updates the location of Asana tasks on a sprint board when PRs are opened or merged. It requires the Asana ticket URL to be in the PR description. It also updates a custom field on Asana tasks called "GitHub PR" with the PR's URL, including when only the PR description is updated.
brew install python3pip install virtualenv
In app dir,
virtualenv -p python3 venv- Whenever you want to develop, activate the virtual env via:
. venv/bin/activate - Once activated
pip install -r requirements-dev.txt - To update requirements for production
rm -rf venv(to start with a fresh venv without dev dependencies)virtualenv -p python3 venv. venv/bin/activatepip install -r requirements.txtpip install <dep>andpip freeze > requirements.txt
The project currently includes autopep8 for formatting and pylint for linting.
autopep -i handler.pypylint handler.py
In app dir,
- Add the dependencies
rm -rf venvvirtualenv -p python3 venv. venv/bin/activatepip install -r requirements.txtdeactivatecd venv/lib/python3.7/site-packageszip -r9 ../../../../function.zip .
- Add the handler
cd ../../../../back toappzip -g function.zip handler.py- And then upload the zip in the AWS Lambda console or via the AWS CLI.