async function createRepo(name, branch = "master", description = `Repository ${name}`) {
  const exec = await container.exec({
    Cmd: ["repo-admin", "-n", name, "-d", description],
    AttachStdout: true,
    AttachStderr: true,
  });
  await exec.start();

  const repositoryUrl = `http://${SERVER_HOST}:${HOST_PORT}/git/${name}.git`;
  const authUrl = `http://${gitCredential}@${SERVER_HOST}:${HOST_PORT}/git/${name}.git`;

  // Retry as the server might take a few ms to make the repo available push
  await pRetry(() => initBareRepo(authUrl, branch), { retries: 5, minTimeout: 500, factor: 2 });
  const cwd = await gitShallowClone(authUrl);

  return { cwd, repositoryUrl, authUrl };
}
Initialize a remote repository and creates a shallow clone.

@param {String} name The remote repository name.
@param {String} [branch='master'] The branch to initialize.
@param {String} [description=`Repository ${name}`] The repository description.
@return {Object} The `repositoryUrl` (URL without auth) and `authUrl` (URL with auth).