func (s *GitUploadPackService) Info() (*common.GitUploadPackInfo, error) { url := fmt.Sprintf("%s/info/refs?service=%s", s.endpoint, common.GitUploadPackServiceName) res, err := s.doRequest("GET", url, nil) if err != nil { return nil, err } defer res.Body.Close() i := common.NewGitUploadPackInfo() return i, i.Decode(pktline.NewDecoder(res.Body)) }
// Info returns the GitUploadPackInfo of the repository. // The client must be connected with the repository (using // the ConnectWithAuth() method) before using this // method. func (s *GitUploadPackService) Info() (i *common.GitUploadPackInfo, err error) { if !s.connected { return nil, ErrNotConnected } session, err := s.client.NewSession() if err != nil { return nil, err } defer func() { // the session can be closed by the other endpoint, // therefore we must ignore a close error. _ = session.Close() }() out, err := session.Output("git-upload-pack " + s.vcs.FullName + ".git") if err != nil { return nil, err } i = common.NewGitUploadPackInfo() return i, i.Decode(pktline.NewDecoder(bytes.NewReader(out))) }