This creates the GitHub App and gives you the credentials the bot needs to
run (App ID, private key, webhook secret, OAuth client ID/secret). Do this
first — the bot can't start until these values are in your .env.
Enter the public hostname where GitHub will reach your bot (for local dev
with Smee.io, use your Smee channel URL —
webhooks are then registered at the channel root, which the smee client
forwards to the bot's local /api/webhook, and the OAuth
callback points at http://localhost:8080, where your browser
reaches the bot directly).
The manifest is built right here in your browser; nothing is sent anywhere
until you submit it to GitHub.
———
On the confirmation page, note the App ID, generate a
private key, and create a webhook secret.
Copy the Client ID and Client secret from
the app's Identifying and authorizing users settings (needed for
dashboard login), then follow the
getting started guide to put them in
.env and start the bot.
GitHub also redirects to your host with a one-time ?code=
parameter (the bot isn't running yet, so the page won't load — that's
fine). You can exchange it for a ready-made .env instead of
copying values by hand:
gh api --method POST /app-manifests/<code>/conversions \ | java scripts/GenEnv.java --host <your-host>
Using Smee? Don't pass the Smee URL as --host (that writes
DASHBOARD_URL=https://<host>); run it without
--host and then set
DASHBOARD_URL=http://localhost:8080 in the generated
.env — dashboard login only works when
DASHBOARD_URL matches the callback registered above
(http://localhost:8080 for Smee installs).