Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alist-org
GitHub Repository: alist-org/alist
Path: blob/main/drivers/gitee/util.go
1987 views
1
package gitee
2
3
import (
4
"fmt"
5
"net/url"
6
7
"github.com/alist-org/alist/v3/pkg/utils"
8
"github.com/go-resty/resty/v2"
9
)
10
11
func (d *Gitee) getRepo() (*Repo, error) {
12
req := d.client.R()
13
if d.Token != "" {
14
req.SetQueryParam("access_token", d.Token)
15
}
16
if d.Cookie != "" {
17
req.SetHeader("Cookie", d.Cookie)
18
}
19
escapedOwner := url.PathEscape(d.Owner)
20
escapedRepo := url.PathEscape(d.Repo)
21
res, err := req.Get(fmt.Sprintf("/repos/%s/%s", escapedOwner, escapedRepo))
22
if err != nil {
23
return nil, err
24
}
25
if res.IsError() {
26
return nil, toErr(res)
27
}
28
var repo Repo
29
if err := utils.Json.Unmarshal(res.Body(), &repo); err != nil {
30
return nil, err
31
}
32
if repo.DefaultBranch == "" {
33
return nil, fmt.Errorf("failed to fetch default branch")
34
}
35
return &repo, nil
36
}
37
38
func toErr(res *resty.Response) error {
39
var errMsg ErrResp
40
if err := utils.Json.Unmarshal(res.Body(), &errMsg); err == nil && errMsg.Message != "" {
41
return fmt.Errorf("%s: %s", res.Status(), errMsg.Message)
42
}
43
return fmt.Errorf(res.Status())
44
}
45
46