Documentation
¶
Overview ¶
Package rendezvous is a minimal authenticated git-http rendezvous server: the real external remote the {git} workspace output pushes per-attempt branches to. It speaks the git smart-HTTP protocol by shelling out to the stock `git http-backend` CGI, gated behind HTTP basic-auth whose credentials come from configuration (a Kubernetes Secret in deployment). It is the counterpart to the credentialed push in internal/workspace/git.go: that side supplies the token, this side checks it.
Security: the configured token is a secret VALUE. It is compared in constant time and is NEVER logged, never written to a response body, and never placed on a child-process argv. The git-http-backend child receives only the request over CGI env+stdin; the token is consumed by the auth check before the child runs.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Root is the directory holding the bare git repositories. Each pushed repo
// path "<name>.git" is created here on first push.
Root string
// Username is the basic-auth username the push must present. Not a secret.
Username string
// Token is the basic-auth password the push must present. A secret VALUE:
// never logged, never echoed, compared in constant time.
Token string
// Realm is the basic-auth realm advertised in the WWW-Authenticate challenge.
// Defaults to "mitos-rendezvous".
Realm string
}
Config configures the rendezvous server.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the authenticated git-http rendezvous handler.