Skip to content

Security

registry-sync is designed with a minimal-access, non-destructive security model. This page documents what it touches, what it does not, and what permissions it requires.

  • Public GitHub API — reads repository metadata, file contents (package.json, Dockerfile), and org membership. When apply --confirm is used, creates issues and pull requests on repos you have write access to.
  • Public npm registry — read-only queries for package metadata (version numbers, publish dates). No authentication required for these lookups.
  • No local file modification — registry-sync reads your config file but never writes to your filesystem.
  • No npm publish — it does not run npm publish or push packages on your behalf.
  • No Docker push — it does not push container images to GHCR or any other registry.
  • No credential storage — tokens are read from environment variables or the GitHub CLI at runtime. Nothing is cached or persisted to disk.
  • No network egress beyond GitHub and npm — registry-sync only communicates with api.github.com and registry.npmjs.org. No other endpoints are contacted.

None. No analytics, no phone-home, no data collection of any kind. Zero telemetry by design.

CredentialScopeUsed by
GITHUB_TOKENrepo (read)audit, plan — read org repos, file contents
GITHUB_TOKENrepo (write)apply --confirm — create issues and PRs
npm tokenNot requiredAll npm queries are public read-only
  1. GITHUB_TOKEN environment variable — preferred method
  2. gh auth token fallback — if the GitHub CLI is installed and authenticated

The apply command in v1 only creates GitHub issues and pull requests. It never directly publishes packages, pushes containers, or deletes anything. The --confirm flag is required to take any action at all; without it, apply behaves identically to plan (dry-run).