This repo contains the source for the Cloudflare Worker that powers the GitHub OAuth flow and issue creation for Utterances.
yarn install
Create a file named .env
at the root. File should have the following values:
- BOT_TOKEN: a personal access token that will be used when creating GitHub issues.
- CLIENT_ID: The client id to be used in the GitHub OAuth web application flow
- CLIENT_SECRET: The client secret for the OAuth web application flow
- STATE_PASSWORD: 32 character password for encrypting state in request headers/cookies. Generate here.
- ORIGINS: comma delimited list of permitted origins. For CORS.
- WEBHOOK_SECRET: this is for a future feature. for now, make sure you include it (it can just be an empty string) or an error will be thrown
- CLOUDFLARE: the CloudFlare environment variables are explained in the @cfworker/dev docs. just be sure to use an API key rather than an API token, despite the fact that the CloudFlare documentation seems to suggest you should do the latter
Example:
BOT_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
CLIENT_ID=aaaaaaaaaaaaaaaaaaaa
CLIENT_SECRET=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
STATE_PASSWORD=01234567890123456789012345678901
ORIGINS=https://utteranc.es,http://localhost:9000
WEBHOOK_SECRET=""
CLOUDFLARE_EMAIL=
CLOUDFLARE_API_KEY=
CLOUDFLARE_ZONE_ID=
CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_WORKERS_DEV_PROJECT=
yarn run start
yarn run build
First add the necessary CLOUDFLARE_* entries to your .env file. See @cfworker/dev README for more information.
Then execute:
yarn run deploy
- use API key and not API token in
.env
file (see this GitHub issue) - set
WEBHOOK_SECRET
in.env
file to some placeholder value to avoidprocess.env
error - Cloudflare free SSL certs only cover a single level of subdomains, not 2nd and greater level subdomains