Connect GitHub

Read-only GitHub App, merge webhooks, and trigger modes.

The GitHub connection is what makes Bellnote zero-touch: merge a PR and a draft is waiting for you. This page covers what we access, what we listen for, and how to control it.

Install the GitHub App

From your project, click Connect GitHub. You'll be redirected to GitHub to install the Bellnote GitHub App on one or more repositories. Pick the repo you ship your product from — the one whose merges your users care about.

Permissions: read-only, always

Bellnote requests the minimum scopes needed to read pull requests, commit metadata, and diff summaries. We never request write access to your code, issues, or settings. Installation IDs and webhook secrets are stored per repo; integration secrets are encrypted at rest.

What triggers a draft

Once connected, Bellnote receives signed webhooks (X-Hub-Signature-256 verified) for:

  • Merged pull requests — closed PRs where merged is true.
  • Pushes to the default branch — multiple commits in one push are aggregated into a single draft.

Each event enqueues a generation job, idempotent by repo + SHA/PR number, so duplicate deliveries never create duplicate drafts. Drafts typically appear in your queue within 30 seconds.

Trigger modes

Per repo, in Integrations → GitHub:

Mode Behavior
per_merge (default) Every merge or push produces one draft.
weekly_digest Merges collect for a week; one digest draft is generated Monday 09:00 in your project timezone.

What goes into a draft

For each change we collect the PR title, body, labels, commit messages, and a diff summary — capped at roughly 5,000 characters per change. Oversized diffs are trimmed to the file list plus the first hunks; lockfiles, dist/, and minified assets are dropped. The prompt then adds your voice profile (style directives learned from your published entries and edits) and up to three of your recent published entries as examples.

Chore-only changes (dependency bumps, invisible refactors) are auto-rejected with a reason rather than queued — enable draft everything mode if you prefer to decide yourself.

Test the connection

In Integrations → GitHub use Send test event, or click Generate test draft from latest merge in the draft queue. You'll see the connection status, the connected repo, and the last received event timestamp on the same page.

Disconnecting

Uninstall the GitHub App from your GitHub settings, or disconnect the repo in the portal. Existing drafts and published entries are unaffected — disconnecting only stops new drafts.