Skip to content

Quickstart

Eight labs, one per combination of encryption mode and CI mode. Pick the pair that matches your situation and follow it end to end.

Configuring CodeSeal is answering two independent questions. Every lab here is one pair of answers, followed from an empty repository to a green build.

The two questions

What is the decryption material? — the encryption mode, chosen at sgit init, and about your team rather than your pipeline.

R · recipientEvery developer has their own keypair. Each file's key is wrapped to each person, so adding or removing someone is a rewrap rather than a shared-secret rotation.
P · passphraseOne shared secret, stretched with scrypt. Simple, and everyone who has it has everything.

Who holds it, who builds, and who starts the build? — the CI mode.

D · portal-dispatchYou hold the keys. sgit push triggers the build and sends the key material, sealed, with it.
S · secretsGitHub Secrets holds the key material, permanently. GitHub triggers on push.
K · portal-keyA Portal holds it and hands it to the runner for one build. GitHub triggers on push.
B · portal-buildA Portal holds it and does the build. GitHub never sees plaintext.

Two axes, and they are genuinely independent: eight working combinations.

Each pair has a two-letter name, and sgit takes it as a command:

terminal
sgit rd        # = sgit init --mode recipient --ci-mode portal-dispatch

The letters are the two answers — Recipient or Passphrase, then Dispatch, Secrets, portal-Key or portal-Build. Every lab below gives the shorthand and the long form; sgit --help lists all eight.

Pick your lab

Which one is yours

If…Lab
You want the strongest default and are willing to trigger builds yourselfRD
You are one person, and per-developer keys are ceremony you do not needPD
Builds must start on their own, with nothing running locallyRS or PS
You already run a Portal and want central auditRK or PK
Your CI provider is explicitly outside the trust boundaryRB or PB

What every lab assumes

  • sgit on your PATH — see Install
  • git, and a repository you can push to
  • $CODESEAL set, or the default ~/Dev/config/codeseal
  • a fine-grained GitHub token — step 1 of every lab

Nothing else. No Docker, no Node, no Portal unless the lab's name says Portal.