func (n *GitLabClient) GetBuild(config common.RunnerConfig) (*common.GetBuildResponse, bool) { request := common.GetBuildRequest{ Info: n.getRunnerVersion(config), Token: config.Token, } var response common.GetBuildResponse result, statusText, certificates := n.doJSON(config.RunnerCredentials, "POST", "builds/register.json", 201, &request, &response) switch result { case 201: config.Log().WithFields(logrus.Fields{ "build": strconv.Itoa(response.ID), "repo_url": response.RepoCleanURL(), }).Println("Checking for builds...", "received") response.TLSCAChain = certificates return &response, true case 403: config.Log().Errorln("Checking for builds...", "forbidden") return nil, false case 204, 404: config.Log().Debugln("Checking for builds...", "nothing") return nil, true case clientError: config.Log().WithField("status", statusText).Errorln("Checking for builds...", "error") return nil, false default: config.Log().WithField("status", statusText).Warningln("Checking for builds...", "failed") return nil, true } }