The /process workflow (and any skill that opens PRs or reads review comments) needs a GitHub token inside the container. Without one, gh and git push over HTTPS will fail.
If you don't plan to use the GitHub-driven parts of /process, you can skip this entirely — leave GITHUB_TOKEN unset and the container will start without configuring git auth.
-
Go to https://github.com/settings/personal-access-tokens/new
-
Token name: something memorable (e.g.
claude-slack-bridge) -
Expiration: 90 days is a reasonable default — rotate when it expires
-
Repository access: select Only select repositories and pick the single repo this bridge will operate on (e.g.
claude-slack-two-way)Avoid "All repositories" — that gives the container write access to your entire account.
-
Repository permissions: grant only what's needed:
Permission Access Purpose ContentsRead and write git pushto feature branchesPull requestsRead and write gh pr create, read review commentsMetadataRead-only Auto-granted, required Skip
Issues,Actions,Workflows, etc. unless you specifically need them. -
Click Generate token and copy the value — it starts with
github_pat_.... You won't be able to see it again.
In the repo root, open .env (gitignored — never commit it) and set:
GITHUB_TOKEN=github_pat_...
.env.example already has a placeholder line for this.
The token is wired into the container via docker-compose.yml and consumed by an entrypoint script that runs gh auth setup-git on startup. Apply the new env:
docker compose up -d --build claude-slack-bridge
docker exec claude-slack-bridge gh auth status
docker exec claude-slack-bridge git config --global --get credential.https://github.com.helper
Expected output:
gh auth status→ "Logged in to github.com as "- The git config line →
!/usr/bin/gh auth git-credential
If both look right, gh and git push inside the container will authenticate using your token.
When the PAT expires (or if it's leaked):
- Generate a new token at the URL above with the same permissions.
- Replace the value in
.env. - Restart the container — no rebuild needed:
docker compose up -d claude-slack-bridge - Revoke the old token at https://github.com/settings/personal-access-tokens.
- The token sits in the container's environment. Anyone with shell access to the container can read it. Keep the container's exposed surface (Slack channel allowlist, etc.) tight.
- Scope the token to one repo only so a compromise can't touch your other projects.
.envis gitignored. Double-check before pushing —git statusshould never show.envas modified.- The bridge writes daemon logs that may include subprocess output. Avoid logging commands that echo env vars (e.g.
env | grep TOKEN).