gitea.go

 1package gitea
 2
 3import (
 4	"time"
 5
 6	"code.gitea.io/sdk/gitea"
 7
 8	"github.com/MichaelMure/git-bug/bridge/core"
 9	"github.com/MichaelMure/git-bug/bridge/core/auth"
10)
11
12const (
13	target = "gitea-preview"
14
15	metaKeyGiteaID      = "gitea-id"
16	metaKeyGiteaLogin   = "gitea-login"
17	metaKeyGiteaOwner   = "gitea-owner"
18	metaKeyGiteaProject = "gitea-project"
19	metaKeyGiteaBaseURL = "gitea-base-url"
20
21	confKeyOwner        = "owner"
22	confKeyProject      = "project"
23	confKeyBaseURL      = "base-url"
24	confKeyDefaultLogin = "default-login"
25
26	defaultTimeout = 60 * time.Second
27)
28
29var _ core.BridgeImpl = &Gitea{}
30
31type Gitea struct{}
32
33func (Gitea) Target() string {
34	return target
35}
36
37func (g *Gitea) LoginMetaKey() string {
38	return metaKeyGiteaLogin
39}
40
41func (Gitea) NewImporter() core.Importer {
42	return &giteaImporter{}
43}
44
45func (Gitea) NewExporter() core.Exporter {
46	return nil
47	// return &giteaExporter{}
48}
49
50func buildClient(baseURL string, token *auth.Token) (*gitea.Client, error) {
51	giteaClient, err := gitea.NewClient(baseURL, gitea.SetToken(token.Value))
52	if err != nil {
53		return nil, err
54	}
55
56	return giteaClient, nil
57}