Skip to content

Git in Muppy in two minutes

The problem

A git token left on a server is readable by anyone with a shell there: a colleague, a script, an AI agent working on the box. It stays there for as long as the box lives. Revoking it means finding every box that carries it.

What Muppy does instead

No token is written on the box. Git asks a credential helper, the helper asks Muppy, and Muppy serves the token for that one operation only if a person authorized it, for a short window. A push always asks. A read served by a read-only token limited to that repository asks nothing at all.

So the box never holds a credential, an agent on the box has nothing to steal, and revoking a token is done in one place: the vault.

What you set up

For Token What it does
A Dev box — required One read-write, account-wide PAT per forge, flagged Default for this server Everything: clone, pull and push, each one released by an approval you give at the moment it happens. Nothing else is needed
A Dev box — optional, per repository A read-only token limited to that repository, the repository listed under Repositories Comfort: reads on that repository stop asking you. Pushes still do. Worth it once you pull the same repository every day
A Test, Staging or Production box — required The same kind of read-only, repository-limited token It is written on the box, because nobody is there to approve anything. It can read that one repository and nothing else, so leaving it there costs little

A push is never served without an approval, whatever tokens you hold.

What a day looks like

muppy-git-login <your-muppy-login>   # once per box: names who you are, sets git user.name and user.email, grants nothing
git pull                             # served, or asks you once for a read window
git push                             # blocks, you approve it in Muppy, it goes through
muppy-git-status                     # what this box can do right now, and with what
muppy-git-logout                     # when you leave the box to someone else

Where to go next