package templates templ About() {
Converge is a utility for troubleshooting builds on continuous integration servers. It solves a common problem where the cause of job failure is difficult to determine. This is complicated further by the fact that build jobs are usually run on a build farm where there is no access to the build agents or in more modern envrionments when jobs are run in ephemeral containers.
With Converge it is possible to get remote shell access to such jobs. This works by configuring the build job to connect to a Converge server using an agent program. The agent program can be downloaded from within the CI job using curl or wget. Next, an end-user can connect to the Converge server, a rendez-vous server, that connects the client and server together.
The setup is such that the connection from client (end-user) to server (agent on CI job) is end-to-end encrypted. The Converge server itself is no more than a bitpipe which pumps data between client and agent.
Both ssh and sftp are supported. Multiple shells are also allowed.
There is a timeout mechanism in the agent such that jobs do not hang indefinitely waiting for a connection. This mechanism is useful to make sure build agents do not keep build agents occupied for a long time. By default, the agent exits with status 0 when the first client exits after logging in. This behavior as well as general expiry can be controlled from within a shell session by touching a .hold file. After logging in, the user can control expiry of the session as instructed by messages in the ssh session. When the timeout of a session is near the user is informed about this with messages in the shell.
end-to-end encryoption
ssh keys
agent options
client access
wsproxy
is a command that can be used as a proxy command for SSH which performs the connection to the
remote server. This command needs to be downloaded only once (see downloads). It does not depend on
the converge implementation but only on the websocket standards. Other tools that
provide a mapping of stdio to a websocket can also be used instead of wsproxy.
This option is less convenient than the proxy command because it requires two separate commands to execute.
Local clients can connect using regular ssh and sftp commands through a tunnel that translates a local TCP port to a websocket connection in converge. See the downloads section. This runs a local client that allows SSH to port 10000 and connects to converge using a websocket connection.
The agent supports a --shells command-line option by which a comma-separated
list of shells can be prepended to the default search path for shells, e.g.
--shells zsh,csh,sh
(linux) or cmd,powershell
for
windows.
The agent sets a