Security

Your code is read, not kept.

Merge & Tell reads a merged pull request so it can write the post about it. It fetches the diff from GitHub, uses it once, and drops it. The diff never lands in the database or a log. This page lists what it reads, where that goes, and what stays behind.

The path

What happens on a merge

Where a merged pull request goesGitHub sends the pull request to Merge & Tell, which holds the diff in memory. Merge & Tell sends the title, description and up to 12,000 characters of diff to Claude. Claude returns a plain-English summary, and the posts are written from it. Only the title, the summary and the posts go to the database. The diff does not.GitHubyour pull requestMerge & Tellholds the diff in memoryClaudeAnthropic's modelYour postsX, LinkedIn, changelog…Databasetitle, summary, postson mergetitle, description, diff≤ 12,000 charsof diff, oncesummaryposts written from itnever the diffit ends with the job
The line that is missing is the point. Nothing runs from the diff to the database. Scroll sideways to see the whole diagram.
  1. GitHub tells Merge & Tell a pull request merged. That notice carries the title, the description, the labels and the author. It has no code in it.
  2. Merge & Tell asks GitHub for the diff of that one pull request and keeps the first 12,000 characters. A diff is the list of lines added and removed.
  3. It sends the title, the description and that diff to Claude with one job. Say what changed for the people who use the product, and never name a file, function, table or library.
  4. Claude answers with a short summary in plain words. Every post is written from that summary. The diff is never handed to the step that writes the posts.
  5. When the job ends, the diff is gone. Press Re-run and Merge & Tell asks GitHub for it again, because there is no copy to reuse.

The database

What it keeps, and what it drops

Here is every piece of a pull request Merge & Tell touches, and how long each one stays.

WhatKept?Why
The code diffNeverHeld in memory for one job, then dropped.
The rest of your repositoryNeverOnly .marketing.yml is read on a merge. The README and repo description are read when you ask for a product profile, and only the profile you save is kept.
The PR descriptionUntil the post is writtenA queued job needs it, and so does a retry of one that failed. Once the job finishes, the database removes it.
The PR title and numberYesThey label the pull request in your feed and in roundups.
The plain-English summaryYesIt sits next to each draft, so you can see what the post was written from.
Size countsYesHow many files and lines changed, used to judge how big a change is. Counts only, never the lines.
The postsYesThey are yours to edit, schedule and publish.

GitHub

What the GitHub App can do

You approve these on GitHub when you install the App, and you can uninstall it there at any time. None of them can change your code. The App has no write access to repository contents, so it cannot push, open a branch or edit a file.

PermissionWhat it is used for
Pull requests: ReadMerged pull requests, their diffs and labels, and comment commands.
Pull requests: Read & writeOne reply on a pull request, when you ask for media in a comment.
Issues: Read & writeThe 👀 reaction that says a comment command was seen.
Contents: Read.marketing.yml, the README, the repo description and folder names. GitHub has no permission narrower than this for reading one file.
Email addresses: ReadSigning you in with GitHub.

Other companies

Who else handles it

Anthropic. Claude receives the title, the description and up to 12,000 characters of diff for each merged pull request. A post in a person's voice also gets up to 4,000 characters of the description, so it can tell the story in the author's words. Anthropic processes this under its commercial API terms, as Merge & Tell's subprocessor.

Netlify runs the job, so the diff passes through its servers' memory. Supabase hosts the database that holds the kept list above.

The full subprocessor list is in the privacy policy.

Tokens

Your other credentials

The tokens and app passwords for the accounts you connect are stored encrypted in Supabase Vault and read only on the server. They never reach your browser, the activity feed or a URL. Before an error is saved, anything shaped like a secret is cut out of it.

Something here not answered?

Ask before you install. A question about where your code goes deserves a straight answer.