feat(binjovi): credential the isolated repo-creator release #697
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/wire-repo-creator-credentials"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Part A (seanfarm half) of enabling the
create_repositoryMCP tool thatshipped inert in
sean/binjoviPR #1716 (v0.1.706). Forgejo deniesrepository creation to every non-admin identity
(
FORGEJO__REPOSITORY__MAX_CREATION_LIMIT=0), so the isolatedrepo-creator release needs its own site-admin Forgejo credential, and
this is the piece of that credential chain that lives in this repo.
binjovi-repo-creator-bot: the firstForgejoUserin the fleet withisAdmin: true.binjovi-botandbinjovi-operator-botboth stayisAdmin: false.ForgejoToken(write:admin+write:repository, verified againstthe live instance's own
swagger.v1.json—adminCreateRepoandrepoEditare taggedadminandrepositoryrespectively) mints itsPAT into
forgejo-binjovi-repo-creator-token.delivers only that one Secret into namespace
binjovi, mirroringforgejo-writer.yamlexactly.binjovi-app-database'sOpenBaoKubernetesAuthRolegainsbinjovi-repo-creatoras a bound ServiceAccount — the same staticdatabase credential, not a separate policy.
tests/binjovi.shasserts the token is reachable fromnowhere else in the tree.
The
sean/binjovihalf (the isolatedBINJOVI_RUNTIME=repo-creatorrelease, its Deployment, and the MCP policy grant) is a companion PR in
that repo. Once both are live, Outline's onboarding uses a single
create_repositoryMCP call instead of aForgejoRepositoryCR.Test plan
bash tests/binjovi.shpasses, including the new isolation guard(verified it fails when the credential is made reachable from
db-access.yaml, then confirmed the fix removes the failure)kubectl kustomizerenders the wholebinjovicomponent cleanlycreate_repositoryMCP call creates a disposablerepo end-to-end (companion
sean/binjoviPR must deploy first)https://claude.ai/code/session_01JGe4pyhQ36AhgDfPJry4d3