I had the same goal some time ago and have now released a little tool, which solves the problem at least for me. It uses AWS Lambda and deploys a specific branch of the repository to S3 after push. You can take full advantage of the GitHub deploy key, which has fewer permissions as personal access tokens and can be configured per repository.
Please take a look at github-bucket, it might help you too.