Authentication format
Git commands use HTTP Basic Auth with a JWT-backed remote. The format is consistent across every repository:- Username: Always
t(for “token”) - Password: Your JWT token
- Repository: Must match the
repoclaim in your JWT
- The JWT
repoclaim matches the repository you are cloning or pushing. - The token includes the scopes required for the command (
git:read,git:write, orrepo:write). - The token has not expired (
expclaim)
Supported commands
Every command uses the same remote syntax and JWT authentication scheme.Read operations (git:read)
Write operations (git:write)
remoteUrl helper (remote_url in Python, git.RemoteURL in
Go) generates the JWT-backed URL for you. You can also mint JWTs manually through the authentication
flow described in Authentication. Once you have the
URL, Git behaves exactly the way it does against any other HTTPS remote.
Integration patterns
To give your users Git access with your own authentication and access logs, give them a remote on your domain that forwards to Code Storage. See Proxy Git with Your Own Auth. Use scoped JWTs to differentiate between automation, developers, and product-level access. Short TTLs keep CI credentials disposable. The token of a remote URL lives 15 minutes by default and 1 hour at most. For developer machines or preview environments that keep a remote, use the credential helper of the CLI.CI/CD pipeline
SetPIERRE_ORG and PIERRE_PRIVATE_KEY as shown in the
Quick Start.
Development environment
pierre auth login stores, or PIERRE_PRIVATE_KEY. See
Sign in and pierre auth setup-git.
When in doubt, mint tokens with the SDK. Its helpers sign the token and build the URL for you. See
Git remote URLs.