Self-host the hub
Slack App
Create the Slack App from the generated manifest, add the /hookci command, and give the hub its signing secret.
Slack is where people watch repos, approve runs, and manage agents. Self-hosted, you create the Slack App yourself from a manifest that points at your hub.
Manifest
The Slack manifest is generated with the GitHub one. If you have not generated it yet, run this from the repository root. See the header of scripts/gen-manifests.mjs for options.
node scripts/gen-manifests.mjs --hub-url https://hub.example.com
The manifest in hub/manifests/ defines the app name, the bot user @hookci, the bot scopes, the /hookci slash command, App Home, and the request URLs for events and interactivity. Scopes come from the manifest, so you do not add them by hand. Check the file to see the exact list.
Create the app
-
Open the Slack app dashboard at api.slack.com/apps and choose Create New App, then From a manifest.
-
Pick the workspace and paste the contents of the Slack manifest from
hub/manifests/. -
Review the summary and create the app.
-
Under Basic Information, copy the client ID, client secret, and signing secret.
-
Install the app to your workspace with the Install App page, or from the hub’s Add to Slack flow.
Slash command
The manifest registers /hookci and points it at your hub. After install, test it in a channel.
Commands include watch, unwatch, status, retry, bind, me, export, delete-my-data, and help.
Interactivity
Buttons such as View logs, Approve run, and Revoke need the interactivity URL. The manifest sets it to your hub. If buttons do nothing, open Interactivity and Shortcuts in the app settings and check that the request URL is your hub URL and matches what the manifest script printed.
Slack signs every request. The hub verifies it with SLACK_SIGNING_SECRET, so a wrong value shows up as failed requests.
Set the secrets
Run these from hub/.
npx wrangler secret put SLACK_CLIENT_ID
npx wrangler secret put SLACK_CLIENT_SECRET
npx wrangler secret put SLACK_SIGNING_SECRET
Verify
Run /hookci help in any channel. The app should reply. If it does not, run npx wrangler tail in hub/ and repeat the command to see the request and any error.
Enterprise Grid is not supported. Use a regular workspace.
Continue with Connect agents.