Public repos & packages
Share code and packages publicly. The team still owns everything.
Public repositories
A public repo is readable by anyone — they can clone it, browse the code, and see the commit history. Push access still requires team membership. The pipeline still gates every push. Nothing changes about how the team works.
Public repos are useful for open-source libraries, Homebrew taps, documentation
repos, and CLI tools you want to distribute. The URL is gittan.eu/{org}/{repo},
and the clone URL is git.gittan.eu/{org}/{repo}.git.
How to make a repo public
Via the CLI:
gittan repos create my-lib --team my-team --public
gittan repos update <repo-id> --public Or via the API:
POST /orgs/{orgId}/repos { "name": "my-lib", "teamId": "...", "private": false }
PUT /orgs/{orgId}/repos/{repoId} { "isPublic": true } Making a repo public requires org owner permissions.
No contributions from strangers
gittan is built for teams that ship. Public repos let the world read your work. Contributions happen through your team — not through pull requests from strangers. If someone wants to contribute, they talk to the team. If the team trusts them, they get added as a team member with full push access.
Package visibility
Package visibility is separate from repo visibility. You can have a private repo that publishes a public npm package, or a public repo with private container images.
Visibility is controlled at two levels:
| Level | Scope | Example |
|---|---|---|
| Per package | One specific package | npm / @myorg/design-tokens |
| Per format | All packages of a type | container (all images public) |
Supported formats: npm, pypi, go, terraform, container, generic.
Every visibility change is logged in the audit log.