Security and trust model

Built for code you trust.
Honest about the rest.

OwnCI runs code from your workflows on your machine. Here is exactly what it enforces, and what a container does not protect you from. Read this before pointing it at anything you don’t control.

Supported

Private repositories, trusted workflows.

OwnCI is meant for private repositories whose workflows you trust: your own, your team’s. ownci setup refuses public repositories unless you pass --allow-public-repo, because pull requests from forks can run arbitrary code on a self-hosted runner.

If you accept that risk anyway, set the repository’s Approval for running fork pull request workflows from contributors to Require approval for all external contributors (Settings → Actions → General), and read each pull request, including its changes to .github/workflows/, before you approve its run: approving runs that code on your machine.

In a team, the per-developer label routes jobs but does not restrict who can reach a runner. To let only maintainers decide which jobs reach which machine, seeLet only maintainers decide where jobs run.

What OwnCI enforces

Guard rails that are checked, not assumed.

What a container does not protect against

A container is not a sandbox for hostile code.

OwnCI does not claim to safely run arbitrary untrusted pull request code.

Comfortable with the model?

Set up your first runner.

Start with ownci doctor; it checks isolation too.

Get started