3.4 KiB
Jojo Development Flow Reference
Remotes
git remote -v
# origin git@jojo.build:peezy-tech/codex-flows.git
# codeberg git@codeberg.org:peezy-tech/codex-flows.git
# github https://github.com/peezy-tech/codex-flows.git
main should track jojo:
git branch --set-upstream-to=origin/main main
git status --short --branch
# ## main...origin/main
Use jojo for day-to-day work:
git pull
git push
Confirm Codeberg mirror state:
git ls-remote origin refs/heads/main
git ls-remote codeberg refs/heads/main
Use GitHub only to run npm trusted publishing:
git push github main
gh workflow run publish-codex-flows.yml --repo peezy-tech/codex-flows --ref main -f confirm_package='@peezy.tech/codex-flows'
Accounts
peezy: human site admin, 2FA enabled.matamune: active development worker account for this host, not a site admin.peezy-tech: organization containingcodex-flows.load-game: organization containing bothpeezyandmatamune.
Keys
Host SSH public key:
~/.config/forgejo-keys/matamune-jojo-build-ssh.pub
Host GPG public key:
~/.config/forgejo-keys/matamune-jojo-build-gpg.asc
Codeberg SSH key still exists for direct mirror diagnostics:
~/.ssh/id_ed25519_codeberg.pub
Git signing is expected:
git config --global commit.gpgsign true
git config --global user.signingkey E3B0D5FB2E5CF11FAFB2EA113BB8E7D3B968A324
Jojo CLI And API Checks
fj can talk to jojo.build when authenticated:
fj --host jojo.build auth list
fj --host jojo.build repo view peezy-tech/codex-flows
For admin automation, prefer a scoped peezy token. The old bootstrap matamune setup token should not be treated as the long-term admin credential.
Branch Protection
main is protected:
- Owners can push and merge.
- Required status context:
ci / check (push). - Protection applies to admins.
- Signed commits are not required yet.
Jojo Actions
Workflow file:
.forgejo/workflows/ci.yml
The runner label used by CI is ubuntu-latest, backed by node:22-bookworm. The workflow installs Bun before running checks because the release dry-run needs npm.
Current CI gate:
bun install --frozen-lockfile
bun run check:types
bun run test
bun run --filter @peezy.tech/codex-flows release:check
Jojo CLI
fj --host jojo.build auth add-key matamune <token>
fj --host jojo.build auth use-ssh true
Create the organization repo when missing:
fj --host jojo.build org repo create peezy-tech codex-flows \
-d "Public monorepo for @peezy.tech/codex-flows" \
-S true
Verify the repository:
fj --host jojo.build repo view peezy-tech/codex-flows
git ls-remote origin HEAD refs/heads/main
Package Release Gate
bun run --filter @peezy.tech/codex-flows release:check
bun run check:types
bun run test
git diff --check
Verify npm after GitHub Actions publishing:
npm dist-tag ls @peezy.tech/codex-flows
npm view @peezy.tech/codex-flows version repository --json
Current State
- Canonical repo:
https://jojo.build/peezy-tech/codex-flows - Codeberg mirror:
https://codeberg.org/peezy-tech/codex-flows - GitHub publishing repo:
https://github.com/peezy-tech/codex-flows origin/mainandcodeberg/mainshould stay aligned automatically through the jojo push mirror.github/mainmay lag until a release needs npm trusted publishing.