At a glance
- Installs only on the repositories you choose.
- Never merges, and never pushes to your default branch.
- Doesn't request GitHub's workflows permission, so it can't change your CI workflow files.
- Runs your build and tests in single-use containers with networking switched off.
- Never edits or deletes your tests to make them pass.
- Doesn't keep a copy of your repository after a run. Diffs and run logs are deleted after 30 days.
- Sends the AI provider only the snippets needed for a fix, never your whole repository, under terms that don't allow training on it.
What happens during a run
- A run starts. GitHub notifies Sunup that an upgrade pull request's checks failed, or someone on your team comments
@sunup fixon a pull request. - A temporary workspace is created. Sunup clones the repository into a fresh, single-use container, using a GitHub access token that expires within an hour.
- Dependencies install, then the network goes off. Packages install from their registries first. Then networking is switched off, and your build, type checks, and tests run with no internet access, no secrets, and no connection to your production systems.
- Only what's needed goes to the AI provider. To write a fix, Sunup sends the error messages, the specific lines involved, and the upgraded package's public release notes. Never your whole repository.
- The fix is verified, then delivered. Sunup runs your tests again. If it's confident, it opens a pull request on a new branch. If it isn't, it explains what it found in a comment instead.
- The workspace is destroyed. The container and the cloned code are deleted. Sunup keeps only the diff and run logs that explain its pull request or comment, for 30 days.
GitHub permissions
Sunup is a GitHub App. You choose which repositories it can access, and you can remove access at any time in your GitHub settings. These are the permissions Sunup is designed to request:
| Permission | Access | Why |
|---|---|---|
| Repository contents | Read & write | Read your code, and push each fix to a new branch. Never to your default branch. |
| Pull requests | Read & write | Find upgrade pull requests and open fix pull requests. |
| Issues | Read & write | Read and reply to @sunup commands. GitHub delivers pull request comments through its issues API. |
| Checks and commit statuses | Read only | Notice when an upgrade pull request's CI fails. |
| Actions | Read only | Read failing CI logs to understand the error. |
| Metadata | Read only | Required by GitHub for every app. |
| Workflows | Not requested | Without it, GitHub blocks Sunup from creating or changing your CI workflow files. |
| Administration, secrets, members | Not requested | Sunup can't change repository settings, read your secrets, or see your team. |
Two of the rules above, never merging and never pushing to your default branch, are enforced by Sunup's own code rather than by GitHub. Branch protection on your default branch adds a second layer, and we recommend it.
Sandbox isolation
Every run happens in a fresh container that exists only for that run.
- It runs as a non-root user, with CPU, memory, process, and time limits.
- Dependencies install first. Networking is then switched off before any build or test step runs.
- It has no access to the host machine: no shared Docker socket and no shared home directory.
- It receives no customer secrets. If your tests need a database, an API key, or another service Sunup can't safely provide, Sunup reports that it couldn't verify the change instead of guessing.
- It's destroyed when the run ends, along with the cloned code.
Data and retention
What Sunup keeps
- Installation details from GitHub: your organization name, the repositories you selected, and the installation ID.
- A record of each run: the package and versions involved, the outcome, and timing.
- The diff and run logs behind each pull request or comment, for 30 days.
What Sunup doesn't keep
- Copies of your repository. Each run's clone is deleted when the run ends.
- Secrets, environment variables, or production data. Sunup never asks for them.
When you uninstall
When you uninstall the GitHub App, we delete your run data within 30 days. To have it deleted sooner, email team@sunuplabs.com.
AI provider
Sunup uses Anthropic's Claude models through Anthropic's commercial API. Anthropic's Commercial Terms of Service state that Anthropic may not train models on customer content from its services.
Sunup sends the smallest context that can produce a correct fix: error messages, the specific lines involved, and public release notes. It doesn't send your whole repository, and it doesn't send secrets.
Service providers
These companies help us run Sunup and this website. We'll publish the full list of production infrastructure providers before Sunup is generally available.
| Provider | What it does for Sunup |
|---|---|
| GitHub | Hosts your repositories and delivers events to the Sunup GitHub App. |
| Anthropic | AI models that help write fixes. |
| Netlify | Hosts the sunuplabs.com website. |
| Formspree | Receives website form submissions. |
| Zoho | Email for team@sunuplabs.com. |
Compliance
Sunup is pre-launch and has not completed a SOC 2 audit. We plan to pursue SOC 2 as we onboard paying customers.
Until then, we're glad to answer security questionnaires and walk your team through exactly how Sunup works. Email team@sunuplabs.com.
Report a vulnerability
If you believe you've found a security issue in Sunup or sunuplabs.com, email team@sunuplabs.com with the subject “Security”. Please include the steps to reproduce it. We'll acknowledge your report within 2 business days and keep you updated until it's resolved.
Please don't access or change other people's data, and avoid testing that could disrupt the service for others.